目录
1 Content
2 Support
2.1 安装
2.2 acpi
2.3 cpufreq
2.4 disk
2.5 ethernet/infiniband
2.6 fc
2.7 raid
2.8 kdump
2.9 memory
2.10 system
2.11 usb
2.12 cdrom
2.13 watchdog
2.14 gpu/vgpu
2.15 板卡四元组信息获取
2.16 测试依赖安装说明
1 Content
oec-hardware工具是openEuler社区提供的一款硬件兼容性测试工具,oec-hardware提供服务器整机、板卡与openEuler的兼容性验证测试,验证仅限于基本功能验证,不包括性能测试等其它测试。
本词条提供 oec-hardware 工具在工具安装或者测试过程中可能遇到的问题解答。
2 Support
2.1 安装
2.1.1 oec-hardware 工具安装
oec-hardware 工具已发布到openEuler 官方的 everything 和 update repo源,请使用 dnf 安装软件包。
dnf install oec-hardware
安装完成后执行oech命令进行测试。
详细使用指导请看:
2.1.2 oec-hardware 工具服务端安装
oec-hardware 工具已发布到openEuler 官方的 everything 和 update repo源,请配置相关repo源,然后通过以下步骤进行安装:
(1)使用 dnf 获取软件包进行安装。
dnf install oec-hardware-server
(2)启动服务。本服务默认使用 8080 端口,同时搭配 nginx(默认端口 80)提供 web 服务,请保证这些端口未被占用。
systemctl start oech-server.service
systemctl start nginx.service
(3) 关闭防火墙和 SElinux。
systemctl stop firewalld
iptables -F
setenforce 0
详细使用指导请看:
2.1.4 oec-hardware 工具上传测试结果至服务端失败
如果oec-hardware工具在测试完成后上传测试结果至服务端失败,出现upload failed的报错,请按照以下步骤进行排查:
-
确认服务端和客户端可以ping通;
-
检查服务端的防火墙和selinux是否正确关闭,请执行以下命令关闭:
systemctl stop firewalld
iptables -F
setenforce 0
- 检查初始配置信息是否配置正确,初始化时配置的三个参数不能为空,如果配置异常,请执行oech –clean清除配置信息,重新进行配置。
2.2 acpi
2.2.1 oec-hardware 工具测试acpi 失败,无法找到acpi表
acpi是“Advanced Configuration and Power Interface”的缩写,中文意思是“高级配置与电源管理接口”,因此acpi测试是OS与服务器之间硬件信息交互的测试。
oec-hardware 测试acpi时如果出现以下报错,无法找到acpi表:
Cannot open directory - /sys/firmware/acpi/tables
这个报错说明服务器不支持acpi电源管理,请确认服务器的管理方式。
以下是一般服务器提供的acpi表:
2.3 cpufreq
2.3.1 oec-hardware 工具测试cpufreq时无法找到CPU frequency相关文件
系统安装完成后,如果 /sys/devices/system/cpu/cpu0-95 目录下缺少cpufreq目录文件,导致用例读取文件中的值失败,用户可以通过以下步骤使系统显示对应目录:
-
修改bios相关配置,将bios中的power policy 值设置为Efficiency 、DEMT值设置为Disabled。
-
查看CONFIG_CPU_FREQ_GOV_COMMON=Y 是否为可设置
grep FREQ /boot/config-4.19.90-2016.3.0.0096.oe1.x86_64 |grep GOV |grep -v “is not set”
-
bios 下查看Powe Polily Select值是否为performance,bios->advanced->Power Polily Select
-
cat scaling_available_governors,如果只有两种模式,需要检测驱动
-
使用modinfo 查询加载的驱动类型
cpufreq涉及到的驱动类型有两种:intel_pstate、acpi_cpufreq。
如果是intel_pstate,需要按照下面的步骤,在grub中增加intel_pstate=disable
1)vi /etc/default/grub 在GRUB_CMDLINE_LINUX 所在行最后添加intel_pstate=disable参数。
2)执行grub2-mkconfig -o /boot/efi/EFI/openeuler/grub.cfg (legacy模式下执行grub2-mkconfig -o /boot/grub2/grub.cfg)。
3)cat /proc/cmdline 再检查下修改的cmd,然后重启生效。
4)cpupower frequency-info 可以查看目前支持5种模式。
如果执行以上步骤后,仍然没有cpufreq的相关目录和文件,请升级BIOS固件版本。
相关issue链接:
https://gitee.com/openeuler/kernel/issues/I3S1JI
2.4 disk
2.4.1 oec-hardware 工具测试disk信息配置
oec-hardware 工具的disk 测试项需要用户在配置文件 test_config.yaml 中指定相关测试信息,工具执行测试时会自动读取该文件获取相关信息,默认值为all(all表示测试除系统盘以外的所有硬盘)。
vi /usr/share/oech/lib/config/test_config.yaml
2.5 ethernet/infiniband
2.5.1 oec-hardware 工具测试网卡信息配置
oec-hardware 工具的 ethernet/inifiband测试项需要用户在配置文件 test_config.yaml 中指定相关测试信息,工具执行测试时会自动读取该文件获取相关信息。
vi /usr/share/oech/lib/config/test_config.yaml
2.5.2 oec-hardware 工具测试网卡时无法ping通服务端直连网卡
使用oec-hardware工具测试网卡时,需要关闭服务端的防火墙、selinux等配置,保证测试端和服务端直连网卡互相可以ping通。
详细使用指导请看:
2.5.3 oec-hardware 工具测试网卡的rdma模式
如果环境中有一张ib卡,当前ib卡使用的是普通网卡模式,可以使用oec-hardware工具的 ethernet 测试项,指定测试rdma 模式,在该模式下会对这张板卡进行ib模式的读写等测试。
如果环境中的ib卡使用的infiniband 模式,可以使用oec-hardware工具的 infiniband 测试项对这张卡进行测试。
2.6 fc
2.6.1 oec-hardware 工具测试FC卡信息配置
oec-hardware 工具的fc卡测试项需要用户在配置文件 test_config.yaml 中指定相关测试信息,工具执行测试时会自动读取该文件获取相关信息,默认值为all。
vi /usr/share/oech/lib/config/test_config.yaml
2.7 raid
2.7.1 oec-hardware 工具测试raid卡信息配置
oec-hardware 工具的raid卡测试项需要用户在配置文件 test_config.yaml 中指定相关测试信息,工具执行测试时会自动读取该文件获取相关信息,默认值为all。
vi /usr/share/oech/lib/config/test_config.yaml
2.8 kdump
2.8.1 oec-hardware工具执行测试kdump测试套失败
oec-hardware工具执行kdump 测试失败,首先尝试手动执行以下命令触发kdump:
echo c > /proc/sysrq-trigger
如果系统无法正常切换到第二内核,重启失败并且服务器控制台上出现以下CPU报错:
造成该问题的原因是服务器的BIOS固件版本较低,用户可以通过升级BIOS固件版本解决该问题。
2.8.2 oec-hardware 工具测试kdump时无法切换内核
如果遇到oec-hardware工具执行测试kdump测试套失败,手动重启系统,查看是否能出现切换内核的界面。如果没有出现切换内核的界面,可以通过dnf update进行更新,更新后重启确认是否能出现切换内核界面,如果出现该界面,可以重新测试kdump。
2.8.3 oec-hardware 工具测试kdump测试时无法读取vmcore文件
vmcore文件是由kexec-tools提供的,如果相关文件不存在,请安装软件包kexec-tools。
2.9 memory
2.9.1 oec-hardware 工具测试memory 出现Error eatmem_test failed, please check the space of SWAP
oec-hardware 工具测试memory时如果出现以下报错信息:
Error eatmem_test failed, please check the space of SWAP
这个是因为swap空间不足导致的报错,需要检查当前系统可用的SWAP分区大小,保证可用大小在4G以上。
执行以下步骤动态调整swap分区:
- 创建一个磁盘分区sda1fdisk /dev/sda
- 执行mkswap /dev/sda1格式化分区
- 执行swapon /dev/sda1挂载swap分区
- free -h查看当前swap可用空间
2.9.2 oec-hardware 工具测试memory hotplug失败
内存热插拔测试时,如果内存被cpu占用,会出现无限刷屏,oec-hardware 工具暂时未解决这种场景下内存的分析处理,因此在1.1.0版本起工具中暂时取消内存热插拔测试,待修复完成后,工具会重新集成测试。
如果执行测试出现memory hotplug失败或以下刷屏现象,请挂载openEuler 官方的 everything 和 update repo源,安装最新版本的工具。
2.10 system
2.10.1 oec-hardware 工具测试system报错OS版本不支持
如果oec-hardware执行system测试项失败,日志中出现类似以下的OS版本不支持的报错:
Error: openEuler 22.03 LTS is not supported.
请查看oec-hardware 工具 支持的OS版本:
- 如果工具明确支持测试的OS版本,但是执行测试出现报错,说明安装的工具版本太低,请配置openEuler官方everything和update repo源后,通过dnf install oec-hardware安装最新版本的工具软件包。工具最新版本请查看:oec-hardware: Use for check hardware compatibility with openEuler
- 如果工具版本没有说明支持的OS版本,请在工具仓库下提issue反馈或者发邮件至openEuler社区兼容性SIG组邮箱进行确认:oecompatibility@openeuler.org。
2.10.2 oec-hardware 工具测试system报错内核被修改
oec-hardware 工具会检查内核的完整性,如果内核被重编或者升级, oec-hardware执行system测试项会失败,日志中会出现类似以下内核被修改的报错:
[ERROR] Files in kernel-5.10.0-60.18.0.50.oe2203.aarch64 were modified.
详细被修改文件请执行以下命令查看:
rpm -V --nomtime --nomode --nocontexts kernel
如果确认需要修改内核来支持适配整机/硬件,请将相关patch提交至openEuler社区的kernel中,等内核合入patch后重新进行验证。
2.10.3 oec-hardware 工具测试system报错SElinux is not enforcing
oec-hardware 工具会检查SElinux的状态,如果日志中出现以下报错,说明系统默认的selinux模式是disabled,所以测试时无法临时打开selinux:
[ERROR] SElinux is not enforcing, expect is enforcing.
修改/etc/selinux/config中配置项SELINUX的值变更SELinux模式,使用enforcing或permissive模式。
修改完成后重启系统,使之生效。
然后执行oech重新测试system,selinux可以测试通过。
详细的selinux配置方式请参考openEuler各个版本中的安全加固指南,以openEuler 22.03LTS为例,可以参考以下文档:
2.11 usb
2.11.1 oec-hardware 工具测试usb
oec-hardware进行usb测试时,需要人工进行辅助测试,在出现以下提示时插入usb设备,设备类型不限(U盘、鼠标、键盘等)。
插入设备后在控制台输入”y”继续测试,在出现以下提示时拔出usb设备。
拔出设备后在控制台输入”y”继续测试。
注意:第一次测试失败后,需要在第二次测试之前拔掉USB设备,然后再开始第二次的测试,以防止不识别“No USB device add.”的问题。
2.12 cdrom
2.12.1 oec-hardware 工具测试cdrom
oec-hardware进行cdrom测试时,需要人工进行辅助测试,在出现以下提示时插入cdrom设备
插入设备后在控制台输入”y”继续测试。
注意:cdrom测试时会对CD/DVD进行读写测试,会破坏里面的数据,所以测试时要确认设备里的数据已进行备份。
2.13 watchdog
2.13.1 oec-hardware 工具执行测试watchdog失败
oec-hardware工具如果执行watchdog用例失败,aarch64架构请先执行下面两条命令,然后再进行测试:
rmmod sbsa_gwdt
modprobe sbsa_gwdt action=1
相关issue链接:
watchdog不自动触发 · Issue #I1O3I1 · openEuler/oec-hardware - Gitee.com
2.13.2 oec-hardware 工具执行测试获取watchdog时间报错
oec-hardware工具执行watchdog用例失败,如果出现以下报错,表示获取watchdog时间失败:
请执行下面两条命令:
cd /usr/share/oech/lib/tests/watchdog
./watchdog -s 20
如果手动测试通过,请重新测试watchdog。
2.13.3 oec-hardware 工具执行测试获取watchdog不触发重启
modprobe softdog soft_margin=20,然后重新测试watchdog
2.14 gpu/vgpu
2.14.1 oec-hardware 工具无法显示gpu/vgpu测试项
oec-hardware 工具提供了gpu/vgpu 测试能力,在使用工具测试前,用户需要手动安装gpu/vgpu驱动,配置好硬件环境后再执行 oech 命令,工具会识别并显示 gpu/vgpu 测试项。
2.14.2 oec-hardware 工具测试vgpu失败
oec-hardware 工具集成了nvidia vgpu测试能力,nvidia 的gpu和vgpu使用的是不同的驱动,因此如果要测试vgpu,需要单独安装vgpu驱动,配置好环境,并在/root目录下放置nvidia 客户端(虚拟机)可使用的vgpu驱动。
2.15 板卡四元组信息获取
用户可以通过以下三种方式查看板卡四元组信息:
- 通过iBMC查看
- 使用 lspci -nvv 查看
- 使用 lspci -xs 查看
以网卡的四元组信息查询为例:
- 执行ethtool -i 网卡名,查看网卡的bus-info;
- 执行lspci -xs 网卡的bus-info,查看四元组信息;
vendorID: 19e5
deviceID: a222
svID: 19e5
ssID: 04cc
2.16 测试依赖安装说明
oec-hardware 工具存在软件包安装依赖和编译依赖,并且每个测试项会有不同的测试依赖。如果测试环境无法连接外网,可以通过挂载本地repo源或提前下载相关软件包、工具上传至测试环境中,再进行测试。
以下文档中提供了oec-hardware 工具的相关依赖软件包列表: