• PA视讯国际 PA国际

    服务器 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)下载驱动源码包  

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

    http://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分析总结

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