BCLinux 7驱动更新手册


  • BCLinux Developers

    本文介绍BCLinux 7 在安装过程中的驱动升级方法,以megaraid_sas驱动程序为例,示例如何更新驱动。


    1.简介

    大部分情况下安装镜像中提供的驱动程序可以满足需要,但是对于较新的硬件可能在安装镜像中不支持。如果这些硬件导致了安装过程不能顺利完成,比如磁盘不识别或者需要需要访问网络但是网卡无法识别,就需要在安装过程中对驱动进行升级。

    2.下载驱动

    每个硬件厂商都会提供驱动程序的更新,可以在其官方网站下载。针对本文的megaraid_sas驱动程序,其下载链接如下:
    http://docs.avagotech.com/docs-and-downloads/docs-and-downloads/raid-controllers/raid-controllers-common-files/MR_LINUX_DRIVER_6.11-06.811.02.00-3.tgz
    其中包括了多个Linux发行版不同版本的驱动程序,对于使用Anaconda安装程序的发行版包括RHEL、CentOS和Fedora,还提供其可以识别的驱动盘(ISO文件)。驱动盘的格式参考:
    https://raw.githubusercontent.com/rhinstaller/anaconda/master/docs/driverdisc.rst
    针对BCLinux 7.2的驱动盘内容如下:

    ├── rhdd3
    └── rpms
        └── x86_64
            ├── kmod-megaraid_sas-06.811.02.00_el7.2-2.x86_64.rpm
            └── repodata
    

    BCLinux驱动盘的制作方法,参考:
    BCLinux驱动盘制作手册

    3.更新驱动

    BCLinux支持三种方式的驱动更新,本文以/dev/sdb1作为驱动盘。

    3.1自动识别卷别为OEMDRV磁盘为驱动盘

    安装程序Anaconda会检测当前系统所有的存储设备,如果有一个存储设备的卷标是OEMDRV,Anaconda会将其当做驱动盘,并尝试从其中获取驱动。
    将/dev/sdb1分区的卷标修改为OEMDRV,重启系统并开启安装过程:
    0_1465809563733_dd.png
    当安装程序启动起来之后,可以看到驱动程序已经被自动加载:
    0_1465809619088_dd.png

    3.2添加启动选项inst.dd

    这种方式下,Anaconda会将系统所有的存储设备列出,由用户选择驱动盘的位置。
    在安装菜单出现时,选择第一个菜单项,按TAB键编辑菜单项,在末尾添加启动选项inst.dd,如下图:
    0_1465809881028_dd.png
    按Enter键开始安装过程,Anaconda会将系统中所有的存储设备列出来:
    0_1465809924882_dd.png
    当前系统有两块磁盘和一个光盘,驱动盘是/dev/sdb1,所以选择编号3,:
    0_1465809997896_dd.png
    Anaconda会将驱动盘中所有的驱动程序列出来,当前驱动盘中只有megaraid_sas这一个驱动,选择需要更新的驱动程序编号:
    0_1465810090997_dd.png
    可以看到驱动程序已经被选择更新,此时输入'c'。Anaconda会回到存储设备列表,此时可以再输入'c'继续安装过程:
    0_1465810156239_dd.png
    待安装界面启动后,按CTRL+ALT+F2进入shell,可以看到驱动程序已经被更新:
    0_1465810201190_dd.png

    3.3添加启动选项inst.dd并指定驱动盘位置

    按TAB键,编辑启动菜单项,在末尾添加启动选项inst.dd,并且指定驱动盘所在位置:
    0_1465810308687_dd.png
    驱动盘的位置信息可以指定的方式如下:

    • CDROM
      inst.dd=cdrom
      在当前系统所有的DVD/CD光盘中,寻找驱动盘。
      inst.dd=cdrom:device
      在具体的某一光盘中寻找驱动盘。
    • 磁盘
      inst.dd=hd:device:/path
      在device指定的磁盘设备中寻找驱动盘。
    • HTTP服务器
      inst.dd=http://host/path
      驱动盘在一台HTTP服务器上,path指定驱动盘所在的路径。
    • FTP服务器
      inst.dd=ftp://username:password@host/path
      驱动盘在一台FTP服务器上。
    • NFS服务器
      inst.dd=nfs:server:/path
      驱动盘在一台NFS服务器上。

    对于磁盘设备而言,可以通过下面三种方式指定磁盘的位置:

    • 内核设备名字,例如/dev/sdb1
    • 文件系统卷标,例如LABEL=BCLinux
    • 文件系统UUID,例如UUID=371f90f3-576c-4c1a-9200-b813b83ed474

    对于网络位置的驱动盘,需要对待安装机器做网络配置,使其可以访问网络(对于配置项inst.repo,inst.stage2等,如果指定了网络位置会默认打开网络。)。这也是通过对启动选项的配置实现的,有多种形式的配置方法:

    • ip=<dhcp|dhcp6|auto6|ibft>
      对系统中所有的网卡采用自动配置,例如DHCP。这个形式适用于当前环境中存在自动配置环境,例如DHCP服务器。
    • ip=<interface>:<autoconf>
      在网卡比较多的系统中,并不是所有的网卡都存在自动配置环境,这个形式只对某一具体网卡做自动配置。
    • ip=<ip>::<gateway>:<netmask>:<hostname>:<interface>:none
      这个形式适用于当前系统不存在自动配置环境,需要静态配置网络信息。包括IP地址、网关、掩码等等。
      本文选择了第一种配置形式,因为环境中存在DHCP服务器并且只有一个网卡,如下:
      0_1465810511648_dd.png
      Anaconda会从HTTP服务上的指定位置将驱动盘下载下来,并自动加载其中的驱动程序:
      0_1465810533046_dd.png
      验证驱动加载结果如下:
      0_1465810550591_dd.png

    4.注意事项

    关于驱动的更新,需要注意下面两个事项:

    • 已经被Anaconda加载的驱动程序无法更新,此时必须使用已经被加载的驱动程序完成安装。驱动的更新,可以在安装完毕后进行。

    • 对于使用UEFI并且启用安全启动选项的机器,加载的驱动程序必须是被证书签名过的,并且证书必须可以被验证通过。否则,系统就会拒绝加载该驱动。


登录后回复
 

与 BC-LINUX 的连接断开,我们正在尝试重连,请耐心等待