Tablet: Kernel 5.6.8+ behebt USB Problem

Wer ein Surface Tablet mit Linux hat, kennt das Problem seit Kernel 5.5.8: Das Typecover konnte man nicht abziehen, weil es nicht wieder erkannt wurde, wenn man es dransteckte.

Tablet: Kernel 5.6.8+ behebt USB Problem

Ein Kernelfix in 5.6.8+ behebt das TypeCoverproblem für Linux, wie ich heute mit 5.6.11 nachweisen konnte:

Damit dürften auch andere, verwandte USB Probleme, die u.a. im Bugtracker von Redhat aufgelaufen sind, endgültig behoben sein: https://bugzilla.redhat.com/show_bug.cgi?id=1813530

Da hatten sich sogar Leute von ArchLinux gemeldet, weil Google das so schnell im RedHat Bugtracker gefunden hatte 🙂

Wie wir diesem Kommentar entnehmen können, scheint „The Big Boss“ nicht ganz unbeteiligt gewesen zu sein:

If I assume that this issue has been appeared on 5.4.23 and fixed on 5.6.8, the candidate related commits are:

  • issue introduced by commit
    torvalds/linux@8099f58
    („USB: hub: Don’t record a connect-change event during reset-resume“)
  • and fixed by commit
    torvalds/linux@9f952e2
    („USB: hub: Fix handling of connect changes during sleep“)

Wenn ich den ersten Commit richtig interpretiere, hatte da wohl beim Abschalten jemand nicht geprüft, ob er wirklich im Sleep war. Wenn man dann natürlich Geräte abzieht und das ignoriert wird, muß man sich nicht wundern, wenn man die dann nicht mehr benutzen kann. Was ich mich aber wirklich frage ist, wieso der Fix soooooo lange gebraucht hat, bis es gefixt wurde. Das ist ja schliesslich nicht nur bei Exotenhardware wie Linux-Surface-Tablets aufgefallen.

Siehe auch: https://github.com/linux-surface/linux-surface/issues/119#issuecomment-628598029

 

Kernel <= 5.5.9 mit USB Bug

Besonders für alle Fans von  Surface Pro Linux-Tablets habe ich eine schlechte Nachricht im Bezug auf den Kernel 5.5.8: einige USB Geräte werden nur beim Booten erkannt, später aber nicht mehr.

Kernel <= 5.5.9 mit USB Bug

Die Liste der betroffenen Geräte dürfte bislang eher übersichtlich sein, da z.B. meine USB Maus oder mein USB Gigabit LAN Adapter  von dem Problem nicht betroffen sind. Über die Ursache ist bislang auch noch nichts bekannt, was aber nicht verwundert, da wir das erst heute Vormittag verifiziert bekommen haben.

Was ist denn überhaupt los?

Wenn man das Gerät mit Kernel 5.5.x bootet, wird das Microsoft eigene TypeCover, das ist die Tastatur und das Mauspad, welches auch als Deckel dient, korrekt als USB Device erkannt und funktioniert entsprechend. Allerdings nur so lange, bis jemand das TypeCover abzieht und wieder dransteckt. Dann funktioniert es nicht mehr.  Dabei ist es egal aus welcher Quelle man den Kernel hat, ob er direkt von Fedora oder selbst gebaut ist.

Wie wirkt sich das aus?

Die Ursache dafür, daß das TypeCover nach dem Einstecken an das Gerät nicht mehr funktioniert ist, daß es überhaupt nie vom USB BUS abgemeldet wurde. Das manifestiert sich darin, daß man mit „lsusb“ das Gerät noch sieht, auch wenn es bereits am anderen Ende der Wohnung liegt. Folglich wir es beim Einstecken nicht initialisiert und kann so seinen Job nicht tun.

Gegenmaßnahmen

Wie schnell so einn Satz wie „Derzeit hilft nur ein Reboot.“ obsolete wird. Der Einsatz von Kernel 5.5.9-200 (Upstreambuild) oder 5.4.19 bzw. jedes anderen 5.4er Kernel ohne Sicherheitslücke löst das Problem auch, weil es da nicht auftritt. Somit wurde auch indirekt bestätigt, daß es nur am Kernelcode liegt und nicht an der Installation oder irgendwelchen UDEV Tricks, die sind bei allen Kernels gleich, weswegen man die aus der Gleichung streichen kann.

Der Nachteil beim 5.4.x Kernel ist allerdings, daß er zu viel Strom verbraucht. Es wurden im Leerlauf 12 W gemessen, wo mit einem für Surface gebaute Kernel nur ~5 W verbraucht werden. Das sich das echt fies auf die Laufzeit auswirkt, dürfte jedem klar sein.

Die derzeit im Test befindliche 5.5.9-100 von Fedora löst das Problem noch NICHT.

Update ( 11:55 Uhr )

Wie das so mit Eilmeldungen ist, der Patch in 5.5.9-2 ist nicht stabil. Ein einem Boot funktioniert USB wieder, im anderen nicht. Ich halte Euch auf dem Laufenden, wenn ich was neues erfahre.

 

Update: Fedora: Probleme mit hwdata und Asus Mainboards

Wie bereits vor zwei Tagen mitgeteilt, gibt es bei Fedora ein Problem mit dem Paket hwdata. Darin sind die PCI Ids der Geräte und Hersteller enthalten. Die Quelle der Daten wird bei Github gepflegt und damit betrifft es nicht nur Fedora, sondern alle Distributionen, die Ihre Daten von dort beziehen.

Die Datei oui.txt (Organisational Unit Ids) verursacht dies, offensichtlich sind dort Kennungen falsch eingetragen  oder verloren gegangen, so das Wechselmedien nicht sauber erkannt werden.

Kuriose an der Sache: Der eingesteckte USB Stick war für Root gemountet und nicht für den angemeldeten User.

Wie eine falsche OUI das auslösen kann, wird derzeit geprüft. Ich meine, da liegt ein ziemlich dicker Bug kurz vor seiner Entdeckung.