Surface: TypeCover defekt :(

Gebrauchte Geräte sind so ein Ding, kann gut gehen, muß aber nicht. Deutlich zu niedrige Preise bei Ebay sind auch so ein Ding, kann ok sein, könnte aber auch Fake oder geklaut sein. Um das alles mit einem Linux Tablet zu verbinden, drehen wir die Zeit nochmal 7 Monate zurück….

Ein gebrauchtes Surface Pro 4

Aufgrund der Neukosten und Verfügbarkeit, ersteigerte ich im Guerillaverfahren im Februar ein gebrauchtes Surface Pro 4 auf Ebay. Ihr kennt die Geschichte ja. Im Juni setzte für einen Tag der Lüfter aus, weswegen es zu dem Geflimmer kam:  „Das wars dann mit dem Linux Tablet 🙁

Vor ein paar Wochen, ging plötzlich die Tastatur aus und ich meine aus, weil die Lichter der Tastaturbeleuchtung das deutlich zeigten. Ich hab erst gedacht, daß der USB-Hub nicht mehr will, und die Tastatur abgezogen und dann wieder dran gesteckt, was auch für wenige Minuten geholfen hat, bis die wieder ausgefallen ist. An dem Tag ging da nichts mehr, was komisch war.

Einen Tag später aka. zu Hause, ging die Tastatur dann wieder anstandslos! Technik halt. Ab und zu gabs mal einen kurzen Ausfall, aber ein Muster lies sich nicht ableiten. Um Kontaktschwierigkeiten auszuschliessen, wurden die Kontakte und Pins kurz geschliffen. Es änderte sich nichts. Egal wie man es knickte und kickte, es gab einfach keinen gezielten Ausfall. Damit war die Sache erstmal erledigt, weil Abziehen und wieder dranhängen half … bis Vorgestern. Da war Schluss. Ende, aus, tod.

Ihr erinnert Euch, ich hatte ein englisches Typecover mitbekommen, da fehlt die Taste mit dem „|“ Pipezeichen, was bei Linux ein echtes Problem bedeutet. Also habe ich mir bei Ebay ein gebrauchtes deutsches Typecover zugelegt. 12 Monate Garantie und unter 24h angekommen. Super.

Fazit

Bei Ebay gebraucht kaufen, kann durchaus klappen 🙂

Für Surface Pro Besitzer kann ich nur empfehlen, sich einen anderen Besitzer zu suchen und einfach mal die Typecovers umzuhängen. Geht es an beiden Geräten nicht, ist das TypeCover hin. Da die auch gebraucht nicht billig sind, da bekommt man einen schnellen Ryzen 1500 für, lohnt sich der Gang zum Surface Kollegen immer, egal ob der Windows oder Linux fährt.

Caribou durch Onboard ersetzen

 

Grubby: wie man wieder einen Default Kernel setzen kann

Ihr habt ein Kernel Update eingespielt bekommen, aber der Default-Kernel ist immer noch der „alte“ Kernel? Willkommen in der digitalen Steinzeit der Grubby Bugs.

Wie man einen Default Kernel setzen kann

Per Mail erreichte mich eine Anfrage zu Grubby, das ist das kleine Tool, das sich um die Grub Booteinträge kümmert. In der Anfrage ging ein Kernel-Update schief und der Default Kernel lies sich nicht setzen. Die Ursache liegt in einem „Steinzeit“-Fehler: Der Grubenv Block ist wie in Stein gemeiselt genau 1024 Bytes lang, egal was sinnvolles drin steht 🙂

Jetzt ist der Bug an sich nichts neues, da reden der Redhat Support, die Fedora Maintainer und die Grubby Devs gefühlt schon eine Ewigkeit drüber. In etlichen Bugreports gibt es einen gemeinsamen Nenner: Grubby und nicht 1024 Bytes große grubenv Dateien 🙂

Wenn man jetzt versucht einen Default-Kernel zu setzen, kann man Opfer dieses Bugs werden und keiner sagt es einem, außer der schon gehässigen Regelmäßigkeit, mit der der alte Kernel gebootet wird. Beispiel:

[root@eve]# grubby --default-kernel
/boot/vmlinuz-5.2.7-100.fc29.x86_64
[root@eve]# grubby --set-default=/boot/vmlinuz-5.2.11-100.fc29.x86_64
[root@eve]# grubby --default-kernel
/boot/vmlinuz-5.2.7-100.fc29.x86_64
[root@eve]# cat /boot/grub2/grubenv
# GRUB Environment Block
saved_entry=Fedora (5.2.7-100.fc29.x86_64) 29 (Twenty Nine)
"

[root@eve#

Die Methode mit der man den Kernel als Default setzen will, spielt dabei keine Rolle:

[root@eve]# grubby --set-default-index=0
grub2-editenv: Fehler: Environment-Block ist zu klein.

Aber immerhin gibt es hier den Hinweis, der Block ist zu klein? Wie kann das sein, da steht doch min. der ALTE Kernel auch drin, wie kann der sich nur durch eine Nummer unterscheidene neue Kernel da nicht auch reinpassen?

Weil da wer von Hand rumgefummelt hatte …

Ja, ich gebs zu, ich habe mal irgendwann den Kernel von Hand da eingetragen, aber das war noch zu 4.20er Zeiten und seit dem gings doch auch, sonst wärs ja nicht 5.2.7 geworden. Die mögliche Antwort ist wenig schmeichelhaft: Grubby ist nicht ganz deterministisch veranlagt in letzter Zeit. Ich erwähnte ja, daß sich die Devs und Maintainer schon länger damit rumquälen, mal gehts, mal gehts nicht mehr. Die Bugreporter sind entsprechend genervt. Die Codebasis von Grubby will ich wohl besser nicht sehen.

Egal, eine Lösung muß her

Also, Ursache ist, daß Grubby nur dann das File erzeugt, wenn es GENAU 1024 Bytes lang ist. Keine Ahnung wieso und ich will es auch nicht wissen…. doch will ich, aber werde ich wohl trotzdem nie erfahren.

Sofern nichts außer dem Kernel in dem grubenv File steht, ist der Fix besonders einfach:

wahlweise mit EFI oder ohne :

rm -f /boot/grub2/grubenv
rm -f /boot/efi/EFI/fedora/grubenv

und dann den Block neu erzeugen lassen:

grubby –set-default-index=0

Fixed. Kniffliger wird es, wenn da noch andere Variablen drinstehen, denn dann dürft Ihr ungelogen mit einem Texteditor die Datei auf genau die 1024 Bytes trimmen/padden und dann abspeichern. Danach sollte grubby auch wieder den Default-Kernel da rein schreiben können.

Achtung:

ggf. sind /boot/grub2/grubenv und /boot/efi/EFI/fedora/grubenv  durch einen Symlink verbunden, schaut Euch das bitte vorher von Hand an, bevor Ihr Euch in Sicherheit wiegt. Es ist Eure Bootconfiguration, also lasst Vorsicht walten 😉 Bei Fragen, welche Datei zuständig ist, wendet Euch an die örtliche LUG, die freuen sich über Zulauf 🙂

Linux – Cannot find device „tun0“

Ihr wollt z.B. mit SSH ein VPN und dazu einen Tunnel aufbauen, könnt aber nicht, weil Ihr diese Fehlermeldung bekommt: Cannot find device „tun0“ ? Ja, na dann auf ins neue Netstackventure!

Tunneldevice mit Linux nutzen

Ihr erinnert Euch noch an den Artikel: SSH VPN mit den iproute2 Tools ? Da haben wir ein SSH VPN aus dem Hut gezaubert und mußten dazu mit Tunneln arbeiten. Da hat sich einiges getan, deswegen müssen wir uns leider erneut damit befassen.

Schritt 1 und 2 sind klar, ein TUN Modul laden und Device erzeugen, aber was ist das…?? :

[root@backup ~]# modprobe tun
[root@backup ~]# ip link set tun0 up;
Cannot find device "tun0"

Cannot find device „tun0““ ist ein echter Kopfschmerzenerzeuger, weil so unnötig. Also das Modul „tun“ ist wie der Name nahelegt, für Tunneldevices zuständig. Es sollte eigentlich ein Tunneldevice tun0 erzeugen, tuts aber nicht und mit normalen Fedora Bordmitteln ist das auch nicht so einfach machbar.

Ihr braucht das Paket „tunctl“ ( dnf install tunctl ) und müßt Euch erstmal ein tundevice bauen:

tunctl -t tun0

Wie man sieht, ist das nicht schwer. Jetzt, wo das Gerät persistent gemacht wurde, seht Ihr an der Ausgabe von dem Befehl oben, klappt das dann auch mit dem „ip link set tun0 up“ und Ihr könnt der Anleitung aus SSH VPN mit den iproute2 Tools weiter folgen. Ihr müßt nur dran denken, daß Ihr das auch bei Euch auf dem Client PC macht und nicht nur auf dem Server.

Eine Bewertung, wieso das nicht mehr defaultmäßig bei Fedora dabei ist, verkneif ich mir, es wird merkwürdige Gründe haben 🙂