【openbmc添加fru信息通过ipmitool命令读取】

【openbmc添加fru信息通过ipmitool命令读取】openbmc 添加 fru 信息通过 ipmitool 命令读取

生不带来,死带不走系列


前言

参考链接:https://blog.csdn.net/_34160841/category_9800067.html?spm=1001.2014.3001.5515
参考该作者应用时发现有些没理解透彻的问题,应用失败,自己研究后记录过程


一、下载软件包

devtool modify phosphor-ipmi-fru/phosphor-ipmi-host
两个软件包

二、添加fru信息到ipmi

1.ipmi配置文件转cpp

在软件包下有一个scripts文件夹,这里边是python脚本、模板、示例yaml文件以及使用说明,本内容介绍fru的yaml文件。在configure阶段,通过autoconf工具,解析configure.ac以及Makefile.am生成Makefile文件,在编译阶段执行fru_gen.py的python脚本,根据fru_config.yaml文件生成fru-read-gen.cpp文件。在这里插入图片描述

2.配置ipmi配置文件

  1. 找到自己layer,找到或创建meta-xxx/meta-xxx/recipes-phosphor/ipmi/xxx-ipmi-inventory-map目录,该目录下建造config.yaml文件(该文件用于生成fru-gen.cpp,如果没找到该文件会用示例yaml文件生成cpp)
  2. meta-xxx/meta-xxx/recipes-phosphor/ipmi目录创建xxx-ipmi-inventory-map-native.bb和xxx-ipmi-fru-merge-config-native和phosphor-ipmi-fru_%.bbappend文件(参考meta-quanta/meta-q71l文件内容)
  3. 在ipmi目录下创建phosphor-ipmi-fru/obmc/eeprom/system/chassis/xxx文件,用于存放可执行程序phosphor-read-eeprom的eeprom路径和fruid
  4. meta-xxx/meta-xxx/conf/machine/xxx.conf文件,添加如下内容:
PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-merge-config = "xxx-ipmi-fru-merge-config-native" PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-inventory = "xxx-ipmi-inventory-map-native" // 对应meta-xxx/meta-xxx/recipes-phosphor/ipmi目录下的bb文件 

3.fru配置文件说明

