oec-hardware 工具使用问题解答

目录

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的报错,请按照以下步骤进行排查:

  1. 确认服务端和客户端可以ping通;

  2. 检查服务端的防火墙和selinux是否正确关闭,请执行以下命令关闭:

systemctl stop firewalld

iptables -F

setenforce 0

  1. 检查初始配置信息是否配置正确,初始化时配置的三个参数不能为空,如果配置异常,请执行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目录文件,导致用例读取文件中的值失败,用户可以通过以下步骤使系统显示对应目录:

  1. 修改bios相关配置,将bios中的power policy 值设置为Efficiency 、DEMT值设置为Disabled。

  2. 查看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”

  1. bios 下查看Powe Polily Select值是否为performance,bios->advanced->Power Polily Select

  2. cat scaling_available_governors,如果只有两种模式,需要检测驱动

  3. 使用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.3.12 oec-hardware 工具测试cpufreq时获取CPU info失败


可以按下图尝试解决:

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

cke_479766.png

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报错:

image.png

造成该问题的原因是服务器的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.8.4 oec-hardware 工具测试kdump时kdump服务启动失败


解决方法:

  1. 修改/boot/efi/EFI/openEuler/grub.cfg,添加crashkernel=1024M,high。
  2. 执行grub2-mkconfig -o /boot/efi/EFI/openeuler/grub.cfg (legacy模式下执行grub2-mkconfig -o /boot/grub2/grub.cfg)。reboot系统使配置生效。
  3. 执行如下命令,检查kdump状态:
systemctl restart kdump
systemctl status kdump

若回显如下,即kdump的状态为active,说明kdump已使能,操作结束。

参数说明

kdump内核预留内存参数说明如下:

表 1 crashkernel参数说明

内核启动参数 描述 默认值 备注
crashkernel=X 在4G以下的物理内存预留X大小的内存给kdump使用 无,用户根据实际情况调整 该配置方法只在4G以下内存预留,必须保证4G以下连续可用内存足够预留
crashkernel=X@Y 在Y起始地址预留X大小的内存给kdump使用 无,用户根据实际情况调整 需要确保Y起始地址的X大小内存未被其他模块预留
crashkernel=X,high 在4G以下的物理内存中预留256M大小,在4G以上预留X大小内存给kdump使用 无,用户根据实际情况调整,推荐值为1024M,high 确保4G以下内存有256M连续可用内存,4G以上有连续X大小内存可预留。实际预留内存大小为256M+X
crashkernel=X,low

crashkernel=Y,high|在4G以下的物理内存中预留X大小,在4G以上预留Y大小内存给kdump使用|无,用户根据实际情况调整|需要确保4G以下有X大小连续可用内存,4G以上有Y大小连续可用内存。实际预留内存大小为X+Y|

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分区:

  1. 创建一个磁盘分区sda1fdisk /dev/sda
  2. 执行mkswap /dev/sda1格式化分区
  3. 执行swapon /dev/sda1挂载swap分区
  4. 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版本:

  1. 如果工具明确支持测试的OS版本,但是执行测试出现报错,说明安装的工具版本太低,请配置openEuler官方everything和update repo源后,通过dnf install oec-hardware安装最新版本的工具软件包。工具最新版本请查看:oec-hardware: Use for check hardware compatibility with openEuler
  2. 如果工具版本没有说明支持的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模式。

cke_699188.png

修改完成后重启系统,使之生效。

然后执行oech重新测试system,selinux可以测试通过。

详细的selinux配置方式请参考openEuler各个版本中的安全加固指南,以openEuler 22.03LTS为例,可以参考以下文档:

2.11 usb

2.11.1 oec-hardware 工具测试usb

oec-hardware进行usb测试时,需要人工进行辅助测试,在出现以下提示时插入usb设备,设备类型不限(U盘、鼠标、键盘等)。

cke_730167.png

插入设备后在控制台输入”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链接:

https://gitee.com/openeuler/oec-hardware/issues/I1O3I1

2.13.2 oec-hardware 工具执行测试获取watchdog时间报错

oec-hardware工具执行watchdog用例失败,如果出现以下报错,表示获取watchdog时间失败:

cke_799878.png

请执行下面两条命令:

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 板卡四元组信息获取

用户可以通过以下三种方式查看板卡四元组信息:

  1. 通过iBMC查看
  2. 使用 lspci -nvv 查看
  3. 使用 lspci -xs 查看

以网卡的四元组信息查询为例:

  1. 执行ethtool -i 网卡名,查看网卡的bus-info;
  2. 执行lspci -xs 网卡的bus-info,查看四元组信息;

vendorID: 19e5

deviceID: a222

svID: 19e5

ssID: 04cc

2.16 测试依赖安装说明

oec-hardware 工具存在软件包安装依赖和编译依赖,并且每个测试项会有不同的测试依赖。如果测试环境无法连接外网,可以通过挂载本地repo源或提前下载相关软件包、工具上传至测试环境中,再进行测试。

以下文档中提供了oec-hardware 工具的相关依赖软件包列表:

2 个赞

:ok_hand: :ok_hand: