Adding a new network driver to initrd

  • 7014953
  • 23-Apr-2014
  • 28-Apr-2014

Environment

SUSE Linux Enterprise Server 10 and 11
SUSE Linux Enterprise Desktop 10 and 11
SUSE Driver Tools - SDT

Situation

One received a new server and want to install SLES 10 or 11 in it. The preferred method of installation is through the network but the initrd used in the installation does not contain the network driver for the network controller that came with the new server.

Resolution

Driver Update Disk, A.K.A DUD, will have to be created and it will have to be included in the initrd. To accomplish such task, SUSE developed an open source tool that simplifies the process tremendously called "SUSE Driver Tools", A.K.A "SDT."

  1. Installing SDT
  2. Downloading the new network drivers from SUSE.
    • Technically, you can download the network drivers from the vendor or the community. However, SUSE will not provide support for it.
    • The latest device drivers, from our hardware partners can be found at https://drivers.suse.com/driver-process/ 
    • For this exercise, the new Intel e1000e driver will be used.
      1. Navigate through pub/update/Intel/sle11sp2/common/x86_64
      2. Download both intel-e1000e-2.4.14-2.1.x86_64.rpm and intel-e1000e-kmp-default-2.4.14_3.0.13_0.27-2.1.x86_64.rpm
  3. Creating a Driver Update Disk, a.k.a. DUD
      1. Enter the root directory - 'cd /root'
      2. Create the directory /root/update - 'mkdir /root/update'
      3. Place both intel-e1000e-2.4.14-2.1.x86_64.rpm and intel-e1000e-kmp-default-2.4.14_3.0.13_0.27-2.1.x86_64.rpm in /root/update/
      4. Mount the SLES11SP2 Vanilla ISO on /media
      5. Create the DUD -  'sdt dud -u /root/update/ -b /media'
      6. The command issued on step #4, created the directory /root/linux/suse/x86_64-sles11 and its subdirectories.
  4. Creating a new initrd including the just created DUD.
      1. 'sdt -O /root/new-initrd pxe -u ./linux -b /media'  - This will create the initrd including the new DUD and copy the Linux kernel from the SLES11SP2 Vanilla media.
  5. Update PXE server with the new initrd.
      1. Replace the initrd on the PXE server by the one that was just created called /root/new-initrd. After copying it to the PXE server, remember to rename it to initrd.
  6. Update the SLES11 media with the new initrd.
      1. Copy the whole content of the SLES11SP2 media to a directory, for instance /root/new-SLES11SP2
      2. Remove the old initrd - rm /root/new-SLES11SP2
      3. Copy the new initrd to the new-SLES11SP2 directory and change its name to initrd - 'cp /root/new-initrd /root/new-SLES11SP2/boot/x86_64/loader/initrd'
      4. Create a ISO file using mkisofs - 'mkisofs -o /root/SLES11SP2A.iso -b isolinux.bin -c boot.cat -no-emul-boot \
        -boot-load-size 4 -boot-info-table -T /root/new-SLES11SP2'
      5. Burn the new created "SLES11SP2A.iso" to a DVD.

Additional Information

The Driver Update Disk - either standalone or embedded in the initrd - works this way:

1. Kernel and initrd are loaded and installation starts.
2. Kernel probes for hardware and GA modules are being loaded.
3. udev starts
4. Linuxrc starts and does an additional hardware probe
5. _Then_ Linuxrc loads the DUD and probes the modules delivered there.
6. YaST2 is fired up and installation starts.

Feedback service temporarily unavailable. For content questions or problems, please contact Support.