Openbmc编译
1.网址的问题解决
原文
Modifying /conf/local.conf was the only solution that worked for me. Simply add one of the two options:#check connectivity using google
CONNECTIVITY_CHECK_URIS = "https://www.google.com/"#skip connectivity checks
CONNECTIVITY_CHECK_URIS = ""
2.编译死机
修改 conf/local.conf,加入下面两句
BB_NUMBER_THREADS = “2”
PARALLEL_MAKE = “-j 4”
BB_NUMBER_THREADS表示bitbake执行使用的线程数,PARALLEL_MAKE表示编译时使用的线程数
如果需要重新编译,删除目录sstate-cache,cache,tmp目录下的所有文件
{callout color=“#33ce09”}
loca.conf中的部分参数以及部分可添加参数解释:
{/callout}
DL_DIR ——存放编译过程中下载后的数据,
BB_NUMBER_THREADS ——同时工作的最大任务数,一般给cpu核心数的两倍,我CPU核心数是4,故设置为8
PARALLEL_MAKE——每个任务使用的线程数,应该包含"-j",如果希望8个线程一起运行,则设置为"-j 8"
BB_GENERATE_MIRROR_TARBALLS——在DL_DIR中产生源代码控制库(比如 GIT),包含元数据的tarball
INHERIT += “rm_work” ——命令BitBake在构建完包之后删除针对构建包的工作目录
RM_WORK_EXCLUDE += " core-image_minimal" ——排除要被删除的对象
SSTATE_DIR = " "——存放共享状态缓存位置。
BB_NO_NETWORK = "1" ——如果你的环境不能联网需要此配置
还有一些其他参数可以看local.conf文件中的英文描述。
更多变量设置请参考 配置文件详细介绍 。
3.openbmc yocto常用命令
bitbake
使用文档
poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
下载package 只下载不编译
bitbkae obmc-phosphor-image --runall=fetch
展开package
bitbkae obmc-phosphor-image --runall=unpack
patch
bitbkae obmc-phosphor-image --runall=patch
执行上面几步后,build目录可以保存一下作为工程基础环境
查找包的链接
bitbake -e 软件包名称 | grep ^SRC_URI
编译
bitbkae obmc-phosphor-image
devtool
使用文档
poky/documentation/ref-manual/devtool-reference.rst
修改模块
devtool modify xxx
成功后相关源码在build/workspace/sources/下展开
进入menuconfig
devtool menuconfig xxx
执行menuconfig前需要先执行modify展开代码
编译模块
devtool build xxx
Yocto变量说明
poky/documentation/ref-manual/variables.rst