OpenBMC 中的 Yocto
Yocto项目是一个开源项目提供样例、工具以及方法来帮助你创建商用的基于Linux的嵌入式系统产品,而与硬件架构无关。
OpenBMC使用Yocto提供的工具来管理配置以及创建BMC镜像。
使用 Yocto 进行开发
在OpenBMC中有两个主要的使用案例:
- 从
master或现有的tags中进行构建 - 提交修改到
master中
第一个是一个简单的案例,在使用bitbake之前构建系统,例如
Palmetto
Zaius
cheatsheet.
第二个案例可以通过Yocto的devtool工具来实现。在运行. openbmc-env之后,devtool工具将出现在你的环境PATH中,可以以多种方式使用。
如果你已经具有想要集成的源码树,首先运行devtool modify -n ${PACHAGE} ${SRCTREE}在你的构建目录中创建一个新的Yocto layer。然后它将为这个recipe包构建一个.bbappend补充文件,并使用externalsource类使用no-ops替换掉download,fetch,patch等步骤。此时,如果你对包进行编译,它将会使用本地的源目录。注意recipe包可能不会执行一个清除操作并依赖于当前要进行的动作,你可能在${SRCTREE}中运行${PACKAGE}构建系统的清理命令来清理所有的编译对象。如果你修改源,那么需要运行bitbake -c cleansstate ${PACKAGE}来清理BitBake的缓存。
另外,如果你没有本地的源码树,但是依旧想要修改包,可以执行devtool modify ${PACKAGE}将会处理fetch,unpack,patch步骤,并将源码树放置到默认工作空间中。
当你完成了所有的内容,运行devtool reset ${PACKAGE}来从devtool的Yocto层中移除.bbappend。
更多关于devtool的使用方法可以在Yocto Mega Manual中找到。
添加文件到你的固件中
有很多的使用BitBake进行工作的例子。OpenEmbedded中的recipe example是一个不错的内容。
本文介绍了OpenBMC项目如何利用Yocto进行开发,包括从现有硬件平台构建固件,以及如何通过Yocto的devtool添加和修改源代码。详细讲解了如何使用devtool进行本地源码集成、清理、修改以及移除操作,帮助开发者更好地理解和应用OpenBMC与Yocto。
963

被折叠的 条评论
为什么被折叠?



