Q1:如何带内os侧访问bmc(适用于无法直接访问bmc的场景)?
A:
1.通过ipmitool工具带内发送ipmi命令进行操作
2.os的网络有veth设备正常up的情况下,可以通过ssh Administrator@fe80::9e7d:a3ff:fe28:6ffa%veth ssh登录bmc
Q2:查询不到sr里配置的对象有什么排查思路吗?
A:
通过GetObjects方法可以查询某个position下框架分发的对象,例如
busctl --user call bmc.kepler.hwdiscovery /bmc/kepler/ObjectGroup/01011604 bmc.kepler.ObjectGroup GetObjects a{ss}s 0 general_hardware
如果分发对象是正常的,则问题出在对应对象管理的组件侧。
Q3:装备定制项问题如何排查
A:
查看装备定制项FAQ
Q4:怎么从零开始搭建openubmc构建环境
A: 参考文档中心资料https://www.openubmc.cn/docs/zh/development/quick_start/prepare_environment/env_introduction.html
Q5:出现web缺少页面,或部分北向接口无法调用调用
A: rackmount组件有oem的options配置
webui组件有ldap_enabled、energy_enabled等options配置
检查配置是否打开
Q6:构建组件失败,报CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
A: 使用ls /opt命令检查opt下的文件目录
查看/opt/RTOS和/opt/hcc_arm64le是否存在,若不存在,则该环境缺少编译需要的依赖组件
初始化本地环境bmcgo build -t install_sdk
此命令也初始化本地组件构建时的dt相关二进制
同时切换1711、1712时的差异也会导致组件build失败,需要删除重新/opt下路径install_sdk
Q7:openUBMC如何一键拉取代码?
A: 在manifest下面执行bingo fetch命令,拉取的代码在source_code目录下
Q8:升级330基线版本后网络不通
A:330版本platform.sr缺少配置 Ipv4/Ipv6/EthernetInterface对象
当前630版本默认无配置时该对象也会正常上树
Q9:openUBMC启动时间长(大于四分钟)
A:查看framework.log abnormal关键字,是否有异常组件。
build/product/BMC/openUBMC/rootfs/etc/system/system/multi-user.target.wants路径下的.service文件必须为软链接
ls -l build/product/BMC/openUBMC/rootfs/etc/systemd/system/multi-user.target.wants
如果不是软链接则在manifest执行以下命令:
cd build/product/BMC/openUBMC/rootfs/etc/systemd/system/multi-user.target.wants
ls *.service |awk -F’,’ ‘{print $1}’| xargs -P 12 -I {{}} ln -sf ../{{}} {{}}
Q10:如何出包自带ssl证书
A:manifest目录下rootfs/opt/bmc/trust/partner/ssl路径下放置证书,会在升级后没有证书的情况下自动导入,当前只支持导入空密码的证书
Q11:构建时,签名阶段出错怎么排查
A:构建的temp/log/task.log的error信息一般会提示哪里有问题
如果是manifest.tml配置问题
manifest仓库中的manifest.yml文件中配置有
schema: /usr/share/bingo/schema/manifest.schema.json
可以通过该文件查看关于manifest.yml文件如何配置
其中包括signature、gpp两部分,可以看是否按照要求配置
Q12:journal日志信息提示一直在重启devmon组件
A:devmon是南向部件驱动相关组件
如果manifest.yml删除了配置
- conan: libmcpp
- conan: component_drivers
- conan: devmon
则需要把对应的devmon.service也删除
Q13:新增组件如何配置启动
A:1.选择使用现有的.service例如hardware.service(使用新增组件单独增加的.service文件也可以)
修改build/product/BMC/openUBMC/rootfs/opt/bmc/apps/hica/subsys/hardware/config.cfg添加app
2.修改build/product/BMC/openUBMC/rootfs/opt/bmc/conf/launch_control.json
对应的.service中增加组件配置
Q14:如何升级第三方签名的包
A:1.替换hpm签名
2.能拿到第三方的公钥证书的情况下,放置manifest目录 rootfs/opt/bmc/trust/partner/rootca.der
后构建出的包可支持第三方签名包升级
Q15:openUBMC如何通过出包修改网络相关配置
A:5.13.0.1bmc_sdk及之后的版本支持通过csr对象配置网络,具体支持属性可查看bmc_network的model.json,Ipv4/Ipv6/EthernetInterface对象的可配置属性
Q16:构建时闭源组件缺包,需要源码构建,导致构建出包失败,如何查看哪里有问题
A:搜索temp/log/task.log、temp/log/conan_Build_XX.log(XX为组件名)文件中的关键字[options],可以查看构建的参数。通过conan list XX/X.X.X@openubmc/stable:* 排查是否对应option的Package包缺失,或者manifest.yml配置参数不合理
Q17:conan2的二进制本地怎么整理和合并?
A: conan2的本地缓存路径在~/.conan2/p目录下,发布二进制压缩包格式为tar.gz,解压后的dependencies目录等效于p目录,本地合并二进制可以将待合并的二进制放到~/.conan2/p_tomerge目录,运行以下脚本进行合并
Q18:硬件代理hwproxy报错问题如何排查
framework.log中如果出现i2c read fail或 i2c write fail,可以找统一时间一键收集日志dump_info\LogDump\linux_kernel_log中的i2c链路报错
格式为I2C-bus-RT<xfer_ret|ret>] M<addr|flag|protocal|retries|timeout> L<wlen|rldn|cmd_len> C<wcnt|rcnt|outstanding> E<cmd_error|msg_error|status|abort_source> I<irq_status|irq_raw_status|irq_mask>
如[I2C-11-RT<-5|-5>] M<0x4a|0x1|0x0|1|10> L<1|2|0> C<1|0|2> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
关注返回码和错误码
Q19:本地构建组件时总是拉远端最新依赖的版本,如何使用想要的配套版本
A:在manifest里构建一次(保证本地缓存),然后组件build时加个-nc参数,就会用本地缓存去构建
Q20:升级csr时异常断电(或其它原因)导致csr对象加载不到无法升级,如何恢复
A:bmc的升级包可以内置一个较高版本的csr,通过修改connector属性手动加载,然后升级csr的升级包恢复
Q21: bmc的sgmii接交换芯片无法访问bmc网络
A:platform.sr的EthMac对象中默认是自协商,但是在没有接phy芯片直连交换芯片的场景下,不能使用自协商。
修改以下属性,与交换芯片侧保持一致
“SpeedDuplexEnable”: true,
“SpeedSetting”: 0,
“DuplexSetting”: 0
Q22:升级定制bios启动logo的bios,定制bios未生效
A: 商用版本升级bios是平滑升级,不更新logo那部分的寄存器。如果要生效需要使用全擦升级命令升级