Eigentlich sollte ein Kernel-Upgrade in der Regel eine undramatische Sache sein, wenn man nicht gerade die aller-neuste-bleeding-edge Hardware besitzt. Die Treiberunterstützung aktueller Stock-Kernel von Distributionen wie Debian ist recht breit gefächert, so das 1 bis 10 Jahre alte Hardware ad hoc booten sollte .. die Betonung liegt auf sollte.
Gäbe es da nicht so etwas wie den "non-free firmware removal process" bei dem sich die Hardliner unter den Debian-Entwickler durchsetzten und mit der Zeit jeden noch so kleinen Binary-Blob aus den Quellcodes der Linux-Treiber verbannen wollen. Hintergrund ist das einige Treiber schon seit recht langer Zeit kleine Fragment binärer Codes enthalten die ähnlich einer Firmware geladen werden. Allerdings standen viele davon unter einem rechtlich ungeklärten Status [1], wobei deren Verwendung stillschweigend von den Hardwareherstellern geduldet wurde.
Mindestens ebenso lang wie diese binären Fragmente gibt es auch schon Bestrebungen eine pure reine Opensource Linux Distribution zu produzieren, der auf 100% Quellcode ohne "Closed Source"-Abschnitte, seien sie auch nochso klein, besteht. Mit Kernel 2.6.29 beginnend scheinen diese Bestrebungen nun realisiert zu werden. Die binären Fragmente wurden herausgetrennt und in Form von Firmware-Dateien einheitlich in /lib/firmware abgelegt.
W: Possible missing firmware /lib/firmware/tigon/tg3.bin for module tg3
Die Konsequenz davon ist, wenn man versehentlich die obige Meldung bei der Installation eines neuen Kernels-Paketes übersieht, sehr schnell mit einem System ohne funktionierende Netzwerkkarte dasteht. Da von dieser Sache sehr viele Netzwerkkarten-Treiber betroffen sind.
Einen Teil der benötigten Firmware-Dateien kann man unter Debian-Linux über zwei Pakete via apt (als Benutzer root) installieren.
[sourcecode lang="shell"]
apt-get install firmware-linux-free firmware-linux-nonfree
[/sourcecode]
In den Paketen sind die Firmware-Dateien für folgende Hardware enthalten.
[sourcecode]
3Com Typhoon firmware, version 03.001.008 (3com/typhoon.bin)
AdvanSys ASC-3550 firmware (advansys/3550.bin)
AdvanSys ASC-38C0800 firmware (advansys/38C0800.bin)
AdvanSys ASC-38C1600 firmware (advansys/38C1600.bin)
AdvanSys SCSI controller microcode (advansys/mcode.bin)
Agere/Prism/Symbol Orinoco firmware (AP mode), version 9.48 Hermes I (agere_ap_fw.bin)
Agere/Prism/Symbol Orinoco firmware (STA mode), version 9.48 Hermes I (agere_sta_fw.bin)
Chelsio T3 optical EDC firmware (AEL2005 PHY) (cxgb3/ael2005_opt_edc.bin)
Chelsio T3 twinax EDC firmware (AEL2005 PHY) (cxgb3/ael2005_twx_edc.bin)
Chelsio T3 twinax EDC firmware (AEL2020 PHY) (cxgb3/ael2020_twx_edc.bin)
Chelsio T3B protocol engine firmware, version 1.1.0 (cxgb3/t3b_psram-1.1.0.bin)
Chelsio T3C protocol engine firmware, version 1.1.0 (cxgb3/t3c_psram-1.1.0.bin)
Chelsio T3 main firmware, version 7.4.0 (cxgb3/t3fw-7.4.0.bin)
DAB-USB FPGA bitfile (dabusb/bitstream.bin)
DAB-USB firmware (dabusb/firmware.fw)
Xceive 5000 tuner firmware, version 1.6.114 (dvb-fe-xc5000-1.6.114.fw)
DiBcom dib0700 USB DVB bridge firmware, version 1.20 (dvb-usb-dib0700-1.20.fw)
Intel 82559 D101M microcode (e100/d101m_ucode.bin)
Intel 82559 D101S microcode (e100/d101s_ucode.bin)
Intel 82551-F and 82551-10 microcode (e100/d102e_ucode.bin)
kaweth/new_code.bin
kaweth/new_code_fix.bin
kaweth/trigger_code.bin
kaweth/trigger_code_fix.bin
Matrox G200 WARP engine microcode (matrox/g200_warp.fw)
Matrox G400/G550 WARP engine microcode (matrox/g400_warp.fw)
Rage 128 CCE microcode (r128/r128_cce.bin)
Radeon R100-family CP microcode (radeon/R100_cp.bin)
Radeon R200-family CP microcode (radeon/R200_cp.bin)
Radeon R300-family CP microcode (radeon/R300_cp.bin)
Radeon R400-family CP microcode (radeon/R420_cp.bin)
Radeon R500-family CP microcode (radeon/R520_cp.bin)
Radeon R600 ME microcode (radeon/R600_me.bin)
Radeon R600 PFP microcode (radeon/R600_pfp.bin)
Radeon RS600 CP microcode (radeon/RS600_cp.bin)
Radeon RS690 CP microcode (radeon/RS690_cp.bin)
Radeon RS780 ME microcode (radeon/RS780_me.bin)
Radeon RS780 PFP microcode (radeon/RS780_pfp.bin)
Radeon RV610 ME microcode (radeon/RV610_me.bin)
Radeon RV610 PFP microcode (radeon/RV610_pfp.bin)
Radeon RV620 ME microcode (radeon/RV620_me.bin)
Radeon RV620 PFP microcode (radeon/RV620_pfp.bin)
Radeon RV630 ME microcode (radeon/RV630_me.bin)
Radeon RV630 PFP microcode (radeon/RV630_pfp.bin)
Radeon RV635 ME microcode (radeon/RV635_me.bin)
Radeon RV635 PFP microcode (radeon/RV635_pfp.bin)
Radeon RV670 ME microcode (radeon/RV670_me.bin)
Radeon RV670 PFP microcode (radeon/RV670_pfp.bin)
Radeon RV710 ME microcode (radeon/RV710_me.bin)
Radeon RV710 PFP microcode (radeon/RV710_pfp.bin)
Radeon RV730 ME microcode (radeon/RV730_me.bin)
Radeon RV730 PFP microcode (radeon/RV730_pfp.bin)
Radeon RV770 ME microcode (radeon/RV770_me.bin)
Radeon RV770 PFP microcode (radeon/RV770_pfp.bin)
Tehuti network card firmware (tehuti/bdx.bin)
Broadcom BCM5703/BCM5704 TSO firmware (tigon/tg3_tso.bin)
Broadcom BCM5701A0 firmware (tigon/tg3.bin)
Broadcom BCM5705 TSO firmware (tigon/tg3_tso5.bin)
[/sourcecode]
Sollten einige fehlenden Dateien noch nicht in die Pakete aufgenommen worden sein finden sie sich im aktuellen Kernel-Repository, diese muss man dann manuell downloaden und nach /lib/firmware befördern.
Hinweis
Falls apt-get das package firmware-linux nicht finden kann, es liegt im "non-free" Bereich des Debian-Repositories. Die Konfiguration von apt kann man wiefolgt überprüfen und gegebenfalls anpassen.
#> nano /etc/apt/sources.list
deb http://ftp.de.debian.org/debian testing main contrib non-free
deb-src http://ftp.de.debian.org/debian testing main contrib non-free
Links
http://lwn.net/Articles/304925/
http://www.gnu.org/distros/free-system-distribution-guidelines.html
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=firmware;hb=HEAD
http://blogs.koolwal.net/2009/05/11/tip-debian-linux-kernel-firmware-issues-ethernet-drivers-missing/
http://blog.antiblau.de/2009/04/27/debian-und-ausgelagerte-firmware-in-linux-2629
Eigentlich sollte ein Kernel-Upgrade in der Regel eine undramatische Sache sein, wenn man nicht gerade die aller-neuste-bleeding-edge Hardware besitzt. Die Treiberunterstützung aktueller Stock-Kernel von Distributionen wie Debian ist recht breit gefächert, so das 1 bis 10 Jahre alte Hardware ad hoc booten sollte .. die Betonung liegt auf sollte.
Gäbe es da nicht so etwas wie den “non-free firmware removal process” bei dem sich die Hardliner unter den Debian-Entwickler durchsetzten und mit der Zeit jeden noch so kleinen Binary-Blob aus den Quellcodes der Linux-Treiber verbannen wollen. Hintergrund ist das einige Treiber schon seit recht langer Zeit kleine Fragment binärer Codes enthalten die ähnlich einer Firmware geladen werden. Allerdings standen viele davon unter einem rechtlich ungeklärten Status [1], wobei deren Verwendung stillschweigend von den Hardwareherstellern geduldet wurde.
Weiterlesen »
Aktuelle Kommentare