3-1 ipmi目录下创建phosphor-ipmi-fru/obmc/eeprom/system/chassis/bmc文件`

SYSFS_PATH=/sys/bus/i2c/devices/3-0058/eeprom FRUID=1 

3-2 ipmi/phosphor-ipmi-fru_%.bbappend文件

inherit obmc-phosphor-systemd systemd FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" EEPROM_NAMES = "motherboard" EEPROMFMT = "system/{0}" EEPROM_ESCAPEDFMT = "system-chassis-{0}" EEPROMS = "${@compose_list(d, 'EEPROMFMT', 'EEPROM_NAMES')}" EEPROMS_ESCAPED = "${@compose_list(d, 'EEPROM_ESCAPEDFMT', 'EEPROM_NAMES')}" ENVFMT = "obmc/eeproms/{0}" SYSTEMD_ENVIRONMENT_FILE_${ 
     PN} := " ${@compose_list(d, 'ENVFMT', 'EEPROMS')}" TMPL = "obmc-read-eeprom@.service" TGT = "${SYSTEMD_DEFAULT_TARGET}" INSTFMT = "obmc-read-eeprom@{0}.service" FMT = "../${TMPL}:${TGT}.wants/${INSTFMT}" SYSTEMD_LINK_${ 
     PN}_append := " ${@compose_list(d, 'FMT', 'EEPROMS_ESCAPED')}" FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 

3-3 cn2610ea-48s4x-ipmi-inventory-map目录下得yaml文件

在modify phosphor-ipmi-fru的软件包下有一个scripts文件夹,这里边是python脚本、模板、示例yaml文件以及使用说明,本内容介绍fru的yaml文件。在configure阶段,通过autoconf工具,解析configure.ac以及Makefile.am生成Makefile文件,在编译阶段执行fru_gen.py的python脚本,根据fru_config.yaml文件生成fru-gen.cpp文件。

3-4 meta-inspur-network/meta-cn2610ea-48s4x/recipes-phosphor/ipmi目录下.bb文件

TODO

3-5 conf.yaml文件

3-5-1 注意项
  1. 注意缩进用空格
  2. 注意同类型数据要缩进一致

4.phosphor-ipmi-fru-properties配置

在配置fru时发现按照以上配置方法会出现因为获取不到present信息,使用ipmitool命令不能读取fru信息,而在bus缓存内fru信息已加载,也可以看到present为false,通过buscl命令修改present为true后正常读取的情况(这块配置还不是很明白,只能照猫画虎,添加到这个目录其实是不对的,但是可以用(后边再研究吧))

4-1 文件

meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-git.bb文件 meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-native.bb文件 meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-mrw-native.bb文件 meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties/extra-properties.yaml文件 

4-2 说明

可参考extra-properties.yaml文件在其他文件中相同的位置来添加一个新的properties文件来说明自己添加的fru属性信息,也可以直接编辑该文件来添加自己需要的信息


您的见解

如果您发现什么错误希望您能告诉俺



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222548.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午3:32
下一篇 2026年3月17日 下午3:33


相关推荐

  • 记一次遇到挖矿程序的经历「建议收藏」

    记一次遇到挖矿程序的经历「建议收藏」就在几天前,遇到了一次挖矿程序偷偷装在ECS阿里云服务器上的经历。那是一个风和日丽的上午,我和往常一样来到公司,倒杯水等待电脑打开,之后打开日常维护的几个系统。结果其中有一个OA系统,发现无法正常打开。一开始我以为是网络问题,但是发现打开其他网站正常,于是登上服务器准备探个究竟。登陆云服务器后,重启OA服务,发现报错,报错提示连接线程池连接不上。根据提示,怀疑是连不上部署在本地的数据服…

    2022年4月20日
    44
  • OpenClaw 架构全解析:本地优先的开源 AI Agent 框架

    OpenClaw 架构全解析:本地优先的开源 AI Agent 框架

    2026年3月17日
    2
  • 原码,补码,二进制减法计算_二进制的原码和补码

    原码,补码,二进制减法计算_二进制的原码和补码这篇博客从一道题说起,已知x = (1<<31)-3,求x&-x?这里面考察了二进制的减法,减法也就牵涉了原码补码的一些概念。这里进行下梳理。 一。原码,补码概念1.原码就是早期用来表示数字的一种方式。一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码例如:假设机器是32位系统,in…

    2026年3月11日
    4
  • 正态qq图怎么判断分布_怎么判断是不是QQ小号

    正态qq图怎么判断分布_怎么判断是不是QQ小号一、正态QQ图的原理QQ图通过把测试样本数据的分位数与已知分布相比较,从而来检验数据的分布情况。[1]分位数:亦称分位点,是指将一个随机变量的概率分布范围分为几个等份的数值点。常用的有一个分位数叫,百分位数,它是指如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。QQ图是一种散点图,对应于正态分布的QQ图,就是由标准正态分布的分位

    2022年8月10日
    9
  • 区块链之P2P技术

    区块链之P2P技术P2P网络:Intel:通过系统间的直接交换达成计算机资源与信息的共享IBM:由若干互联协作的计算机构成并具备如下特性之一:系统依存于边缘化设备的主动协作;每个成员同时扮演客户端和服务器的角色;系统应用的用户能意识到彼此的存在而构成一个虚拟或真实的群体节点彼此对等,既作为服务和资源的提供者,又作为服务和资源的获取者区块链依靠P2P网络可扩展性、健壮性:P2P网络中的所有对等节点都可以提供带宽、存储空间以及计算能力等资源,随着更多节点的加入,系统整体的资源和服务能力也在同步地得到扩充。负载均衡

    2022年6月22日
    67
  • BufferedWriter 和 BufferedReader 的使用

    BufferedWriter 和 BufferedReader 的使用BufferedWriter BufferedWriter起始跟FileWriter的使用没什么区别,属于字符输出流。BufferedWriter更高效,因为它内置有一个长度为8192的字符数组,也就是8K的字符数组。这样子,如果我们往文件里面写内容的话,如果内容没有填满这个数组,就会自动等待直到我们填满,然后一起写入硬盘。硬盘的运行速度是很慢的。但是我们也可以利用c…

    2022年6月8日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号