yocto杂记
本节记录yocto使用过程中的一些细枝末节的小知识点,供参考查阅:
调试篇
bitbake允许使用log等调试工具。最常用的几个log等级:
plain debug note warn error fatal
bb.debug(1, "Appending 'st_multivolume_ubifs' to IMAGE_POSTPROCESS_COMMAND.")
bb.note("Appending 'st_multivolume_ubifs' to IMAGE_POSTPROCESS_COMMAND.")
bbnote ">>> DONE"
上面示例的bbnote是shell中使用的,bb.note是在python中使用的
warn error fatal等级会被输出到控制台。
debug是通过增加-D参数到BitBake的命令行来设置的。-D ->1 -DD->2 -DDD->3
普通消息永远不被写到控制台。
变量篇
在各种class和bb文件中经常看见在python和shell函数中获取环境变量和对环境变量进行操作,下面记录了一些最常见的变量:
//获取环境变量
d.getVar('INITRAMFS_IMAGE') or ""
//获取环境变量标志,有点类似python的字典
d.getVarFlags('PARTITIONS_CONFIG')
//设置环境变量
d.setVar('IMAGE_SUMMARY_LIST', image_summary_list)
//追加环境变量
d.appendVar('IMAGE_POSTPROCESS_COMMAND', 'st_multivolume_ubifs;')
//追加环境变量标志
d.appendVarFlag('do_image_complete', 'depends', ' %s:do_image_complete' % partition)
//判断环境变量中是否包含某项配置
${@bb.utils.contains('TF_A_CONFIG', 'optee', 'TF_A_CONFIG_optee', '', d)}
${@bb.utils.contains_any('BOOTSCHEME_LABELS', 'optee trusted', 'virtual/trusted-firmware-a', '', d)}
${@' '.join('%s.dtb' % d for d in '${STM32MP_DEVICETREE}'.split())}