为 OpenBMC 添加一个新的系统

news2024/11/24 20:59:16

1. 前言

在上一篇文章中向大家介绍了 OpenBMC 的是什么以及它的作用和应用场景,并且以一个自带的示例平台 romulus 展示了从下载源码包开始到启动系统并访问 Web 控制页面的整体构建流程。

通过前文已经了解到如何为已有的平台构建系统镜像,下面我们来探索一下如何为我们自己的平台构建 OpenBMC 的系统镜像。

2. 创建新的系统

2.1. 创建新的硬件层

我们以上篇文章中所用的 romulus 为基础,创建一个新的平台,笔者这里是为 rockchip 3568 芯片构建,因此将新平台的目录名称命名为 meta-rk3568-im,命名可以根据自己具体的平台名称命名,或者先命名一个 meta-test 也可以。

$ openbmc/meta-ibm$ cp -rf meta-romulus/ meta-rk3568-im
$ openbmc/meta-ibm$ cd meta-rk3568-im

该目录的目录布局如下
在这里插入图片描述

2.2. 修改配置文件 bblayers.conf.sample

进入 conf 目录。

$ cd conf

在这里插入图片描述

开始对新建的硬件层修改其中的配置文件:

文件 meta-ok3568-im/conf/templates/default/bblayers.conf.sample
该文件定义了要引入到 meta-rk3568-im 版本中的层,在这个文件中可以看到不同的 Yocto 层(如,metameta-openembedded/meta-oemeta-openembedded/meta-networkingmeta-openembedded/meta-perl 等)。这里也有 OpenBMC 的层,如 meta-phosphormeta-aspeedmeta-openpowermeta-ibm/meta-romulus
需要将该文件中的 meta-romulus 修改为 meta-rk3568-im,即刚创建的新的硬件层。

在这里插入图片描述

2.3. 配置文件 conf-notes.txt

文件 meta-rk3568-im/conf/templates/default/conf-notes.txt
该文件简单陈述你构建的新层要构建的默认目标,这个文件保留不变,因为这个文件在所有的 OpenBMC 系统都保持一致。

2.4. 配置文件 local.conf.sample

文件 meta-rk3568-im/conf/templates/default/local.conf.sample
该文件中包含你的层中的本地配置设置信息。这个文件中的内容写的很好,值得一读。唯一需要改变的内容是,将 MACHINE 修改为 romulus-prime

在这里插入图片描述

2.5. 配置文件 layer.conf

文件 meta-rk3568-im/conf/layer.conf
这个文件的主要目的是告诉 BitBake 去哪里查找食谱(*.bb)文件,食谱文件以 .bb 作为后缀名,包含不同层的打包逻辑。.bbappend 文件也是食谱文件,但是却是作为 .bb 文件的补充。.bbapped 文件通常用来添加或移除相关联的 .bb 文件中的内容。

在这里插入图片描述

2.6. 配置文件 romulus.conf

文件 meta-rk3568-im/conf/machine/romulus.conf
该文件描述了该硬件平台规定的相关内容,包含硬件平台定义使用的内核设备树,引入的覆写特性,以及其他的系统特性。这个文件是创建新系统变动不同的内容时的好参考(内核设备树,MRWLED 设置,资源访问等)。
首先,需要将这个文件重命名为 rk3568-im.conf
这个配置数据的主体数据不再使用了,但是在完全移除它之前,你依然需要提供这些内容。

3. 构建新系统

回到 openbmc 的根目录下,选择硬件平台,可选执行如下 [1],[2] 其一指令均可。

[1] 硬件选择指令 1

$ export TEMPLATECONF=meta-ibm/meta-rk3568-im/conf/templates/default

$ . openbmc-env

[2] 硬件选择指令 2

$ . setup rk3568-im

[注]:此处 setup 后的名称与新建平台名称一致。

在这里插入图片描述
执行 bitbake 命令

$ bitbake obmc-phosphor-image

[注]:bitbake 指令需要在 openbmc 的根目录下执行。

在这里插入图片描述

3.1. 报错 1

如果编译的时候出现报错 ERROR: linux-aspeed-6.6.16+git-r0 do_fetch: Fetcher failure,那么说明是网络原因导致无法下载到该软件包,解决办法是挂梯子后再重新执行 bitbake 命令。

在这里插入图片描述
[注]:若挂上梯子后还出现上图报错,首先检查梯子是否挂成功,确认没问题后反复执行 bitbake obmc-phosphor-image 即可,会重复出现该问题说明梯子的稳定性不够高,网络质量太差导致,但每次下载的进度仍会保存,因此重复执行即可。

3.2. 报错 2

当编译到最后会遇到这样的错误,make[3]: *** No rule to make target 'arch/arm/boot/dts/aspeed/aspeed-bmc-opp-rk3568-im.dtb'. Stop.,这个错误是需要我们注意的,

在这里插入图片描述

从报错信息中可以看到没有找到与新建系统对应的 dtb 设备树文件,这里为了先构建好系统暂时不用真正平台上的设备树文件,先偷懒一下,直接去新建的系统层中修改 rk3568-im/conf/machine/rk3568-im.conf 文件中的 KERNEL_DEVICETREE 变量为如下值,即第 2 行。

在这里插入图片描述

解决完上述错误后,再次执行 bitbake obmc-phosphor-image 命令,这是将会编译通过。

在这里插入图片描述

4. 启动新系统

同样以映射本地端口且无图形化方式启动。

sudo qemu-system-arm -m 256 -M romulus-bmc -nographic -drive file=./tmp/deploy/images/rk3568-im/obmc-phosphor-image-rk3568-im.static.mtd,format=raw,if=mtd -net nic -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu

[注]:若所创建名称与笔者不同,则需要修改该命令中的路径以及文件名。

在这里插入图片描述
[注]:到这里表示启动成功。

查看一些系统信息。

在这里插入图片描述

5. 访问 WebUI

在本地浏览器中访问如下地址,即可打开 OpenBMCWebUI 界面。

https://localhost:2443/

在这里插入图片描述

在这里插入图片描述

今天就到这里,休息一下吧!

#完

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1493578.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用LEAKEY轻松检测和验证目标服务泄露的敏感凭证

关于LEAKEY LEAKEY是一款功能强大的Bash脚本,该脚本能够检测和验证目标服务中意外泄露的敏感凭证,以帮助广大研究人员检测目标服务的数据安全状况。值得一提的是,LEAKEY支持高度自定义开发,能够轻松添加要检测的新服务。 LEAKEY主…

自动灭火贴有用吗?搞清楚自动灭火贴的使用范围很关键!

近年来,伴随着新能源车辆的自燃案例频频发生,许多新型自动灭火产品走红网络。灭火球、灭火宝、灭火手雷......层出不穷的新型产品褒贬各异,哪怕是目前占领市场份额较多的自动灭火贴也不乏有人心里嘀咕:自动灭火贴好用吗&#xff1…

什么是Docker容器?

Docker是一种轻量级的虚拟化技术,同时是一个开源的应用容器运行环境搭建平台,可以让开发者以便捷方式打包应用到一个可移植的容器中,然后安装至任何运行Linux或Windows等系统的服务器上。相较于传统虚拟机,Docker容器提供轻量化的…

Linux编程3.3 进程-进程的终止

1、正常终止 从main函数返回调用exit(标准C库函数)调用_exti或_Exit(系统调用)最后一个线程从其启动例程返回最后一个线程调用 pthread exit 2、异常终止 调用abort接受到一个信号并终止最后一个线程对取消请求做处理响应 3、进程返回 通常程序运行…

谷歌Gemini批量多线程写原创文章API软件-支持双标题违禁词过滤

谷歌Gemini批量多线程写原创文章软件介绍: 1、Gemini 是谷歌筹备了一年之久的GPT4真正竞品,也是目前谷歌能拿出手的功能最为强悍、适配最为灵活的大模型。 2、谷歌Gemini目前免费申请key,key没有额度限制,可以一直写文章。 3、谷…

Mint_21.3 drawing-area和goocanvas的FB笔记(四)

Cairo图形输出 cairo的surface可以是pixbuf, 可以是screen, 可以是png图,也可以是pdf文件 、svg文件、ps文件,定义了surface就可以用cairo_create(surface)产生cairo context, 操作cairo context就可以方便地在surface上画图,如果surface是p…

LeetCode-第137题-只出现一次的数||

1.题目描述 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 2.样例描述 3.思路描述 先把数组排序&am…

戏说c第二十六篇: 测试完备性衡量(代码覆盖率)

前言 师弟:“师兄,我又被鄙视了。说我的系统太差,测试不过关。” 我:“怎么说?” 师弟:“每次发布版本给程夏,都被她发现一些bug,太丢人了。师兄,有什么方法来衡量测试的…

vue2源码分析-vue入口文件global-api分析

文章背景 vue项目开发过程中,首先会有一个初始化的流程,以及我们会使用到很多全局的api,如 this.$set this.$delete this.$nextTick,以及初始化方法extend,initUse, initMixin , initExtend, initAssetRegisters 等等那它们是怎么实现,让我们一起来探究下吧 源码目录 global-…

2024年展望Android原生开发的现状,2024网易Android高级面试题及答案

没有稳定的工作,只有稳定的能力。 又到了万物复苏的季节,在程序猿这个行当里,作为 Android 开发出生的,在经历了八年的脱发生涯后,有了越来越多的想法和感触 趋势 随着各类移动跨平台的兴起,在 ReactNati…

基于SpringBoot+Vue实现的人力资源管理系统

系统介绍: 基于SpringBootVue实现的人力资源管理系统是为了提高企业人力资源管理水平而开发的。主要目标是通过对员工及人力资源活动信息(考勤、工资)等的编制来提高企业效率。 系统一共分为五大菜单项,分别是首页、薪资管理、权限管理、系统…

魔行观察-每日品牌监测-沪上阿姨-开店趋势

今日监测对象:沪上阿姨,监测时间段:2014年9月至2023年12月,发布时间:2024-03-05 数据获取地址:魔查查https://www.moxingdata.com/品牌基础信息 现有门店人均消费覆盖省份经营模式投资金额814416.531特许/…

工时管理软件:为什么企业需要工时跟踪?

工时跟踪对于企业经营来说,可能不是首要事项。工时跟踪有什么用? 管理学大师彼得德鲁克曾说过:If you can’t measure it, you can’t improve it(如果无法衡量,就无法改进)。企业经营也是同样道理&#x…

分布式系统中常用的缓存方案

1. 引言 随着互联网应用的发展和规模的不断扩大,分布式系统中的缓存成为了提升性能和扩展性的重要手段之一。本文将介绍几种在分布式系统中常用的缓存方案,包括分布式内存缓存、分布式键值存储、分布式对象存储和缓存网关等。 1.1 缓存在分布式系统中的…

FEP容量瓶多应用于制药光电光伏行业

常用规格:25ml、50ml、100ml、250mlFEP容量瓶也叫特氟龙容量瓶,容量瓶是为配制一定物质的量浓度的溶液用的精确定容器皿,常和移液管配合使用。广泛用于ICP-MS、ICP-OES等痕量分析以及同位素分析等高端实验。地质、电子化学品、半导体分析测试…

挑战杯 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

安防摄像头(IPC)的步进马达及IR-CUT驱动国产芯片——D6212

应用领域 安防摄像头(IPC)的步进马达及IR-CUT驱动。 02 功能介绍 D6212内置8路带有续流二极管的达林顿驱动管阵列和一个H桥驱动,单芯片即可实现2个步进电机和一个IR-CUT的直接驱动,使得电路应用非常简单。单个达林顿管在输入电…

android开发教程百度网盘,高并发系统基础篇

展望未来 操作系统 移动操作系统的演变过程,从按键交互的塞班功能机到触摸屏交互的Android/IOS智能机,从小屏幕手机到全面屏、刘海屏、水滴屏。任何系统无非干两件事:输入和输出,接收到外部输入信号后经过操作系统处理后输出信息…

如何减少AI中的偏见问题:八种方法避免AI偏见渗入模型

克服与避免 AI 偏见的八大方法 AI 中的算法偏见是一个普遍存在的问题,它虽然不可能完全消除,但却可以通过科学的方法积极地防止这种偏见。我们将在本文中围绕如何应对AI中的偏见问题展开深入的讨论。 您可能会回想起新闻中报道的一些存在偏见的算法示例…

深入理解RAM与ROM:计算机存储技术的核心

深入理解RAM与ROM:计算机存储技术的核心 在计算机科学领域,理解各种存储技术对于开发和维护高效、可靠的系统至关重要。本文旨在深入探讨两种基础且关键的存储形式:随机存取存储器(RAM)和只读存储器(ROM&am…