Ubuntu Logo

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, dass 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.

Stein des Anstoßes

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.

Probleme beim Aufteilen

Ein monolithisches Paket sorgt derzeit dafür, dass jeder das bekommt, was er benötigt – und den ganzen Rest obendrauf. Will man das etwa nach Herstellern oder Komponenten aufteilen, so muss 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, sodass 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, dass Ubuntu hier nicht wieder das Rad neu erfindet, sondern sich dazu entscheidet, von Debian zu lernen.

Teilt den Beitrag, falls ihr mögt

15 Kommentare

  1. Mal eine andere Idee dazu:
    Weshalb nicht für jeden Treiber ein eigenes Paket schnüren?
    Bei der Installation bekäme man dann nur die Treiber aufgespielt, die man auch tatsächlich braucht.
    Eine Hardwareerkennung die das passende Paket vorschlägt wäre hierfür von Nöten, aber das ist nicht sehr aufwendig.
    Es könnte genügen eine schlanke xml Datei von Zeit zu Zeit up-zu-graden um passende Treiber für neue Hardware zugänglich zu machen.

    Wenn Verschlankung das Ziel sein sollte, weshalb dann nicht gleich richtig schlank.

    0
        1. Nicht alles, was hinkt, ist ein Vergleich. KDE oder GNOME kommen ja nicht als monolithische Pakete auf den Rechner. Und wenn du zweimal im Monat sinnloserweise je 800 MB hochladen musst, weißt auch du, was daran schlecht ist.

          9
          1. “Musst” seit wann muss man bei Linux etwas?
            Never change a running System.
            Wenn mein System laeuft, vorallem im Firmenbereich, dann hab ich LTE und der Kernel wechselt fast nicht.
            Server laufen ueber die volle Laenge und ein upgrade erfolgt nur, wenns lt. Release Notes wirklich sinnvoll ist.
            Also ich buegel nicht einfach alles drueber.

            1
                1. Hallo rbb,

                  egal wie groß eine HD auch ist, mit Deiner Sichtweise ist jede HD nach 2Wochen voll (gemüllt).

                  Ich komme mit einer 480GB-HD gut zurecht.
                  Statt Flatpak & Co ziehe ich mir die Normalversion eines Programmes.
                  Ich mag gar nicht daran denken, daß, um beim Beispiel zu bleiben, wenn ich das Gross der Programme per Flatpak & Co auf meinen PC holen würde, wie nicht nur die HD-Kosten in die Höhe schnellen würden, erst recht meine relativ lahme Internetverbindung, hier auf dem Lande, würde die Grätsche machen.

                  Noe, Verschwendung war noch nie eine gute Idee.

                  0
                  1. Hi,
                    das gab’s alles schon mal.
                    Hatte sich nicht bewaehrt, weil man dann den Treiber nachinstallieren musste beim Komponentenwechsel.
                    Das wollten die meisten “neuen” Anwender nicht.

                    Ich komme ja noch aus einer Zeit, wo wir im C Mantel Assembler Code geschrieben haben um Platz zu sparen.
                    Ich kompiliere mein System und alles was da drauf ist immer speziell fuer den Anwendungsbereich.
                    Ich habe kein Linux von der Stange.

                    Wlan, Flatpack, snap gibt es bei mir eh nicht. Auch keine Desktopumgebung nur ein WM.
                    Auch kein systemd.

                    0
                  2. Der Flatpak vergleich hinkt etwas. Klar der 1. download ist groß, wenn man die Runtimes nicht hat. Aber das relativiert sich, wenn man viele Flatpaks Apps nutzt, da sich die Apps die Runtimes untereinander teilen. Ausserdem unterstützt Flatpak Ostree-basierte Delta-Updates. Das spart sehr viel Bandbreite und Zeit bei regelmäßiger Nutzung.

                    0
    1. Mich würde mal interessieren, wo Du die Überflüssigkeit liest?
      Traffic ist gleich Strom. Je mehr Nutzer, desto mehr unnötiger Stromverbrauch.
      Traffic ist gleich Kosten. Je mehr Traffic, desto höhere Kosten.
      Mit Deiner Argumentationsweise bräuchte man auch keine inkrementellen Updates, man kann ja einfach das ganze Programm neu laden

      3
      1. Ist das nich irgendwie an den Haaren herbei gezogen?
        Eine riesen Desktopumgebung staendig mit 3-400 pro upgrade ist ok aber 2 Firmwareupdates nicht nicht?
        Wo gibt es inkrementelle Upgrades?
        Bei HW Wechsel muesstest Du dann ein Firmwareupgrade machen, evtl. selbst wenn du was an den USB Board steckst.
        Das gab’s alles schon mal und es hat nicht wirklich funktioniert.
        Ich glaube das das hinkt ohne Ende, was Du da anbringst.

        0
        1. Was soll an den Haaren herbeigezogen werden? Deins oder meins?
          Du vergißt einiges. Wenn es ein allinone update ist, ziehst Du es jedesmal wenn irgendein nicht relevanter Anbieter etwas ändert. Zweitens ist es kein Argument, wenn bei anderen Dingen viel geladen wird, dann kann man noch mehr laden. Und beim HW Wechsel braucht man es, aber wie oft wechselt Du die?

          Achja, Desktopumgebungupdate, der Hinweis hinkt, denn die Umgebung nutze ich ja, also benötige ich das Update. Und es wird nicht alles neu geladen dabei, sondern nur die relevanten Teile. Eigentlich bestätigst Du mit Deinem Vergleich das, was ich sagte.

          4
          1. Wieso brauchst du eine komplette Destopumgebung, wenn ein WM und das eine oder andere Programm auch reicht?

            Das was die Firma da diskutiert gab’s ja alles schon mal, der Anwender wollte es nur nicht, weil es ihm zu kompliziert war und er sich dann mehr mit dem System auseinandersetzen musste.

            Ich ziehe nicht jedesmal ein Update, ich bestimme selbst was und wann upgedatet wird.

            Eins kannste glauben, vieles was jetzt als neu verkauft wird ist nur aufgewaermt. 😉

            1

Kommentar hinterlassen