使用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卡的编译,其余平台需要找对应的版本。

相关推荐
鼎讯信通3 分钟前
高性能射频信号模块 全方位守护能源设备稳定运行与高效检测
服务器·人工智能·能源
你是个什么橙7 分钟前
Linux 远程桌面访问和管理——VNC服务器
linux·运维·服务器
nhfc998 分钟前
whisper.cpp编译
linux·运维·服务器
载数而行52024 分钟前
Linux 8 进程(树)相关指令
linux
深圳恒讯24 分钟前
越南服务器 ping 值多少?
运维·服务器
ShineWinsu24 分钟前
对于Linux:内核是如何组织管理IPC资源的解析
linux·服务器·c++·面试·笔试·线程·ipc
caimouse29 分钟前
Reactos 第 5 章 进程与线程 — 5.3 系统调用 NtCreateProcess()
服务器·开发语言
yuanjj8832 分钟前
域格ASR平台cat1模块FTP上传、下载
运维·网络
feng_you_ying_li1 小时前
Linux之线程同步:条件变量和两种生产消费模型
linux·运维·服务器
tianyuanwo1 小时前
OS运维智能化落地抉择:构建故障诊断AI Skill VS 沉淀领域知识库,谁是核心先手?
运维·人工智能·知识库·skill