Yocto Bitbake - Git Fetch 总是卡住

6
我正在使用YOCTO构建一个映像,但是Bitbake进程总是在任何任务(包括从git中提取)时卡住。
例如:
Currently 2 running tasks (1373 of 2477):
0: rpi-mkimage-native-git-r0 do_fetch (pid 2372)
1: linux-raspberrypi-1_4.1.21+gitAUTOINC+ff45bc0e89-r0 do_fetch (pid 2371)

这些任务永无止境,我检查了我的计算机上的Git,我可以轻松地克隆这些仓库。


好的,那就进行一些调试吧!可能是防火墙问题。 - Marcus Müller
当你说你在克隆这些仓库时没有问题,你是指克隆meta-raspberrypi还是内核仓库? - Charles C.
3个回答

5

我可以告诉你,对于内核仓库而言,使用do_fetch可能需要很长时间,这取决于你的网络连接速度。你等了多久?此外,你说你可以在你的机器上克隆……你从哪个源代码克隆的?你有查看过配方的SRC_URI来确定这些配方实际上是从哪里克隆来的吗?类似于:

$ bitbake -e virtual/kernel | grep ^SRC_URI=

您需要为linux-raspberrypi内核配方正确提供源URL。不要假设您知道它来自哪里。

rpi-mkimage配方也是如此:

$ bitbake -e rpi-mkimage | grep ^SRC_URI=

我会给你提供该食谱的源URL。

如果你能够正确地从bitbake -e报告的食谱URL中克隆两个,则需要进行更深入的故障排除。使用ps命令可以查看正在运行和潜在等待某些东西的进程。通常,do_fetch的日志并不是很令人兴奋,但请务必检查它们。查看每个食谱的${WORKDIR}/temp。同样,bitbake -e将为您提供每个食谱的WORKDIR:

$ bitbake -e virtual/kernel | grep ^WORKDIR=

或者

$ bitbake -e rpi-mkimage | grep ^WORKDIR=

祝你好运。


0

问题已解决

正如@Marcus Muller所建议的那样,这是一个防火墙问题。


0

问题出在你的防火墙上。它会阻挡用于 git 协议的 9418 端口。一些 bitbake 配方正在使用此协议进行克隆存储库。

你可以通过运行以下命令,强制 bitbake 使用 HTTPS 而非 git 协议:

git config --global url."https://github.com/".insteadOf git@github.com:
git config --global url."https://".insteadOf git://

在获取构建环境之后。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接