服务器 2024-06-18

350vip8888 服务器RAID卡驱动编译总结

一、现网描述

1.1?环境描述

设备型号:350vip8888

主板型号: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分析总结

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