使用DKMS 编译RAID卡驱动 并生成 Linux dd.iso 文件

一、测试背景和目的

随着硬件和OS的发展,一些新的RAID卡不支持安装老的操作系统。但有些客户可能需要在新的RAID卡上安装老的操作系统。此时需要编译RAID卡驱动,在安装操作系统时使用linux dd来手工加载RAID卡驱动。

二、测试环境

2.1 网络拓扑图

略

2.2 软硬件配置

|-------|----|---------------------|---------------------|
| 设备名字 | 数量 | 名称或用途 | 备注 |
| 虚拟机 | 1 | 用来编译,生成iso | 须跟要在物理服务器上安装的OS版本一致 |
| 物理服务器 | 1 | 用来验证是否可以手工加载Raid卡驱动 | RAID 卡 |
| | | | |

三、测试规划

四、测试人员和测试时间

本次测试由POC团队完成。

五、测试结果

在CentOS 7.3虚拟机里编译的 530 RAID卡驱动文件,在物理服务器上安装CentOS7.3 可以使用Linux dd 手工加载 530 RAID 驱动。

六、测试步骤、遇到问题和解决办法

6.1 测试步骤

6.1.1 环境准备

1:准备一台CentOS 7.3的虚拟机,需要安装make

安装make, kernel-hearders ,kernel-devel

kernel-headers, kernel-devel 版本与内核版本一致

2:安装dkms,如果有yum 源直接安装,如果没有,下载后安装。需要查看对应OS版本

3:下载RAID卡驱动,安装里面的***_src.rpm

安装raid卡 src rpm 包,会在当前目录生成一个 rpmbuild

root@centos7 \~# cd rpmbuild

root@centos7 rpmbuild# pwd

/root/rpmbuild

root@centos7 rpmbuild# ls

BUILD BUILDROOT RPMS SOURCES SPECS SRPMS

在SOURCES目录下有一个.bz2 的文件,用bzip2 -d 解压后,再用tar 解压

root@centos7 SOURCES# ls -l

total 596

drwxr-xr-x. 2 root root 246 Sep 15 15:31 megaraid_sas-07.713.02.00

-rw-r--r--. 1 root root 604160 Feb 4 2020 megaraid_sas-07.713.02.00.tar

-rw-r--r--. 1 root root 68 Feb 4 2020 megaraid_sas.conf

root@centos7 SOURCES# pwd

/root/rpmbuild/SOURCES

cp megaraid_sas-07.713.02.00 /usr/src

6.1.2 DKMS 编译并打包

1、修改/usr/src/megaraid* 目录下的dkms.conf

root@centos7 megaraid_sas-07.713.02.00# cat dkms.conf

Master copy of dkms.conf for megaraid_sas.

Dont edit this file manually. Auto build script makes necessary changes.

PACKAGE_NAME="megaraid_sas"

PACKAGE_VERSION=07.713.02.00

MOD_PATH={dkms_tree}/{PACKAGE_NAME}/${PACKAGE_VERSION}

MAKE0="make -C {kernel_source_dir} SUBDIRS={MOD_PATH}/build modules"

CLEAN="make -C {kernel_source_dir} SUBDIRS={MOD_PATH}/build clean"

BUILT_MODULE_NAME0="megaraid_sas"

DEST_MODULE_LOCATION0="/kernel/drivers/scsi/megaraid/"

MODULES_CONF_ALIAS_TYPE0="scsi_hostadapter"

REMAKE_INITRD="yes"

Patches

#PATCH0="rhel4.patch"

#PATCH_MATCH0="2\.6\.9-\^11*\.EL"

#PATCH1="sles9-sp1.patch"

#PATCH_MATCH1="2\.6\.5-7\.139"

#PATCH2="sles9-sp2.patch"

#PATCH_MATCH2="2\.6\.5-7\.191"

#PATCH3="rhel3-ga.patch"

#PATCH_MATCH3="2\.4\.21-4\.EL"

#PATCH4="rhel3.patch"

#PATCH_MATCH4="2\.4\.21-...*\.EL"

PATCH20="rhel7.patch"

PATCH_MATCH="3\.10\.0-514\.*"

版本号改成当前megaraid_sas 版本号,添加当前OS的kernel 版本,其余全部注释

2、将megaraid_sas 添加至dkms 树,

会在/var/lib/dkms 生成module的名字,后期如果有问题,可以直接删除该目录

3、build modules

dkms build -m megaraid_sas -v 07.713.02.00 -k 3.10.0-514.el7.x86_64 -a x86_64

  1. install

dkms install -m megaraid_sas -v 07.713.02.00 -k 3.10.0-514.el7.x86_64 -a x86_64

查看状态

安装完成后会在/var/lib/dkms/megaraid_sas/07.713.02.00/source目录下生成一些文件

5、打包成linux dd iso wenjian

dkms mkdriverdisk -m megaraid_sas -v 07.713.02.00 -d redhat3 -k 3.10.0-514.el7.x86_64 -a x86_64 --media iso 创建linux dd iso

从上述目录下去取出iso 文件。

6.1.3 在物理服务器上测试

在物理服务器上使用该文件,通过linux dd 手工加载驱动。因为缺少物理服务器。此步骤由TSE Technical Support同事完成。

同事完成。

七、 测试总结

此测试时在CentOS7.3上针对530 RAID卡的编译,其余平台需要找对应的版本。

相关推荐
非凡ghost13 小时前
视频剪辑不用等渲染,这款开源工具让切分合并秒级完成
运维·电脑·软件需求
FII工业富联科技服务15 小时前
Omniverse 数字孪生与柔性自动化,如何破解产能与交付、设备与空间的双重困境?
运维·自动化·devops
润滑卫士15 小时前
油液介电常数在线监测:测量原理与油液老化状态评估方法
运维
Rock Chin69716 小时前
把 n8n 接进 Slack:在对话里 @机器人 触发自动化工作流
运维·机器人·自动化
浩浩测试一下17 小时前
Linux 底层知识点 1
linux·运维·服务器
Eloudy17 小时前
全文 - IMEX 第01节 -IMEX overview
运维·服务器·网络
物联网软硬件开发-轨物科技18 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
Escalating_xu18 小时前
【Linux 网络编程】TCP 跨平台实战:用 Windows 客户端访问 Linux 服务器
linux·服务器·网络
发量惊人的中年网工18 小时前
分公司访问总部ERP慢怎么办?SD-WAN组网的排查与验收要点
服务器·开发语言·php
海宇数据18 小时前
零信任架构实战:基于海宇网上踪迹欺诈行为识别构建自动化信贷资信评估网关
运维·人工智能·架构·自动化