当前位置: 首页 > 工具软件 > OpenBMC > 使用案例 >

OpenBMC中的Yocto

单于骁
2023-12-01

OpenBMC 中的 Yocto

Yocto项目是一个开源项目提供样例、工具以及方法来帮助你创建商用的基于Linux的嵌入式系统产品,而与硬件架构无关。

OpenBMC使用Yocto提供的工具来管理配置以及创建BMC镜像。

使用 Yocto 进行开发

在OpenBMC中有两个主要的使用案例:

  1. master或现有的tags中进行构建
  2. 提交修改到master

第一个是一个简单的案例,在使用bitbake之前构建系统,例如
Palmetto
Zaius
cheatsheet.

第二个案例可以通过Yoctodevtool工具来实现。在运行. openbmc-env之后,devtool工具将出现在你的环境PATH中,可以以多种方式使用。

如果你已经具有想要集成的源码树,首先运行devtool modify -n ${PACHAGE} ${SRCTREE}在你的构建目录中创建一个新的Yocto layer。然后它将为这个recipe包构建一个.bbappend补充文件,并使用externalsource类使用no-ops替换掉downloadfetchpatch等步骤。此时,如果你对包进行编译,它将会使用本地的源目录。注意recipe包可能不会执行一个清除操作并依赖于当前要进行的动作,你可能在${SRCTREE}中运行${PACKAGE}构建系统的清理命令来清理所有的编译对象。如果你修改源,那么需要运行bitbake -c cleansstate ${PACKAGE}来清理BitBake的缓存。

另外,如果你没有本地的源码树,但是依旧想要修改包,可以执行devtool modify ${PACKAGE}将会处理fetchunpackpatch步骤,并将源码树放置到默认工作空间中。

当你完成了所有的内容,运行devtool reset ${PACKAGE}来从devtoolYocto层中移除.bbappend

更多关于devtool的使用方法可以在Yocto Mega Manual中找到。

添加文件到你的固件中

有很多的使用BitBake进行工作的例子。OpenEmbedded中的recipe example是一个不错的内容。

 类似资料: