随着硬件和OS的发展,一些新的RAID卡不支持安装老的操作系统。但有些客户可能需要在新的RAID卡上安装老的操作系统。此时需要编译RAID卡驱动,在安装操作系统时使用linux dd来手工加载RAID卡驱动。
略
设备名字 |
数量 |
名称或用途 |
备注 |
虚拟机 |
1 |
用来编译,生成iso |
须跟要在物理服务器上安装的OS版本一致 |
物理服务器 |
1 |
用来验证是否可以手工加载Raid卡驱动 |
RAID 卡 |
本次测试由POC团队完成。
在CentOS 7.3虚拟机里编译的 530 RAID卡驱动文件,在物理服务器上安装CentOS7.3 可以使用Linux dd 手工加载 530 RAID 驱动。
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
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}
MAKE[0]="make -C ${kernel_source_dir} SUBDIRS=${MOD_PATH}/build modules"
CLEAN="make -C ${kernel_source_dir} SUBDIRS=${MOD_PATH}/build clean"
BUILT_MODULE_NAME[0]="megaraid_sas"
DEST_MODULE_LOCATION[0]="/kernel/drivers/scsi/megaraid/"
MODULES_CONF_ALIAS_TYPE[0]="scsi_hostadapter"
REMAKE_INITRD="yes"
#
# Patches
#
#PATCH[0]="rhel4.patch"
#PATCH_MATCH[0]="2\.6\.9-[^11]*\.EL"
#PATCH[1]="sles9-sp1.patch"
#PATCH_MATCH[1]="2\.6\.5-7\.139"
#PATCH[2]="sles9-sp2.patch"
#PATCH_MATCH[2]="2\.6\.5-7\.191"
#PATCH[3]="rhel3-ga.patch"
#PATCH_MATCH[3]="2\.4\.21-4\.EL"
#PATCH[4]="rhel3.patch"
#PATCH_MATCH[4]="2\.4\.21-...*\.EL"
PATCH[20]="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
4. 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 文件。
在物理服务器上使用该文件,通过linux dd 手工加载驱动。因为缺少物理服务器。此步骤由TSE Technical Support同事完成。
同事完成。
此测试时在CentOS7.3上针对530 RAID卡的编译,其余平台需要找对应的版本。