[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#655507: hw-detect: Improve handling of firmware with PXE installs

Package: hw-detect
Version: 1.84
User: debian-edu@lists.debian.org
Usertags: debian-edu

At the moment, when the installer discover that some missing firmware
block is requested by a kernel driver, it will look on the
installation media for firmware or .debs containing the firmware.
This works well when installing from CD, DVD or USB sticks, but do not
work well for PXE installations.

The common use case I run into is installing laptops via PXE over TP
cable where the wireless network card need some extra firmware.  The
installer ask if I want to provide extra firmware using some local
media, but I would prefer it if the installer would just download the
required firmware directly over the net.  After all, it is PXE
installing with a working Internet connection.

One way to do this would be to look for the requested firmware files
in the Contents file available from the APT mirrors.

Here is an example on how it could work when the ipw2200-bss.fw
firmware file is requested:

  GET http://cdn.debian.net/debian/dists/squeeze/Contents-i386.gz |
    gunzip | awk '/^lib\/firmware\/ipw2200-bss.fw/ {print $2}'

This would return non-free/kernel/firmware-ipw2x00, indicating that
the non-free APT source is needed, and the binary package name is
firmware-ipw2x00.  This is all d-i need to be able to download the
correct package and make it available for the kernel driver.

To avoid downloading the entire Contents file (which is 16-19 MiB) to
see which package contain firmware, it is probably a good idea to
extract the relevant part during d-i or hw-detect build, and use this
cached information when looking for firmware.

An alternative might be to look at the package description.  Ben
Hutchings tell me on IRC that all firmware packages generated by
firmware-nonfree have a list of files in their description.  This
might be an alternative way to find the wanted firmware packages.

A third alternative would be to add some new header in the Packages
files like the mechanism gstreamer and iceweasel can use to find their
Happy hacking
Petter Reinholdtsen

Reply to: