openbmc开发28:fru配置和测试
在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配置和测试相关推荐
- Springboot2 D3 SpringBoot开发实用篇 - 热部署 - 配置高级 - 测试
SpringBoot开发实用篇 运维实用篇完结以后,开发实用篇采用日更新的形式发布给各位小伙伴,基本上是每天一集,目前已经发布完毕. 开发实用篇中因为牵扯到SpringBoot整合各种各样的技 ...
- 微信公众号开发-网页授权——配置测试账号
思路分析: 1.创建测试账号并且配置测试账号的授权回调域名. 2.由前端发起授权请求,微信收到请求后(若是首次打开,并且未关注公众号,微信会弹出授权页,提示用户授权)将重定向到请求url中配置的red ...
- 【OpenBMC 系列】1.OpenBMC 开发环境搭建
目标: 安装Linux 系统,推荐使用Ubuntu18+,作为开发环境. 安装Qemu 作为bmc运行的虚拟机. 受众:熟悉 Linux 和 BMC 的程序员 先决条件:当前的 Linux.Mac 或 ...
- openbmc开发-->aspeed-->slave-i2c[ast2400]
openbmc开发-->aspeed-->slave-i2c[ast2400] 前言 ast2400 内核修改启用i2c从机模拟eeprom 测试驱动 ast2400 i2c-aspeed ...
- Myeclipse安装、配置、测试
Myeclipse安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.安装与激活 4.JavaSE开发测试(确保JDK已正确安装) 5.JavaEE开发测试(确保服务器和 ...
- 项目开发神器VsCode配置指南!(含C++、Python、Java环境配置)
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:吴忠强,东北大学,Datawhale成员 本篇文章虽然是VsCod ...
- haproxy + keepalived “一键安装包” 配置与测试HOWTO
本文为 "haproxy + keepalived 一键安装包" 的 第四篇 目的:帮助快速设置haproxy 与 keepalived 配置文档 第一篇 haproxy 安装 ...
- Android开发环境简单配置
为什么80%的码农都做不了架构师?>>> · Android开发环境简单配置 写这个系列的原因也是因为自己对android比较感兴趣,而网上多数教程都是直接参照 ...
- Linux(Ubuntu 16) 下Java开发环境的配置(二)------Tomcat的配置及常见问题
前言 相比于java JDK的配置,Tomcat的配置简单的多,简直就相当于直接运行了,本文以Tomcat8.0为例进行配置 1.Tomcat的下载 地址:https://tomcat.apache. ...
最新文章
- 阿里秋招面试全解析(含内推岗)
- vue 项目 常用package.json
- mapinfo在线地图插件_表格中如何可视化地址数据?用 SeaTable 的地图插件很方便...
- 极虎病毒创造四个“之最”
- win8 网络 计算机,win8系统下,如何使电脑成为无线路由器?
- 2个维度5大方法,让你的微服务在K8s上跑起来
- 字节跳动面试真题:java实现远程控制
- move语句java_java 程序里 有几个地方不明白 1、angle 方法 前两个if 语句 2、movex 、movey 方法作用 3、rotate 方法...
- 分布式文件系统FastDFS如何做到高可用
- MySQL show processlist
- 阿里云maven仓库的使用详解以及报错解决方法
- SQL往表里添加字段
- 下载Android5.1源代码
- 怎么用计算机技术预测蛋白质结构,如何利用同源建模预测蛋白质三级结构
- 西门子840d高级编程手册_斯沃系统手册--西门子高级编程手册_840D_810Di_810D_FM_NC高级篇.pdf...
- [搜索] Solr (三) 全量索引与增量索引
- [小故事大道理] -- 木桶原理的逆向思考
- 基于javaweb的医院分诊挂号住院管理系统(java+springboot+freemarker+mysql)
- 打包时出现Downloading https://...to
- zigbee CC2530 系列教程 15 温湿度传感器DHT11实验