Ubuntu diskutiert über Firmware-Split

Firmware in Debian ist in viele einzelne Pakete aufgeteilt, die typischerweise auf bestimmte Hardware oder Gerätefamilien ausgerichtet sind. Dieser modulare Ansatz bedeutet, daß Benutzer im Allgemeinen nur die Firmware-Pakete installieren, die für ihre Hardware relevant sind, und nicht ein einziges, allumfassendes Paket, wie bei Ubuntu.

Ubuntu-Entwickler diskutieren deshalb derzeit darüber, ob das große, monolithische Paket linux-firmware in kleinere, spezialisiertere Unterpakete aufgeteilt werden soll. Diese Diskussion, die von Entwickler Juerg Haefliger begonnen wurde, hat einige Szenarien hervorgebracht, wie eine Aufteilung aussehen könnte. Dabei ist diese Aufgabe weniger trivial, als man annehmen möchte.

Das aktuelle Linux-Firmware-Paket bündelt Firmware für eine Vielzahl von Hardware, von WLAN-Karten über Grafikprozessoren zu Speicher-Controllern und vielem mehr – unabhängig davon, was sich tatsächlich auf dem System des Benutzers befindet. Die meisten Benutzer erhalten Firmware-Blobs, die sie nie verwenden werden, was zu unnötiger Festplattennutzung und Bandbreitenverbrauch bei Aktualisierungen führt. Das Problem besteht besonders für Anwender mit schlechter Anbindung ans Netz oder mit limitiertem Download-Volumen.

Derzeit belegt das Paket linux-firmware bei Ubuntu rund 520 MB auf der Festplatte, Updates können bis zu 800 MB Download-Volumen verbrauchen, auch wenn es im Paket nur minimale Änderungen gab. Dies bringt auch Nachteile für die Infrastruktur von Canonical. Größere Updates bedingen auch hier höhere Bandbreitenkosten, und größere Pakete bedeuten längere Build-Zeiten und somit höhere Energiekosten.

Ein monolithisches Paket sorgt derzeit dafür, daß jeder das bekommt, was er benötigt – und den ganzen Rest obendrauf. Will man das etwa nach Herstellern oder Komponenten aufteilen, so muß man abfragen, was das jeweilige Gerät an Firmware benötigt. Das ist kein Hexenwerk und kann beim Start eines Live-Images oder im Installer passieren. Wenn alle diese Pakete auf dem ISO vorhanden sind, kann der Installer am Ende entscheiden, welche nicht benötigt werden und sie wieder entfernen, wie er es bereits mit ungenutzten Sprachdateien tut. Eine ähnliche Logik wird für den Updater benötigt. Auch das Geflecht von Abhängigkeiten müsste überarbeitet werden.

Ein weniger granularer Ansatz besteht darin, linux-firmware in architekturspezifische Pakete aufzuteilen, sodaß Benutzer von Intel/AMD-Geräten keine ARM- und RISC-V-Firmware erhalten und umgekehrt. Alle andere Firmware würde so bleiben, wie sie ist.

Die Diskussion ist noch in einer frühen Phase, nichts ist entschieden und kein Zeitrahmen gesetzt. Bleibt zu hoffen, daß Ubuntu hier nicht wieder das Rad neu erfindet, sondern sich dazu entscheidet, von Debian zu lernen.