服务器 2024-06-18

KunTai 服务器RAID卡驱动编译总结

一、现网描述

1.1 环境描述

设备型号:KunTai

主板型号:S920S00

RAID卡型号:RAID-3408iMR_3416iMR_3508_3516_3908_3916-megaraid_sas


二、故障描述

2.1 故障现象

客户安装操作系统时无法识别到硬盘,无法安装。


三、问题分析

3.1 排查思路

1. 查看BMC或BIOS存储管理,客户是否有配置RAID阵列,或者RAID卡模式和硬盘状态是否为JBOD,否则也无法识别到硬盘;

image.png 

3.2原因分析

客户安装的操作系统内不含设备目前安装的RAID卡驱动,所以无法识别到硬盘。


四、问题解决

4.1解决办法

获取源码和客户镜像文件(系统版本与内核版本需一致),在测试机中安装系统并手动编译相关驱动,通过Linux dd在安装系统时挂载即可解决。

NeoKylin ServerV7.0U6系统为例:

4.1.1前期准备  

(1)安装NeoKylin Server V7.0 U6 for ARM 操作系统  

 image.png 

(2)下载驱动源码包  

驱动源码包下载地址如下:  

https://www.broadcom.com/products/storage/raid-controllers/megaraid-9460-8i  

 image.png

 (3)下载storcli64 工具   

4.1.2 raid 卡驱动编译  

 (1)配置安装源  

注意:若全安装系统,无需配置安装源即可源码编译 ;若不全安装系统则需要配置一下组件  

步骤1  虚拟光驱挂载OS镜像  

image.png 

步骤2  OS下挂载虚拟光驱,执行如下命令:  

mount /dev/sr0 /mnt  

 image.png

步骤3  创建yum本地源配置文件  

创建本地源文件:vi /etc/yum.repos.d/localyum.repo  

配置内容:  

[local]  

name=local  

baseurl=file:///mnt  

enabled=1  

gpgcheck=0  

 image.png 

(2)安装组件  

a)  安装rpm-build:yum install rpm-build  

b)  安装createrepo:yum install createrepo  

c)  安装mkisofs:yum install mkisofs      

d)  安装kernel-devel:yum install kernel-devel  e)  安装gcc:yum install gcc  

(3)上传源码包  

 使用压缩包下的kmod_srpm路径的源码包kmod-megaraid_sas-07.714.04.00-1.src.rpm:  

 image.png 

将驱动编译源码包kmod-megaraid_sas-07.714.04.00-1.src.rpm上传至操作系统root目录  

(4)编译驱动  

 步骤一:安装src.rpm包,并进入SPEC目录下  

执行命令:rpm -ivh kmod-megaraid_sas-07.714.04.00-1.src.rpm  

进入SPEC路径:cd /root/rpmbuild/SPECS//  

 image.png

 image.png

 image.png

步骤二:rpmbuild  spec文件  

执行命令:rpmbuild -bb megaraid_sas.spec  

 image.png 

 image.png

步骤三:进入编译好的驱动路径:  

cd /root/rpmbuild/RPMS/aarch64/  
       下图所示的kmod-megaraid_sas-07.714.04.00-1.aarch64.rpm就是编译好的驱动文件  

 image.png

步骤四:将编译好的驱动文件重命名为对应OS版本的名称:_ NeoKylinV7.0按需更改  

执行指令:mv kmod-megaraid_sas-07.714.04.00-1.aarch64.rpm kmod-megaraid_sas- 07.714.04.00_NeoKylinV7.0-1.aarch64.rpm  

image.png 

(5)制作dd.iso  

步骤1  执行.mkdir -p /home/update_disk_tmp/{disk,rpms/aarch64,images}  

touch /home/update_disk_tmp/disk/rhdd3  

 image.png

步骤2  执行  vi /home/update_disk_tmp/disk/rhdd3,写入以下字段  

Driver Update Disk version 3  

步骤3  将编译生成的rpm复制到/home/update_disk_tmp/rpms/aarch64/下  

cp /root/rpmbuild/RPMS/aarch64/kmod-megaraid_sas-07.714.04.00_NeoKylinV7.0- 1.aarch64.rpm /home/update_disk_tmp/rpms/aarch64/  

cd /home/update_disk_tmp/rpms/aarch64/  

image.png 

步骤4  生成repomd.xml校验文件  

createrepo --pretty /home/update_disk_tmp/rpms/aarch64/  

 image.png

 image.png

rm -rf /home/update_disk_tmp/disk/rpms  

cp -ax /home/update_disk_tmp/rpms /home/update_disk_tmp/disk/rpms  

image.png 

步骤5  生成dd.iso  

mkisofs -R -o /home/update_disk_tmp/images/dd.iso /home/update_disk_tmp/disk/  

image.png 

生成的dd.iso在images目录下  

 image.png 

4.1.3驱动安装  

(1)安装驱动  

执行命令安装驱动:  

rpm -ivh kmod-megaraid_sas-07.714.04.00_NeoKylinV7.0-1.aarch64.rpm 

  image.png

(2)系统重启查询驱动版本  

系统重启,再次查看目标驱动,目标版本为07.714.04.00  在命令行下输入命令  

a)  ./storcli64_ arm /c0 show   
       b)  modinfo megaraid_sas    
       查询驱动版本  

 image.png

(3)使用dd.iso 加载驱动安装系统  

 步骤1  进入安装起始界面,默认选择第一项  ,然后按“e”  

 image.png

步骤2  如下图选择在linux行末添加“linux dud=1”,然后按“Ctrl+x”启动  

 image.png

步骤3  加载驱动  

在如下图界面,如加载iso格式驱动,需要先弹出系统镜像,然后再插入驱动iso,然后选择 OK回车  

 image.png


image.png

 步骤4  虚拟光驱弹出系统镜像,根据服务器实际配置,插入RAID卡驱动ISO,输入“r”回车 刷新,再输入“1”回车,可看到挂载的驱动镜像,输入“1”回车选择驱动,再输入“c”回车加载驱动。 

image.png 

步骤5  虚拟光驱弹出驱动镜像,插入NeoKylinV7.6系统ISO,输入“C”进入系统.    

 image.png

进入系统

 image.png

步骤6  识别到硬盘后,按照自己的实际需要进安装。 

 image.png

4.2分析总结

考虑到该款硬盘不在兼容性列表内,影响风扇调速,存在过温等较大的风险,建议客户更换成在兼容性列表内的硬盘。