Debian-Kernel-Bug legt ARM-Geräte lahm

Debian Swirl

Ein Bugreport in Debians Fehlerdatenbank sollte Besitzer von ARM-Geräten derzeit von einem Upgrade des Kernels abhalten, da dieser eine Reihe von ARM-Geräten am Booten hindert.

Debian-Kernel-Bug

Der Bugreport sieht Kernel 4.9.144-3 als Verursacher des Problems. Dieser war im Rahmen von GNU/Linux Debian 9.8 »Stretch« mit ausgeliefert worden. Wie der Ersteller des Bugreports und weitere betroffene Besitzer von verschiedenen ARM-Geräten schildern, hängen die Geräte beim Hochfahren bei der Meldung Starting kernel.

Schuldiger gefunden

Das es wirklich an dieser Kernel-Version lag, fand der Bugreporter heraus, indem er den aktualisierten Kernel einem Downgrade auf 4.9.130-2 unterzog. Mit diesem vorhergehenden Kernel bootete das Gerät anstandslos.

Viele Boards betroffen

Das erste als betroffen gemeldete Gerät war ein Lamobo-R1-Board. Doch schon bald gesellten sich andere Boards hinzu, die die Liste auf Lemaker Bananapi, Cubox-i4pro, Cubox-i4x4, Wandboard Quad, Odroid-XU4, Odroid-U3, Marvell Armada XP, Olimex OLinuXino-LIME2, Cubietruck, Firefly-RK3288 und den Router Linksys WRT1200AC ausdehnten.

Ein weiterer Betroffener stellte nach Überprüfung fest, dass der inkriminierte Kernel unter vielen anderen Änderungen auch zwei Maßnahmen gegen Spectre beinhaltete. Er baute den Kernel neu und deaktivierte die Maßnahmen, der Kernel startete trotzdem nicht.

Upstream oder Debian?

Die Frage, ob der Fehler im Upstream-Kernel oder in Debians Konfiguration steckt, deutet auf Debian, da Hardware mit Allwinner-SoC auf entsprechenden Boards beim Kernel-CI-Projekt keinerlei Probleme aufweist.

Der gleiche Anwender moniert, dass es bei Debian viel zu kompliziert sei, einen älteren Kernel zu booten. Bei Ubuntu und vielen anderen Distributionen reicht dazu die Auswahl eines älteren Kernel im GRUB-Bootmanager.

Patch im Test

Mittlerweile existiert ein Patch, der den Fehler anscheinend behebt, aber noch in der Testphase steckt. Anwender der betroffenen Boards sollten mit einem Update auf Debian 9.8 noch etwas warten, bis der Bugreport offiziell geschlossen ist und auf einen reparierten Kernel verweist.

Lehrstunde

Zwei Lehren kann Debian aus diesem Kernel-Bug ziehen: Es sollte einfacher sein, einen älteren Kernel zu booten. Zudem müssen Kernel, zumindest für die ARM-Plattform, besser getestet werden, bevor sie freigegeben werden.

Kommentare

3 Antworten zu „Debian-Kernel-Bug legt ARM-Geräte lahm“

  1. Avatar von Bodiro
    Bodiro

    Bezieht sich das komplizierte Booten eines älteren Kernel nur auf die arm-Plattform oder nur auf Debian 9 oder beides? Gerade spaßeshalber einen älteren Kernel unter Debian 10 gebootet per Auswahl im Grub-Menü. Kein Problem.

    1. Avatar von Ferdinand

      Das bezieht sich vermutlich nur auf die ARM-Plattform. Ich habe es nicht selbst getestet, die Vorgehensweise ist ja im Bugreport im Eingangspost angegeben.

  2. Avatar von Timo
    Timo

    Das komplizierte Booten bezieht sich auf die Weise, wie Debian Kernel Updates behandelt. Grundsätzlich kann man auch in Debian in Grub einen älteren Kernel auswählen, sofern noch einer installiert ist. Das Problem bei Debian, im Unterschied zu Ubuntu, ist, dass Debian es i.d.R. vermeidet, das Kernel ABI zu verändern und sich bei einem Update der Name des Kernel-Pakets nicht ändert. Damit wird der Kernel einfach komplett überschrieben und es ist nicht mehr möglich, den vorigen zu booten. Bei Ubuntu hingegen wird der Name des Kernel Pakets mit jedem Update geändert, sodass der vorige Kernel parallel zum neuen erhalten bleibt.

    Das heißt übrigens nicht, dass sich der Name des Kernel Pakets bei Debian nie ändert. Wenn sich ABI Änderungen nicht vermeiden lassen, wird die Versionsnummer im Namen des Pakets hochgezählt. In diesem Fall wird der Kernel dann auch nicht überschrieben. Zuletzt war das in Debian Stable im Herbst der Fall. Wer aber seither sein System neu eingerichtet hat, dessen einziger Kernel wurde mit dem jüngsten Update eben einfach überschrieben. Auch wer nach der letzten ABI-Änderung meinte, er kann den älteren Kernel entfernen, da der (damals) aktuelle Kernel ja funktioniere, steht nun u.U. vor einem Problem.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert