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

相关推荐
汤永红1 小时前
gtk-x11-2.0.so.0
linux·运维·服务器
公众号:fuwuqiBMC1 小时前
(转自“服务器BMC”)服务器BMC芯片功能——网口
运维·服务器
爱学习的小可爱卢1 小时前
SpringCloud——微服务排错实战:从Gateway到Feign全链路解析
运维·springcloud
XIAOYU6720131 小时前
自动化考什么证书对就业有帮助?大学生就业规划与证书路线全攻略
运维·自动化
Yana.nice1 小时前
Linux logrotate 日志切割未生效
linux·运维·服务器
运维老郭1 小时前
Ubuntu下编译安装Redis:从0到1可用的完整指南
运维·云原生
爱喝水的鱼丶1 小时前
SAP-ABAP:一次关于“交货日期”的增强需求:从复杂增强到标准功能的回归之旅
运维·开发语言·性能优化·sap·abap·经验交流
运维大师2 小时前
【K8S 运维实战】07-Pod生命周期与故障排查
运维·容器·kubernetes
一叶龙洲2 小时前
ubuntu26.04 xfce美化成mac
服务器·ubuntu·macos
Увидимся вчера2 小时前
绿盟堡垒机自动化任务—自动改密失败
linux·服务器·自动化