Yocto3.3杂记
常用命令
#生成包的环境变量
bitbake PKG -e >PKG.env
#只运行install任务,do_patch do_compile 类似
bitbake PKG -C do_install
#清理包已备重编,cleanall更彻底
bitbake PKG -c cleansstate
bitbake PKG -c cleanall
常用变量
所有这些变量可以用bitbake PKG -e查询
SRC_URI:变量指向源文件,如补丁和其他菜单需要的文件
PN:菜谱名称,包名
PV:菜谱版本号,包版本号
BPN:PN-PV
WORKDIR: 具体编译包的工作目录,如tmp-glibc/work/core2-64-wrs-linux/perl/5.32.1-r0/ 所有编译过程中bbappend中追加的patch和其他文件等等都位于此处
FILESEXTRAPATHS:文件额外路径,常用在bbappend中用于指定本地文件如补丁等等的路径,如FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
THISDIR:菜单所在路径
D:D是do_install task部署路径,也位于build目录下,默认值是{WORKDIR}/image
S:S是build目录下源码解压出来的路径
如何编译rt实时内核
local.conf中加入如下可以编译出rt内核,因为Yocto3.3自带的layer中已经有linux-yocto-rt内核的bb菜单
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-rt"
常用修饰
prepend
append: IMAGE_INSTALL_append = " tcpdump" 文件系统中增加tcpdump包
prefuncs: 例如do_patch[prefuncs] += "replace_kernel_with510" do_patch任务前执行自定义函数replace_kernel_with510
postfuncs:例如do_patch[postfuncs] += "rename_kernel_config" do_patch任务之后执行自定义函数rename_kernel_config
调试定位
每个软件包的构建都有对应任务的日志和对应过程命令,存放在temp目录
如:
tmp-glibc/work/core2-64-wrs-linux/perl/5.32.1-r0/temp/run.do_patch
tmp-glibc/work/core2-64-wrs-linux/perl/5.32.1-r0/temp/log.do_patch