生不带来,死带不走系列

文章目录

  • 前言
  • 一、下载软件包
  • 二、添加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

  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

内容如上
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 注意项

  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属性信息,也可以直接编辑该文件来添加自己需要的信息


您的见解

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


【openbmc添加fru信息通过ipmitool命令读取】相关推荐

  1. 【openbmc添加fru信息通过ipmitool命令读取】【后续】

    openbmc的fru配置 文章目录 一.service 1-1 路径 1-2 文件内容 1-3 of-name-to-eeprom.sh 1-4 基于service的配置参数文件 二.fru数据模板 ...

  2. openbmc开发23:添加fru信息到ipmi

    前面说过如何添加sensor传感器信息(I2C.ADC.FAN)到ipmi,本文内容说明如何将fru信息添加到ipmi中,下面将详细说明. 1 ipmi配置文件转换成cpp 在软件包下有一个scrip ...

  3. 036、Linux下ipmitool命令

    http://www.ibm.com/developerworks/cn/linux/l-ipmi/ http://my.oschina.net/davehe/blog/88801 1.IPMI(In ...

  4. ipmitool命令使用

    一.开关机,重启 查看开关机状态: ipmitool -H (BMC的管理IP地址) -I lanplus -U (BMC登录用户名) -P (BMC 登录用户名的密码) power status 开 ...

  5. ipmitool命令详解

    原文链接:https://www.cnblogs.com/EricDing/p/8995263.html [root@localhost ~]# yum install -y ipmitool #安装 ...

  6. 通过srvctl add命令添加database信息到srvctl管理器

    ================================================ 通过srvctl add命令添加database信息到srvctl管理器 ============== ...

  7. Android添加联系人信息并读取

    Android添加联系人信息并读取 效果图 题目 1. 创建一个File文件,路径为/mnt/sdcard/temp/zhiyuan.txt 2. 进入主页面后自动从File文件中读取联系人数据,每个 ...

  8. Linux操作命令之ipmitool命令参数详解

    Ipmitool --   对于控制支持IPMI的设备有效. Synopsis(概要) ipmitool [-c|-h|-v|-V]-I open <command> ipmitool [ ...

  9. ipmitool命令总结

     Name(名字) Ipmitool --   对于控制支持IPMI的设备有效. Synopsis(概要) ipmitool [-c|-h|-v|-V]-I open <command> ...

最新文章

  1. 还在写大量 if 来判断?试试用一个规则执行器来替代它
  2. eb8000软件怎样上传_百度网盘如何免费上传超过4G的文件?BitComet来帮你!
  3. Python 小白从零开始 PyQt5 项目实战(7)折叠侧边栏的实现
  4. 聊聊为什么 IDL 只能扩展字段而非修改
  5. string 释放_由String,String Builder,String Buffer 引起的面试惨案
  6. Linux环境下虚拟化之KVM常用命令
  7. 计算机的mac被交换机绑定,华为交换机绑定IP与MAC地址 -电脑资料
  8. 用mysql生成工资条,超实用的工资表模板,一键生成工资表
  9. javascript爱心特效
  10. 海龟画图 python太阳花_python海龟绘图实例教程
  11. C++类和对象——设计一个长方形类
  12. 2012成都之行----幺祖祖
  13. 二分搜索的时间复杂度分析
  14. 房屋翻新步骤有哪些?极家装修怎么样?
  15. 关于φ与Φ函数与序列中分数个数的讨论
  16. js 前端时间选择器
  17. 计算机网络:ALOHA协议
  18. JSON转JS对象,JS对象转JSON
  19. CSS——css外部样式文件的引入
  20. An assembly specified in the application dependencies manifest (…) was not found

热门文章

  1. 横沥机械制造生产过程中,零件的加工是最基本的
  2. Memcache的安装与启动【小强测试培训班学员作品】
  3. PySimpleGUI制作复杂界面及制作批量重命名软件
  4. 无所不能的文件批量重命名软件 – Bulk Rename Utility汉化绿色版
  5. 무선랜 보안문제의 심각성에 대해..(WEP,WPA)
  6. 创建手机虚拟设备AVD
  7. 机器视觉监控系统开发与高速视频信号编解码问题备忘录
  8. MATLAB-SIMULINK-二极管搭建整流电路(2)
  9. 电子电路学习笔记(10)——整流桥
  10. Arthas进阶教程