2.7. Installing Modules from a Driver Update Disk

Driver modules for hardware can be provided in the form of a driver update disk (DUD). The driver update disk, or an ISO image, is normally used at installation time to load and install any modules required for the hardware in use, and this process is described in the Red Hat Enterprise Linux 7 Installation Guide. However, if new driver modules are required after installation, use the following procedure. If you already have RPM files, go directly to step 5.

Procedure 2.2. Installing New Modules from a Driver Update Disk

Follow this post-installation procedure to install new driver modules from a driver update disk (DUD).
  1. Install the driver update disk.
  2. Create a mount point and mount the DUD. For example, as root:
    # mkdir /run/OEMDRV
    # mount -r -t iso9660 /dev/sr0 /run/OEMDRV
  3. View the contents of the DUD. For example:
    # ls /run/OEMDRV/
    rhdd3  rpms  src
  4. Change into the directory relevant to the architecture of your system, contained within the rpms/ directory, and list the contents. For example:
    # cd /run/OEMDRV/rpms/x86_64/
    # ls
    kmod-bnx2x-1.710.51-3.el7_0.x86_64.rpm  kmod-bnx2x-firmware-1.710.51-3.el7_0.x86_64.rpm  repodata
    In the above output the package version is 1.710.51 and the release is 3.el7_0.
  5. Install the RPM files simultaneously. For example:
    # yum install kmod-bnx2x-1.710.51-3.el7_0.x86_64.rpm kmod-bnx2x-firmware-1.710.51-3.el7_0.x86_64.rpm
    Loaded plugins: product-id, subscription-manager
    Examining kmod-bnx2x-1.710.51-3.el7_0.x86_64.rpm: kmod-bnx2x-1.710.51-3.el7_0.x86_64
    Marking kmod-bnx2x-1.710.51-3.el7_0.x86_64.rpm to be installed
    Examining kmod-bnx2x-firmware-1.710.51-3.el7_0.x86_64.rpm: kmod-bnx2x-firmware-1.710.51-3.el7_0.x86_64
    Marking kmod-bnx2x-firmware-1.710.51-3.el7_0.x86_64.rpm to be installed
    Resolving Dependencies
    -#-> Running transaction check
    -#-#-> Package kmod-bnx2x.x86_64 0:1.710.51-3.el7_0 will be installed
    -#-#-> Package kmod-bnx2x-firmware.x86_64 0:1.710.51-3.el7_0 will be installed
    -#-> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ===============================================================================
    Package              Arch    Version           Repository                     
    ===============================================================================
    Installing:
    kmod-bnx2x           x86_64  1.710.51-3.el7_0  /kmod-bnx2x-1.710.51-3.el7_0.x8
    kmod-bnx2x-firmware  x86_64  1.710.51-3.el7_0  /kmod-bnx2x-firmware-1.710.51-3
    
    Transaction Summary
    ===============================================================================
    Install  2 Packages
    
    Total size: 1.6 M
    Installed size: 1.6 M
    Is this ok [y/d/N]:
  6. Enter the following command to make depmod probe all modules and update the list of dependencies:
    # depmod -a
  7. Make a backup copy of the initial RAM file system, by entering the following command:
    # cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.$(date +%m-%d-%H%M%S).bak
  8. Rebuild the initial RAM file system:
    # dracut -f -v
  9. To list the file contents of an initial RAM file system image created by dracut, enter a command as follows:
    # lsinitrd /boot/initramfs-3.10.0-229.el7.x86_64.img
    The output is very long, pipe the output through less or grep to find the module you are updating. For example:
    # lsinitrd /boot/initramfs-3.10.0-229.el7.x86_64.img | grep bnx
    drwxr-xr-x 2 root  root        0 Jun  9 11:25 usr/lib/firmware/bnx2x
    -rw-r-#-r-#- 1 root  root   164392 Nov 25  2014 usr/lib/firmware/bnx2x/bnx2x-e1-7.10.51.0.fw
    -rw-r-#-r-#- 1 root  root   173016 Nov 25  2014 usr/lib/firmware/bnx2x/bnx2x-e1h-7.10.51.0.fw
    -rw-r-#-r-#- 1 root  root   321456 Nov 25  2014 usr/lib/firmware/bnx2x/bnx2x-e2-7.10.51.0.fw
    drwxr-xr-x 2 root  root        0 Jun  9 11:25 usr/lib/modules/3.10.0-229.el7.x86_64/kernel/drivers/net/ethernet/broadcom/bnx2x
    -rw-r-#-r-#- 1 root  root  1034553 Jan 29 19:11 usr/lib/modules/3.10.0-229.el7.x86_64/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
  10. Reboot the system for the changes to take effect.
If required, to view the current in-kernel driver, use the modinfo driver_name command as follows:
# modinfo bnx2x
filename:       /lib/modules/3.10.0-229.el7.x86_64/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
firmware:       bnx2x/bnx2x-e2-7.10.51.0.fw
firmware:       bnx2x/bnx2x-e1h-7.10.51.0.fw
firmware:       bnx2x/bnx2x-e1-7.10.51.0.fw
version:        1.710.51-0
license:        GPL
description:    Broadcom NetXtreme II BCM57710/57711/57711E/57712/57712_MF/57800/57800_MF/57810/57810_MF/57840/57840_MF Driver
author:         Eliezer Tamir
rhelversion:    7.1