Loading firmware during install in debian-based Linux distos

At work I run a lot of Linux servers with Oracle Linux (OEL, Red Hat-derived) and our Dell PowerEdge 2950 servers have no problems with them. At first, OEL 4u5 had a terribly confusing issue with device enumeration where the first on-board NIC (labeled 1) would end up as eth1 and the other (labeled 2) would become eth0. That was fixed later on and I've reported on it here, 2 years ago.

Lately, I've been playing with other Linux distos and seeing how well the (old) Dell servers hold up new distributions. I always used netimages where I install the OS over the network. For one, this greatly speeds up the ISO download and it also ensures I have an updated system after installation ready for testing.

While Red Hat and SUSE-based distos are not a problem, Debian-based versions can be. This mainly has to do with the strict philosophy of their maintainers that non-free drivers and firmware should not be included in the image. In my case, the lack of built-in Broadcom (bnx2) drivers causes my system to be dead on the network. So you need to include a "driver disk". But how...?

Debian fortunately has a nice way to do this: you include any or all your drivers on a floppy or USB disk (image, in case you're working remotely). Put the .tar.gz archives in the root of the device or inside a /firmware directory, connect it at boot time so the installer sees the device and you should be fine. Curious where you can get these drivers and firmware packages for Ubuntu or Debian? Check this archive.

Oh and this also works with manufacturer's drivers, such as FC NICs, Intel NICs, Qlogic HBAs, and so on, should you be dissatisfied with the built-in drivers or require more recent drivers for specific functionality. More details and information can be found on Loading Missing Firmware from the Debian Lenny release notes.

Update: Specifically for Debian Lenny on Dell hardware, you should also read this detailed HOWTO perform unattended PXE installs with Debian Lenny.


Popular posts from this blog

Tuning the nscd name cache daemon

Preventing PuTTY timeouts

Debugging sudo and sudoers