生不带来,死带不走系列
文章目录
前言
参考链接: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配置文件
- 找到自己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
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 注意项
- 注意缩进用空格
- 注意同类型数据要缩进一致
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
