【openbmc添加fru信息通过ipmitool命令读取】
生不带来,死带不走系列
文章目录
- 前言
- 一、下载软件包
- 二、添加fru信息到ipmi
- 1.ipmi配置文件转cpp
- 2.配置ipmi配置文件
- 3.fru配置文件说明
- 3-1 ipmi目录下创建phosphor-ipmi-fru/obmc/eeprom/system/chassis/bmc文件`
- 3-2 ipmi/phosphor-ipmi-fru_%.bbappend文件
- 3-3 cn2610ea-48s4x-ipmi-inventory-map目录下得yaml文件
- 3-4 meta-inspur-network/meta-cn2610ea-48s4x/recipes-phosphor/ipmi目录下.bb文件
- 3-5 conf.yaml文件
- 3-5-1 注意项
- 4.phosphor-ipmi-fru-properties配置
- 4-1 文件
- 4-2 说明
- 您的见解
前言
参考链接:https://blog.csdn.net/qq_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配置文件
这里原作者有两种方法,我只深入看了第二种
参考代码meta-quanta/meta-q71l
- 找到自己layer,找到或创建meta-xxx/meta-xxx/recipes-phosphor/ipmi/xxx-ipmi-inventory-map目录,该目录下建造config.yaml文件(该文件用于生成fru-gen.cpp,如果没找到该文件会用示例yaml文件生成cpp)
- 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文件内容)
- 在ipmi目录下创建phosphor-ipmi-fru/obmc/eeprom/system/chassis/xxx文件,用于存放可执行程序phosphor-read-eeprom的eeprom路径和fruid
- 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
内容如上
SYSFS_PATH是eeprom驱动生成的文件;FRUID是指定fru信息的编号,需要和ipmi-fru中的保持一致,并且不要重复。
文件名可以是其它的,如board等,文件夹也可以创建obmc/eeproms/system/chassis/motherboard文件。如果有多个fru的eeprom,可以创建多个文件即可,但是注意FRUID不要重复。
在设备中路径/etc/default/obmc/eeproms/
3-2 ipmi/phosphor-ipmi-fru_%.bbappend文件
inherit obmc-phosphor-systemd systemdFILESEXTRAPATHS_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}:"
EEPROM_NAMES 指定配置文件名,多个文件注意中间加空格,如EEPROM_NAMES = “motherboard bmc fan”
EEPROMFMT指定路径,如果前面创建的有chassis,则EEPROMFMT = “system/chassis/{0}”。
其实这一步操作主要是把文件安装到bmc文件系统中/etc/default/obmc/eeproms/下,如果嫌这些配置麻烦,可以自己创建do_install()函数来安装
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 注意项
- 注意缩进用空格
- 注意同类型数据要缩进一致
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属性信息,也可以直接编辑该文件来添加自己需要的信息
您的见解
如果您发现什么错误希望您能告诉俺
【openbmc添加fru信息通过ipmitool命令读取】相关推荐
- 【openbmc添加fru信息通过ipmitool命令读取】【后续】
openbmc的fru配置 文章目录 一.service 1-1 路径 1-2 文件内容 1-3 of-name-to-eeprom.sh 1-4 基于service的配置参数文件 二.fru数据模板 ...
- openbmc开发23:添加fru信息到ipmi
前面说过如何添加sensor传感器信息(I2C.ADC.FAN)到ipmi,本文内容说明如何将fru信息添加到ipmi中,下面将详细说明. 1 ipmi配置文件转换成cpp 在软件包下有一个scrip ...
- 036、Linux下ipmitool命令
http://www.ibm.com/developerworks/cn/linux/l-ipmi/ http://my.oschina.net/davehe/blog/88801 1.IPMI(In ...
- ipmitool命令使用
一.开关机,重启 查看开关机状态: ipmitool -H (BMC的管理IP地址) -I lanplus -U (BMC登录用户名) -P (BMC 登录用户名的密码) power status 开 ...
- ipmitool命令详解
原文链接:https://www.cnblogs.com/EricDing/p/8995263.html [root@localhost ~]# yum install -y ipmitool #安装 ...
- 通过srvctl add命令添加database信息到srvctl管理器
================================================ 通过srvctl add命令添加database信息到srvctl管理器 ============== ...
- Android添加联系人信息并读取
Android添加联系人信息并读取 效果图 题目 1. 创建一个File文件,路径为/mnt/sdcard/temp/zhiyuan.txt 2. 进入主页面后自动从File文件中读取联系人数据,每个 ...
- Linux操作命令之ipmitool命令参数详解
Ipmitool -- 对于控制支持IPMI的设备有效. Synopsis(概要) ipmitool [-c|-h|-v|-V]-I open <command> ipmitool [ ...
- ipmitool命令总结
Name(名字) Ipmitool -- 对于控制支持IPMI的设备有效. Synopsis(概要) ipmitool [-c|-h|-v|-V]-I open <command> ...
最新文章
- 还在写大量 if 来判断?试试用一个规则执行器来替代它
- eb8000软件怎样上传_百度网盘如何免费上传超过4G的文件?BitComet来帮你!
- Python 小白从零开始 PyQt5 项目实战(7)折叠侧边栏的实现
- 聊聊为什么 IDL 只能扩展字段而非修改
- string 释放_由String,String Builder,String Buffer 引起的面试惨案
- Linux环境下虚拟化之KVM常用命令
- 计算机的mac被交换机绑定,华为交换机绑定IP与MAC地址 -电脑资料
- 用mysql生成工资条,超实用的工资表模板,一键生成工资表
- javascript爱心特效
- 海龟画图 python太阳花_python海龟绘图实例教程
- C++类和对象——设计一个长方形类
- 2012成都之行----幺祖祖
- 二分搜索的时间复杂度分析
- 房屋翻新步骤有哪些?极家装修怎么样?
- 关于φ与Φ函数与序列中分数个数的讨论
- js 前端时间选择器
- 计算机网络:ALOHA协议
- JSON转JS对象,JS对象转JSON
- CSS——css外部样式文件的引入
- An assembly specified in the application dependencies manifest (…) was not found