It annoys me when the computer fail to do automatically what it is +perfectly capable of, and I have to do it manually to get things +working. One such task is to find out what firmware packages are +needed to get the hardware on my computer working. Most often this +affect the wifi card, but some times it even affect the RAID +controller or the ethernet card. Today I pushed version 0.4 of the +Isenkram package +including a new script isenkram-autoinstall-firmware handling the +process of asking all the loaded kernel modules what firmware files +they want, find debian packages providing these files and install the +debian packages. Here is a test run on my laptop:
+ ++# isenkram-autoinstall-firmware +info: kernel drivers requested extra firmware: ipw2200-bss.fw ipw2200-ibss.fw ipw2200-sniffer.fw +info: fetching http://http.debian.net/debian/dists/squeeze/Contents-i386.gz +info: locating packages with the requested firmware files +info: Updating APT sources after adding non-free APT source +info: trying to install firmware-ipw2x00 +firmware-ipw2x00 +firmware-ipw2x00 +Preconfiguring packages ... +Selecting previously deselected package firmware-ipw2x00. +(Reading database ... 259727 files and directories currently installed.) +Unpacking firmware-ipw2x00 (from .../firmware-ipw2x00_0.28+squeeze1_all.deb) ... +Setting up firmware-ipw2x00 (0.28+squeeze1) ... +# ++ +
When all the requested firmware is present, a simple message is +printed instead:
+ ++# isenkram-autoinstall-firmware +info: did not find any firmware files requested by loaded kernel modules. exiting +# ++ +
It could use some polish, but it is already working well and saving +me for time when setting up new machines. :)
+ +So, how does it work? It look at the set of currently loaded +kernel modules, and look up each one of them using modinfo, to find +the firmware files listed in the module meta-information. Next, it +download the Contents file from a nearby APT mirror, and search for +the firmware files in this file to locate the package with the +requested firmware file. If the package is in the non-free section, a +non-free APT source is added and the package is installed using +apt-get install. The end result is a slightly better working +machine.
+ +I hope someone find time to implement a more polished version of +this script as part of the hw-detect debian-installer module, to +finally fix BTS report +#655507. There really is no need to insert USB sticks with +firmware during a PXE install when the packages already are available +from the nearby Debian mirror.
+ +