For those who care about firmware
Some drivers in Linux include "firmware" - code that runs on the device the driver deals with, not the main processors in the system. Most of this is in a binary or equivalent form, which is probably not the form that it was originally written in. This makes it non-free by Debian's standards, an issue which has led to much argument around previous releases and has blown up once again.
The good news is that kernel developers are making a continuing effort to separate this from the driver code. I've collected together the patches that do this and written 2 of my own, which appear to cover all the remaining sourceless firmware. But I was only able to test one of these drivers (radeon) - the rest is up to you.
Affected drivers
Driver | Hardware which requires firmware | Bug report | Change made |
---|---|---|---|
cassini | Sun "Cassini" Ethernet controllers with "Neptune" PHY | 498631 | removed |
dabusb | BayCom DAB-USB radio receivers | 502663 | moved to firmware-dabusb |
e100 | Intel PRO/100 Ethernet controllers with PCI revision 8, 9, 15 or 16 or built into ICH6 or ICH7 (LAN-on-motherboard) | 494308 | moved to firmware-e100 |
kaweth | Kawasaki LSI USB Ethernet controllers | 502665 | removed |
mga | Matrox G200, G400, G450(?) and G550 graphics controllers, 3D acceleration only | 502666 | moved to firmware-matrox |
qla1280 | QLogic QLA1XXX SCSI controllers | 502667 | moved to firmware-qlogic |
r128 | ATI Rage 128 graphics controllers, 3D acceleration only | 494007 | moved to firmware-ati |
starfire | Adaptec DuraLAN aka Starfire Ethernet controllers | 501152 | moved to firmware-adaptec |
tehuti | Tehuti Ethernet controllers | 501153 | moved to firmware-tehuti |
typhoon | 3Com Typhoon (3CR990) Ethernet controllers | 502669 | moved to firmware-3com |
whiteheat | ConnectTech WhiteHEAT USB serial adapters | 502668 | removed |
How to test
- Download and install the linux-source package from http://people.debian.org/~benh/firmware-removal/. There is a signed .changes file there that you can use to verify the package.
- Build and install a kernel from that source (you should probably use make-kpkg).
- Boot the kernel. Check that the driver fails cleanly: it should not crash, and there should be a useful error message in /var/log/messages
- Download and install the relevant firmware package, if available. These are available from the same place as the linux-source package.
- Reboot or reload the driver. Check that the driver is now working.
- Add your results to the bug report as shown above.
Firmware that is removed
Do you depend on the drivers for which I have removed the firmware? Do you have contacts with the vendors who might be able to help relicence it? Please send mail to the bug report.
Update
I checked my email and found a response from ConnectTech; the WhiteHEAT firmware will probably be clear to package in firmware-nonfree. There is no need for anyone else to contact them.