在openbmc开发23:添加fru信息到ipmi中说明了如何将fru信息添加到ipmi中,本文将讲述如何生成fru以及fru信息获取展示以及修改等。

1 yaml配置文件转换成cpp

在软件包下有一个scripts文件夹,这里边是python脚本、模板、示例yaml文件以及使用说明,本内容介绍fru的yaml文件。在configure阶段,通过autoconf工具,解析configure.ac以及Makefile.am生成Makefile文件,在编译阶段执行fru_gen.py的python脚本,根据fru_config.yaml文件生成fru-gen.cpp文件。
这部分的配置文件和openbmc开发23一文中的配置文件其实是同一个,也需要通过bbappend文件来指定。

2 配置fru配置文件

方法一
通过安装覆盖的方式。
参考openbmc开发23:添加fru信息到ipmi中方法一。但是需要在自己的layer下创建ipmi/phosphor-ipmi-fru_%.bbappend文件,文件内容如下:

DEPENDS_append_${MACHINE} = " yaml-config"EXTRA_OECONF_${MACHINE} = " \YAML_GEN=${STAGING_DIR_HOST}${datadir}/yaml-config/ipmi-fru-read.yaml \PROP_YAML=${STAGING_DIR_HOST}${datadir}/yaml-config/ipmi-extra-properties.yaml \"

方法二:
在your-layer/conf/machine/machine.conf中指定配置文件。
参考openbmc开发23:添加fru信息到ipmi中的方法二,只不过需要在xxx-ipmi-fru-map-native.bb文件中的do_install_append()函数中添加如下内容:

  IPMI_FRU_SRC=${datadir}/phosphor-ipmi-fru/configIPMI_HOST_DEST=${D}${datadir}/phosphor-ipmi-host/configinstall -d ${IPMI_HOST_DEST}cat ${IPMI_FRU_SRC}/config.yaml > ${IPMI_HOST_DEST}/fru_config.yaml

这里依赖于openbmc开发23:添加fru信息到ipmi中配置,在之前的配置上增加配置,另外,不要两种方法混用以免导致报错。

3 yaml文件

yaml文件和openbmc开发23:添加fru信息到ipmi中一样,不需要进行修改,这里不做赘述。

4 指定fru的eeprom设备

4.1 创配置文件

创建phosphor-ipmi-fru文件夹,创建obmc/eeproms/system/motherboard文件内容如下:

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/

dts中配置eeprom:

&i2c3 {status = "okay";/* FRU */eeprom@58 {compatible = "atmel,24c256";reg = <0x58>;};
};

compatible字段需要指定对应eeprom的驱动,同时在内核配置时打开对应驱动。
如果dts中没有配置,内核中有编译eeprom的驱动,可以手动创建eeprom的驱动:执行echo 24c256 0x58 > /sys/bus/i2c/i2c-3/newdeveice命令

4.1 打包配置文件到镜像

在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()函数来安装(后期文章说明)。

5 fru二进制文件生成

github上ipmitool下有开源工具frugen来生成fru.bin文件。网址:https://github.com/ipmitool/frugen。

6 fru二进制写入eeprom

7 实际测试

openbmc开发28:fru配置和测试相关推荐

  1. Springboot2 D3 SpringBoot开发实用篇 - 热部署 - 配置高级 - 测试

    SpringBoot开发实用篇 ​ 运维实用篇完结以后,开发实用篇采用日更新的形式发布给各位小伙伴,基本上是每天一集,目前已经发布完毕. ​ 开发实用篇中因为牵扯到SpringBoot整合各种各样的技 ...

  2. 微信公众号开发-网页授权——配置测试账号

    思路分析: 1.创建测试账号并且配置测试账号的授权回调域名. 2.由前端发起授权请求,微信收到请求后(若是首次打开,并且未关注公众号,微信会弹出授权页,提示用户授权)将重定向到请求url中配置的red ...

  3. 【OpenBMC 系列】1.OpenBMC 开发环境搭建

    目标: 安装Linux 系统,推荐使用Ubuntu18+,作为开发环境. 安装Qemu 作为bmc运行的虚拟机. 受众:熟悉 Linux 和 BMC 的程序员 先决条件:当前的 Linux.Mac 或 ...

  4. openbmc开发-->aspeed-->slave-i2c[ast2400]

    openbmc开发-->aspeed-->slave-i2c[ast2400] 前言 ast2400 内核修改启用i2c从机模拟eeprom 测试驱动 ast2400 i2c-aspeed ...

  5. Myeclipse安装、配置、测试

    Myeclipse安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.安装与激活 4.JavaSE开发测试(确保JDK已正确安装) 5.JavaEE开发测试(确保服务器和 ...

  6. 项目开发神器VsCode配置指南!(含C++、Python、Java环境配置)

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:吴忠强,东北大学,Datawhale成员 本篇文章虽然是VsCod ...

  7. haproxy + keepalived “一键安装包” 配置与测试HOWTO

    本文为  "haproxy + keepalived 一键安装包"  的 第四篇 目的:帮助快速设置haproxy 与 keepalived 配置文档 第一篇 haproxy 安装 ...

  8. Android开发环境简单配置

    为什么80%的码农都做不了架构师?>>>    ·         Android开发环境简单配置 写这个系列的原因也是因为自己对android比较感兴趣,而网上多数教程都是直接参照 ...

  9. Linux(Ubuntu 16) 下Java开发环境的配置(二)------Tomcat的配置及常见问题

    前言 相比于java JDK的配置,Tomcat的配置简单的多,简直就相当于直接运行了,本文以Tomcat8.0为例进行配置 1.Tomcat的下载 地址:https://tomcat.apache. ...

最新文章

  1. 阿里秋招面试全解析(含内推岗)
  2. vue 项目 常用package.json
  3. mapinfo在线地图插件_表格中如何可视化地址数据?用 SeaTable 的地图插件很方便...
  4. 极虎病毒创造四个“之最”
  5. win8 网络 计算机,win8系统下,如何使电脑成为无线路由器?
  6. 2个维度5大方法,让你的微服务在K8s上跑起来
  7. 字节跳动面试真题:java实现远程控制
  8. move语句java_java 程序里 有几个地方不明白 1、angle 方法 前两个if 语句 2、movex 、movey 方法作用 3、rotate 方法...
  9. 分布式文件系统FastDFS如何做到高可用
  10. MySQL show processlist
  11. 阿里云maven仓库的使用详解以及报错解决方法
  12. SQL往表里添加字段
  13. 下载Android5.1源代码
  14. 怎么用计算机技术预测蛋白质结构,如何利用同源建模预测蛋白质三级结构
  15. 西门子840d高级编程手册_斯沃系统手册--西门子高级编程手册_840D_810Di_810D_FM_NC高级篇.pdf...
  16. [搜索] Solr (三) 全量索引与增量索引
  17. [小故事大道理] -- 木桶原理的逆向思考
  18. 基于javaweb的医院分诊挂号住院管理系统(java+springboot+freemarker+mysql)
  19. 打包时出现Downloading https://...to
  20. zigbee CC2530 系列教程 15 温湿度传感器DHT11实验

热门文章

  1. 【现代密码学原理】——数字签名(学习笔记)
  2. 教你用手机NFC代替小区门禁卡,不用担心被锁门外了!
  3. 报刊资料整理:区块链的去中心化是如何实现的?
  4. 招沿实业零开始学投资理财
  5. 去大连计算机学校考试能停车么,学校周边取消所有临时停车位
  6. mac电脑屏幕护眼颜色_如何反转Mac屏幕的颜色
  7. 头条资深架构师揭秘,今日头条、抖音的推荐算法原理
  8. 不买NAS,也能用cpolar搭建私有云盘4 (设定群晖共享文件夹并安装cpolar)
  9. Git创建秘钥时提示:too many arguments解决
  10. 一切都结束 了,一切又刚刚开始!!!