Nea*_*iel 15 python embedded build openembedded bitbake
我正在一个项目中工作,这个项目有许多bitbake食谱并且需要花费很多时间 - 在某些情况下长达13个小时.我是bitbake的新手,我要求某种方式:
或任何使用任何工具来更好地管理和理解食谱的建议.
或者通常用于加速构建过程的任何方法/方法.
欢迎提出建议和确切技术.
编辑日期07/08/2013:
找到这个用于跟踪依赖关系的有用工具
https://github.com/scottellis/oe-deptools
描述:
./oey.py -h
Usage: ./oey.py [options] [package]
Displays OE build dependencies for a given package or recipe.
Uses the pn-depends.dot file for its raw data.
Generate a pn-depends.dot file by running bitbake -g <recipe>.
Options:
-h Show this help message and exit
-v Show error messages such as recursive dependencies
-r Show reverse dependencies, i.e. packages dependent on package
-f Flat output instead of default tree output
-d <depth> Maximum depth to follow dependencies, default and max is 10
-s Show child package dependencies that are already listed
as direct parent dependencies.
Provide a package name from the generated pn-depends.dot file.
Run the program without a package name to get a list of
available package names.
Run Code Online (Sandbox Code Playgroud)
小智 18
这是一个非常广泛的问题!
首先,这里是关于如何在使用openembedded/yocto项目时检查构建性能和依赖关系的摘要.这回答了问题的第一部分.
使用buildstats与pybootchartgui工具产生的构建图.
细节:
USER_CLASSES += "buildstats"在您的$BUILDIR/conf/local.conf
文件中设置.这将转储详细的性能数据
$BUILDDIR/tmp/buildstats/<DATE>.接下来使用pybootchartgui.py脚本(in
poky/scripts/pybootchartgui)生成图表.这将帮助您本地化构建中可能存在的瓶颈.当然,如果你有很多食谱可以烘烤,那么你的图表将是巨大的.要删除一些噪音,请使用-m MINTIME命令行选项.
例如:
poky/scripts/pybootchartgui/pybootchartgui.py -m 600 $BUILDDIR/tmp/buildstats/201312310904
Run Code Online (Sandbox Code Playgroud)
将仅显示运行时间超过10分钟(600秒)的任务(do_compile,do_fetch等).
要探索特定包的依赖关系,请使用depexp实用程序.例如,要探索eglibc使用的依赖关系:
bitbake -g -u depexp eglibc
Run Code Online (Sandbox Code Playgroud)
这将更好地理解每个配方在运行和编译时所依赖的内容.
bitbake会自动检测循环依赖关系并在发生此类事件时输出错误消息.错误消息包含导致此循环依赖项的包的名称.
bitbake自动计算依赖关系,不会构建目标不需要的包.如果您在图片中发现了一些不需要的包,并且希望将其删除:
bitbake -g -u depexp <TARGET>检查包被如何拉最后,提供了一些如何提高整体构建性能的技巧.这回答了问题的第二部分.
bitbake -g -u depexp <TARGET>是你的朋友).减少建设时间会减少.SSTATE_DIR并由您的变量控制local.conf.BB_NUMBER_THREADS和PARALLEL_MAKE变量local.conf以匹配您的计算机资源.这些变量分别控制并行运行的任务数以及应该并行运行的进程数'make'(-j
选项).noatime,barrier=0,commit=6000.警告:这会使您的硬盘在断电时不可靠.不要在这个硬盘上存储任何有价值的东西.-dev和/或-dbg包构建映像会大大增加do_rootfs任务时间.确保仅在需要时启用它们(请参阅
EXTRA_IMAGE_FEATURES您的信息local.conf).参考文献: