# oc-hct **Repository Path**: opencloudos-stream/oc-hct ## Basic Information - **Project Name**: oc-hct - **Description**: 硬件兼容性测试工具,用于验证OS和硬件设备的兼容性。 - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 4 - **Created**: 2022-07-04 - **Last Updated**: 2025-10-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 开源硬件兼容性测试工具(Hardware Compatibility Testing) ## 下载工具 执行以下命令: `git clone --recursive https://gitee.com/opencloudos-stream/oc-hct.git` ## 安装依赖 ### 安装编译依赖 `yum install -y gcc gcc-c++ make kernel-devel python3` 工具编译需要gcc 8或以上版本,早期TencentOS(tlinux)版本可以通过下面命令安装高版本gcc ```shell yum --enablerepo=tlinux-testing install -y tlinux-release-gcc-update yum remove -y tlinux12-compat compat-gcc-44-c++ libgfortran yum update -y gcc ``` 测试NVIDIA GPU卡需要实现安装CUDA Toolkit,其他设备不涉及 ### 安装运行依赖 工具运行时需要采集系统和硬件信息,需要事先安装对应工具 ```shell yum install -y pciutils lsscsi usbutils lshw dmidecode systemd-udev ipmitool smartmontools hdparm yum install -y util-linux kmod net-tools numactl kernel-tools procps-ng ethtool gzip libselinux-utils ``` ## build `./build_rpm.sh` 制作好的rpm包位于rpm_build/RPMS目录下x86_64或aarch64中 ## install `rpm -ivh oc-hct-1.0.0-1.tl3.x86_64.rpm` 或 `rpm -ivh oc-hct-1.0.0-1.tl3.aarch64.rpm` 安装后工具文件默认放置在/var/lib/oc-hct目录下 ## test 执行测试对环境有如下要求: - 已配置好yum软件源,支持安装必须的软件包 - 如果要执行network相关测试,需要有另一台测试机辅助测试,本机可通过ssh秘钥登录辅助测试机的root用户 - 如果要执行storage相关测试,需要有专用于测试的存储设备,测试中该设备**数据会被清除** - 对network、storage和gpu进行测试,需要通过参数指定待测设备,用法见帮助信息 ### 列出工具测试项 命令`oc-hct list` 命令执行示例 ```bash bash# oc-hct list TST_TS_TOPDIR=/var/lib/oc-hct 1 : cpu.benchmark : ./testcase/cpu.benchmark.sh 2 : cpu.calculate : ./testcase/cpu.calculate.c 3 : cpu.hotplug : ./testcase/cpu.hotplug.sh 4 : cpu.list : ./testcase/cpu.list.sh 5 : cpu.power : ./testcase/cpu.power.sh 6 : cpu.schedule : ./testcase/cpu.schedule.c 7 : gpu.list : ./testcase/gpu.list.sh 8 : gpu.vendor.nvidia : ./testcase/gpu.vendor.nvidia.sh 9 : memory.allocate : ./testcase/memory.allocate.c 10 : memory.hotplug : ./testcase/memory.hotplug.sh 11 : memory.list : ./testcase/memory.list.sh 12 : network.connect : ./testcase/network.connect.sh 13 : network.list : ./testcase/network.list.sh 14 : network.tcp : ./testcase/network.tcp.sh 15 : network.udp : ./testcase/network.udp.sh 16 : storage.list : ./testcase/storage.list.sh 17 : storage.mount : ./testcase/storage.mount.sh 18 : system.backtrace : ./testcase/system.backtrace.sh total 18 testcase ``` ### 执行测试 命令`oc-hct test` - 网络设备测试要求: * 执行网络测试需要传入参数 --network 指定**对端服务器IP** * 需要配置本机到对端服务器的**ssh免密登录** - 存储设备测试要求: * 执行存储设备测试需要传入参数 --storage 指定可以用于测试的设备名 * 改设备在测试前不能被挂载 - 显卡设备测试要求: * 显卡测试目前只支持NVIDIA显卡,测试时需要传入 --cuda 参数指定待测试的显卡编号(nvidia-smi列出显卡编号) * 测试环境需要安装对应驱动和cuda工具包:https://developer.nvidia.com/cuda-toolkit-archive 命令执行示例 ```bash bash# oc-hct test --cuda 0,1,2,3 --network 192.168.0.1 \ --network 192.168.1.1 --storage sdb,sdc,nvme1 Get system information... Run test... TST_TS_TOPDIR=/var/lib/oc-hct ts_setup ==> PASS 1/18 : cpu.benchmark ==> PASS (cost 20.110) 2/18 : cpu.calculate ==> PASS (cost 0.020) 3/18 : cpu.hotplug ==> PASS (cost 19.220) 4/18 : cpu.list ==> PASS (cost 0.130) 5/18 : cpu.power ==> PASS (cost 23.300) 6/18 : cpu.schedule ==> PASS (cost 0.810) 7/18 : gpu.list ==> SKIP (cost 5.820) 8/18 : gpu.vendor.nvidia ==> PASS (cost 0.060) 9/18 : memory.allocate ==> PASS (cost 227.850) 10/18 : memory.hotplug ==> PASS (cost 547.430) 11/18 : memory.list ==> PASS (cost 0.230) 12/18 : network.connect ==> PASS (cost 0.070) 13/18 : network.list ==> PASS (cost 0.130) 14/18 : network.tcp ==> PASS (cost 0.060) 15/18 : network.udp ==> PASS (cost 0.060) 16/18 : storage.list ==> PASS (cost 1.430) 17/18 : storage.mount ==> PASS (cost 0.080) 18/18 : system.backtrace ==> PASS (cost 0.590) ts_teardown ==> PASS total: 18 pass: 17 skip: 1 fail: 0 execute ./tsuite run fail, cost 847.620 ```