Debian, als eine auf Stabilität und Freie Software-Prinzipien ausgerichtete Linux-Distribution, neigt dazu, sich auf stabile und getestete Softwareversionen zu konzentrieren. Dies schließt auch die Firmware ein. Das Debian-Team setzt auf eine sorgfältige Auswahl von Softwarekomponenten, um eine möglichst zuverlässige und stabile Umgebung zu gewährleisten.
Die Debian-Richtlinien betonen Freie Software, und das bedeutet, dass sie bestrebt sind, nur quelloffene Software ohne proprietäre Elemente zu integrieren. Diese strikte Haltung kann dazu führen, dass Firmware-Versionen, die nicht den Freien-Software-Prinzipien entsprechen, möglicherweise nicht die neuesten proprietären Treiber oder Firmware-Updates enthalten.
Die Priorität von Debian liegt also auf Stabilität, Sicherheit und Freier Software, auch wenn dies bedeutet, dass einige Firmware-Versionen älter sein können. Für Benutzer, die immer die neuesten Funktionen und Treiber benötigen, könnten andere Distributionen mit einem Fokus auf Aktualität besser geeignet sein, jedoch möglicherweise auf Kosten der Stabilität.
Abhilfe schafft hier das Repository of firmware blobs for use with the Linux kernel. Hier finden sich immer recht aktuelle Versionen für eine Vielzahl von Treibern.
Inhalt
Aktuelle Treiber installieren
Um nun die aktuellsten Firmware Dateien zu installieren, lädt man sich entweder das aktuellste TAR Archiv von der oben genannten Webseite herunter, oder klont deren Git Repository:
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
Nach dem entpacken, bzw. klonen des Repository, in das Verzeichnis linux-firmware wechseln:
$ cd linux-firmware
Dort befindet sich das Shell Skript copy-firmware.sh, womit die Firmware installiert werden kann. Bei Debian befindet sich die Firmware unterhalb von /lib/firmware. Diesen Pfad gibt man dem Skript beim Start mit:
$ sudo copy-firmware.sh /lib/firmware
Anschließend werden die Dateien in das entsprechende Verzeichnis übertragen und diverse Symbolische Links erzeugt. Sollte copy-firmware.sh irgendwelche Abhängigkeiten anmerken, so muss man diese vorher ggf. noch installieren. Bei mir fehlte zum Beispiel noch rdfind, was schnell installiert war:
$ sudo apt install rdfind
initramfs neu erzeugen
Bevor der Rechner neu gestartet wird, muss das initramfs neu erzeugt werden. Vergisst man diesen Schritt, ist die Wahrscheinlichkeit hoch, dass es nach einem Neustart verschiedene Devices gar nicht, oder nicht richtig funktionieren:
$ sudo update-initramfs -u -k all
Neustart
Nun kann der Rechner neu gestartet werden:
$ sudo reboot
Der erste Neustart dauert 1-2 Minuten. Und man sieht am Anfang nur einen blinkenden Cursor. Der Rechner ist dann nicht abgestürzt, sondern baut den Treibercache neu auf. Und da nicht nur neuere Versionen installiert wurden, sondern viele weitere zusätzliche Dateien hinzu gekommen sind, dauert bei dem ersten Neustart das ganze etwas länger. Ab dem zweiten Reboot ist dann wieder alles wie vorher, was die Bootzeit angeht.
Fazit
Leider bieten die wenigsten Hersteller eigene Linux Treiber an. Und viele Linux Distributionen liefen oftmals veraltete Treiber mit. Noch problematischer ist, dass viele Treiber überhaupt nicht mit geliefert werden und mühsam zusammen gesucht werden müssen. Und gerade bei Grafikkarten, liefert Debian immer Treiber mit, die sehr alt sind.
Dank solchen Community Projekten gibt es aber einen einfachen Ausweg aus dieser Situation. So kann man recht leicht die Treiber auf einen aktuellen Stand bringen und so auch neuere Hardware problemlos in Debian nutzen.
Quellen:
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
https://de.wikipedia.org/wiki/Initramfs
