栏目介绍:“玩转OurBMC”是OurBMC社区开创的知识分享类栏目,主要聚焦于社区和BMC全栈技术相关基础知识的分享,全方位涵盖了从理论原理到实践操作的知识传递。OurBMC社区将通过“玩转OurBMC”栏目,帮助开发者们深入了解到社区文化、理念及特色,增进开发者对BMC全栈技术的理解。
欢迎各位关注“玩转OurBMC”栏目,共同探索OurBMC社区的精彩世界。同时,我们诚挚地邀请各位开发者向“玩转OurBMC”栏目投稿,共同学习进步,将栏目打造成为汇聚智慧、激发创意的知识园地。
本期内容我们将为您详细介绍在 Linux 环境下编译构建 OpenBMC 的步骤,以及如何使用 devtool 工具修复 bug 和开发新特性的流程。首先,我们将了解 OpenBMC 的基本概念和背景,再逐步介绍编译构建的步骤,最后是如何使用 devtool 工具进行开发和调试。
OpenBMC概述
OpenBMC 是一个开源的基于 Linux 的固件项目,提供了一套丰富的接口和工具,用于管理和控制服务器硬件的底层管理系统。它采用了开源的技术和标准,如 Linux 操作系统、IPMI(Intelligent Platform Management Interface)和 Redfish 等,以提供灵活、可扩展和可管理的服务器管理解决方案。通过 OpenBMC,可以方便地监控和管理服务器的各种硬件组件,例如处理器、内存、硬盘和温度传感器等,提高了服务器管理的效率和可靠性。
编译构建OpenBMC
下面介绍的是 OpenBMC 通用的编译构建步骤。在 OurBMC 下的 OpenBMC 仓库,复制已克隆或下载的代码链接,下载完代码后,执行下面的步骤:
1. 进入OpenBMC源码的顶层目录。
2. 选择要编译的BMC卡,以飞腾公司的E2000S evb-pe2201卡示例。
3. 执行编译构建(注意:首次编译需下载软件包,用时较长,请耐心等待)。
-
编译构建:
bitbake obmc-phosphor-image
-
命令执行完成后,会在 ‘tmp/dempoy/images/evb-pe2201’ 目录下,生成 u-boot 、内核、文件系统、mtd 格式镜像等文件
4. 进入 OpenBMC 编译构建的目录,将 mtd 格式的 bmc 固件包,烧录到 BMC 卡的 flash。启动 BMC 系统,即可测试 BMC 的功能。
OpenBMC开发与调试
OpenBMC 通常使用补丁(patch)的形式,增加新功能、修复 bug。但在开发中,需要在补丁发布前,就能把代码集成到 OpenBMC 做测试验证。为解决前后的依赖问题,OpenBMC 使用 Yocto 自带的 devtool 工具,为 OpenBMC 开发者提供了快捷的代码修改方式。
通常按照下面的步骤,即可对某一软件包的代码做修改:
1. 修改某一软件包
devtool modify <recipe>
2. 进入源码目录,修改代码
cd build/workspace/sources/<recipe>
3. 编译构建BMC固件
bitbake obmc-phosphor-image
将 mtd 格式的固件烧录到 BMC 的 flash,启动 BMC 系统,可测试修改功能是否达到预期。若实现了预期的要求,可使用 “git format-patch” 命令,创建补丁。然后将补丁单独放置到软件包 “recipe” 所在的目录,使用命令重置本地修改(重置某一软件包:devtool reset <recipe>)。最后再次编译构建,检查补丁是否已经生效。
在完成 OpenBMC 的构建与开发流程后,可使用生成的映像文件在目标硬件平台上进行测试和部署。同时,还可进一步开发和定制 OpenBMC 的功能,以满足特定的需求。
此外,为了保持 OpenBMC 的稳定性和安全性,应定期更新代码库和依赖项,并关注官方文档的最新动态,以便及时获取最新的修复和改进。
最后,如果在 OpenBMC 的构建与开发过程中遇到任何问题或困难,可向 OurBMC 社区求助,或者在相关的技术论坛和社区中寻求专业人士的建议和支持。
欢迎大家关注OurBMC社区,了解更多技术干货。
OurBMC社区官方网站:https://www.ourbmc.cn/