openbmc编译错误汇总,持续更新,建议收藏
本文汇总自己在编译openbmc时遇到的一些问题及解决思路,希望对有兴趣研究openbmc的同学有一些帮助。
项目地址:https://github.com/openbmc/openbmc
编译步骤:https://github.com/openbmc/openbmc
我编译主机的配置:
虚拟机 | Ubuntu16.04 |
---|---|
gcc&g++ | 6.5.0 |
内存大小 | 4GB |
线程数 | 8 |
硬盘空间 | 256GB |
编译成功的标志:全部任务成功结束或者在/tmp/deploy/images/romulus 下找到编译的相应镜像。 |
Q & A
- 出现某个包do_unpack失败
这个可能时源的地址被墙了,需要FQ。 - 出现某个包do_compile失败
可能有两个原因,第一检查gccc编译器及g++编译器,第二可能内存不够,解决方法建立内存交换区,可以参考这篇文章,或者在build_dir/conf/local.conf修改/增加这两个变量BB_NUMBER_THREADS = "2"
,PARALLEL_MAKE = "-j 4"
,这两个变量分别代表bitbake执行使用的线程数及编译时使用的线程数,可以通过减少线程数降低内存开销。 - 强制关闭bitbake进程后,再次执行发现有的包死活执行失败,提示the basehash value changed from xxx to xxx
有一个简单的办法,找到错误信息中bb文件的位置,vim打开他,在任意一行添加空行保存,骗编译器重新编译该菜谱。 - bitbake卡死不动,没有任何输出信息
ps看一下是不是运行了多个bitbake服务器,关闭它们重新运行。还有一种可能是bitbake不能连接到网络,需要检查网络。 - 其他错误
如果实在是找不到办法,在你确定自己的环境满足要求后,删除目录sstate-cache
,cache
,tmp
目录下的所有文件,重新编译。
如果你并没有找到合适的问题解决方法或者有其他问题解决方法,欢迎在留言区给出。之后我如果遇到其他的问题,我也会继续更新这篇文章。