Linux: auf SD-Karten installieren, gut oder schlecht?

Einem kleinen Experiment gleich, habe ich am Samstag Fedora Linux auf einem i3 Surface Tablet auf einer SD-Karte installiert, da der Besitzer seine WIN-Installation nicht direkt zerstören wollte. Das hat an sich auch geklappt. Leider gab es da ein „kleines“ Problem …

Linux auf SD-Karten und USB-Sticks

Bleiben wir erstmal beim Surface, das normalerweise eine SSD, einen USB-Slot und einen SD-Kartenslot aufweist. Die Installation von Linux auf die SSD ist natürlich die favorisierte Installationsmethode. Jetzt kann man Linux aber auch auf die SD-Karte oder einen USB-Stick installieren und wenn man es nur mal ausprobieren will, ist das ein legitimes Vorgehen. Grub hat das Dualboot auch im ersten Versuch sauber hinbekommen, klasse!

Nun hatte der Besitzer des besagten i3 Surface Pro eine Installation auf die SD-Karte gewünscht. Den Hinweis, daß es auf einer SD Karte natürlich nicht so schnell gehen würde, wie auf einer SSD, hat er akzeptiert. Das Gerät verließ unseren LPD Stand dann auch mit einem aktuellen Fedora 29, RPMFusions MPV, Thunderbird und anderen Apps, was man halt so braucht, mit der Auflage Zuhause dann mal ein Update laufen zu lassen, weil das SD-bedingt ewig dauern würde. Natürlich war es am Mittwoch dann nicht aktualisiert, also haben wir das nachgeholt. Das hätten wir besser nicht gemacht 🙁

Das Update war 1 GB groß und der Download der RPMs noch das kleinste Problem. Die Energieeinstellungen von Gnome waren leider so eingestellt, daß das Gerät irgendwann ausgeht. Da das i3 Surface von 2013 vom aktuellen Kernel voll unterstützt wird, hätte das eigentlich kein Problem sein sollen, zumal ja gerade eh ein Update per DNF läuft. Da würde man annehmen, daß das Abschalten des Bildschirms nicht zu Problemen führt, weil ein Updateinhibitor gesetzt wird. Führte es aber!

Es kam wies kommen mußte…

Die Hardware vom Surface wurde offensichtlich nach einer gefühlten Ewigkeit komplett abgeschaltet und als wir das Tablet wieder aktiviert haben, meldeten die RPMs nur noch IO Fehler. Die Root-Partition sprang wegen eines IO Fehler in den Read-Only-Modus und war auch nicht dazu zu bewegen, daß Read-Write wohl die bessere Wahl während eines Updates wäre. Meine Vermutung: Die Hardwareabschaltung hat den SD-Cardreader wohl überrumpelt und der hat den Schreibschutz von der SD-Karte fälschlich als aktiv gemeldet. Da eine Installation auf einem Read-Only Filesystem nicht funktionieren kann, stoppe DNF dann auch irgendwann… so 200 Fehlermeldungen später 🙁

Ich habe das System schon im Nirvana gesehen und beim nötigen Reboot die Augen zugekniffen 🙂 Es bootete doch tatsächlich noch, was bei Update 650 von 1563 nicht wirklich zu erwarten gewesen ist. Nach dem obligatorischen manuellen Filesystemcheck kam Gnome tatsächlich hoch. DNF ist schlau, aber nicht schlau genug. Natürlich war die RPM Datenbank defekt und mußte repariert werden. DNF aktualisierte dann im Rucksack die restlichen Pakete, als der Besitzer per Fahrrad gen Heimat fuhr. Natürlich hatten wir gelernt und den Akku aufgefüllt und die Energiesparoptionen so angepaßt, daß das hoffentlich nicht nochmal passiert.

Der ganze Update wäre in 5 Minuten durch gewesen, wenn Linux auf der SSD installiert gewesen wäre. Der Besitzer sollte dann Zuhause noch dnf reinstall „*“ ausführen, ob das geklappt hat, erfahren wir dann nächsten Mittwoch.

Sind USB-Stick und SD-Karten wirklich eine gute Idee für Linux?

Nach dieser Erfahrung muß ich sagen : Nein, sind sie nicht. Man kann sich nie sicher sein, ob die Hardware das Speichermedium nach einem Sleep/Hibernate wieder sauber anbietet und das „laufende“ System weiter funktioniert. Ein Strom-Aus für den USB-Port oder den SD-Kartenleser kann halt zu Fehlern führen wie man sieht. Im Gegensatz zum IDE/SATA Port des Mainboards sind USB und SD eben nur untergeordnete Peripherie-Geräte. Da wird von den Kernel- und Treiberentwicklern auch nicht soooooo viel Ambition reingeflossen sein, wie in die Hauptgerätetreiber SATA/IDE/SCSI. Wenn dann noch eine eher exotische Hardware wie ein Surface Pro angesprochen wird, kann es zu dem Fehler kommen.

Dazu kommt, daß die SD-Karte echt lahmarschig war. Für die 650 Updates vergingen locker 2 Stunden. Der USB Port wäre vermutlich schneller gewesen, weil der schafft auch 1 Gb/s aka 120 MB/s. Also, wenn Ihr das vorhaben solltet, und ich rate dringend ab, nehmt einen schnellen USB-3-Stick.

Zum Glück hängt der Besitzer nicht soooooo an Win10, nach einer kleinen Datensicherung und Umpartitionierung von Windows, werden wir wohl auch Linux noch auf die SSD quetschen können. Das wird an sich eine spannende Sache, weil… wie wird Win10 auf den Verlust einer geliebten Partition reagieren? Auch das erfahren wir nächste Woche 😉

 

 

Die Gnome Surface Tips

Und es geht weiter mit dem Tablet und seinen Problemchen. Heute zeigen wir einen Fall von Links-weiß-nicht,was-Rechts-tut! Und das es sowas in Computerprogrammen gibt, war lange ein Mythos, aber mit dem räumen wir heute auf. Und wir brauchen nicht mal eine KI dafür bemühen 🙂

Gnome und das Touchpad

Vorweg, das betrifft vermutlich auch die TouchPads von Laptops, daher können die Laptopuser auch gleich mitlesen.

Also, was war passiert? Am Anfang hatte das Touchpad nur eine Linke Taste, d.b Rechts ging nicht. Da kam eine Option in den Gnome-Tastatureinstellungen gerade recht : Die Halten zum Klicken Funktion ….

Gnome Tastatureinstellungen

Überraschenderweise klappte das seit einigen Tagen nicht mehr. Da es um Gnome geht, kommen einem ja nur min. zwei bis drei Möglichkeiten in den Sinn, wie man das verkonfigurieren kann. Da noch kein DCONF-Editor drauf war, schied das schonmal aus. Aber, es ist das Gnome-Tweaktools installiert worden und jede Menge Gnome-Extentions, da sollte man mal nachsehen 🙂

Und ohne es in die Länge zu ziehen, das war aktiviert :

und SO hätte es eigentlich sein müssen :

Damit verhält sich zwar der Mauszeiger nicht mehr wie das zuerst erwartet war: Anklicken-Halten-Rechtsklick simulieren. Dafür aber kann man jetzt mit dem Touchpad endlich wieder so arbeiten, wie man das mit einer Maus gewohnt ist. Vorausgesetzt, das TypeCover ist angeschlossen.

Das Surface Pro im Rechenzentrum nutzen

Fedora: Upgrade von 29 auf 30 (Beta) mit Problemen

Von Updates des Systems via DNF auf die F30 Beta von Fedora sollte man derzeit Abstand nehmen.

Wie man in der Developerliste nachlesen kann, gibt es derzeit einige Blocker bei libdnf, systemd & GDM:

  1. libdnf – F29 to F30+ upgrades fail unless –allowerasing is used due to issue with module_platform_id, even explicit –setopt=module_platform_id does not work
  2. createrepo_c is marked as fixing this in F30, but it’s not clear if an update is also needed for the F29 package.
  3. systemd – gdm Fails to load with „nomodeset“
    SystemD has been backported a fix but does not appear to address the issue for all scenarios (only UEFI VM works. UEFI bare metal and BIOS for VM and metal still exhibit the issue). Further investigation is required.

Und dann hätten wir noch die Probleme, die noch nicht akzeptiert sind:

grub2 – grub2-common kernel.d plugin removes $ESP// directory rendering machine unbootable

Es ist schwerlich vorstellbar, damit ein System zu updaten, wenn es danach nicht mehr bootet. Wie der Bug noch nicht als Bug akzeptiert werden konnte, ist mir ein Rätsel 😉

Also Leute, nicht gleich auf die Beta stürzen, aber falls doch, hab Euch gewarnt 🙂

Links:

https://bugzilla.redhat.com/show_bug.cgi?id=1683197
https://bugzilla.redhat.com/show_bug.cgi?id=1656509
https://bodhi.fedoraproject.org/updates/FEDORA-2019-bc9607a8dc
https://bugzilla.redhat.com/show_bug.cgi?id=1648907

Teamviewer 13 funtzt unter Wayland nicht sauber

Wie wir in empirischen Tests gerade nachweisen konnten, funktioniert Teamviewer 13 nicht mehr mit Wayland. Man kann zwar noch von Linux aus auf Windows zugreifen, aber auf ein Linux mit Wayland ist nicht mehr möglich. Man bekommt in dem Fall nur ein schwarzes Bild.

„Nutzen Sie X.ORG“

Teamviewer empfiehlt daher in einer langen Verkettung von Erklärungen, daß man doch die Desktopsession auf X.org umstellen sollte, also den alten X-Server. Klappt leider auch nicht 🙁 Genauso ein schwarzes Bild, wie unter Wayland.

Dabei beweist z.B. der SimpleScreenRecorder, daß es möglich ist, auch unter Wayland alles zu capturen, was man sich so vorstellen kann.Warum der Teamviewer das nicht kann, können wir hier leider nicht herausfinden.

Bleibt nur zu hoffen, daß es entweder eine bessere Lösung gibt, zumal das ja sowieso bedenklich ist, eine Session mit Audio/Video/Tastatur über die Teamviewerserver zu schicken, oder das Problem bald gelöst wird.

Workaround

Die praktische Antwort auf das Problem lautet dann natürlich auf VNC zurück zu fallen. Dafür muß im Router z.B. der Fritz!box ein Portforwarding eingerichtet werden. Im Screenshot ist ein Beispiel für GlusterFS und SSH abgebildet:

Symbolbeispiel für Portfreigaben auf der Fritzbox

Symbolbeispiel für Portfreigaben auf der Fritzbox

Für VNC muß man i.d.R. Port 5800-5910 freigeben und zum heimischen PC umleiten. Vorteil dabei ist, daß man jeden Port auf einen anderen Rechner leiten kann, so daß der Admin aus der Ferne festlegen kann zu welchen Desktoprechner er will.

VNC != VNC

VNC kann aber auch ein Problem in sich sein. So lange nur ein Adminuser auf den PC soll, ist das kein Problem, weil VNC heute meist so eingestellt ist, daß es eine eigene Desktopsession aufmacht. Wenn man sich dort einloggt, kann es vorkommen, daß z.B. Pulseaudio einen Abgang macht, weil es irrtümlich doppelt gestartet wird.

Was man also im VNC braucht, ist eine Shared Session, so daß man sieht, was auf dem physischen Bildschirm zu lesen ist:

x0vncserver -display :1 -SecurityTypes=none

aber der Befehl erlaubt jedem sofort ohne Passwort auf den Schirm zu connecten, was man natürlich NICHT will.

mit „vncpasswd“ kann man ein Zugangspasswort vergeben und dem Server so starten:

x0vncserver -display :1 -SecurityTypes=TLSVnc,VncAuth,TLSPlain -PasswordFile=.vnc/passwd

Und nicht vergessen, VNC braucht zum Desktop Sharing X.ORG 😉 Das will unter Wayland vermutlich aus dem gleichen Grund nicht, wie Teamviewer auch nicht wollte.

 

Signieren von npm Paketen

Zur Einleitung eine kleine Geschichte zu einem Projekt, daß ich mit einem unserer Kunden umgesetzt habe. Da das Projekt mangels Benutzer jüngst eingestellt wurde, ist wohl die Floskel „Es war einmal…“ angebracht 🙂

Die Geschichte von Lord Uglify

Also.. Es war einmal .. ein tolles webbasiertes Firmenspiel für das jede Menge Javascriptcode erzeugt wurde, weil es ja im Browser zu spielen war. Nun sollte das ellenlange Javascript eingedampft werden mit „Uglify“ einem node.js Tool zum Schrumpfen und Verschleiern von Javascriptcode.

Nun sollte jemand Uglify irgendwo installieren und es dafür benutzen. Das war der erste Fehler. Nachdem Node.Js aus dem Repository installiert wurde, tat es natürlich nichts sinnvolles, denn Uglify hat wie so viele andere Node.js Programme, einen Abhängkeitsbaum, der milde betrachtet, bis zum Mond reicht. Mit NPM, dem Node.Js Paketmanager, kann man die Abhängkeiten befriedigen, glaubten wir zumindest. Das war Fehler Nummer 2. Denn die Abhängigkeiten von den Abhängigkeiten der Abhängigkeiten von den Abhängigkeiten der Abhängigkeiten von den Abhängigkeiten die keine Ende nehmen wollten, brauchten geschlagene 30 Minuten sich zu installieren. Na gut, jetzt wird es ja wohl endlich starten. Das war der dritte Fehler.. allerdings dann auch der letzte, weil ich keinen Bock mehr hatte mich von so einem Witzprogramm verarschen zu lassen.

Ich habe dann einfach „jsmin“ genommen: klein,schnell,effektiv,läuft überall, keine Abhängigkeiten und einfachst zu bedienen. Kurzum, ein Programm wies sein sollte.

Was hat das jetzt mit dem Signieren von Paketen zu tun ?

Tja, wie man oben lesen kann, sind Node.js Programm extrem modularisiert, sprich, mal eben selbst was schreiben ist praktisch nicht, weil man erst mal jede Menge an Paketen installieren muß. Im Gegensatz zu Java, wo eine Fülle von Klassen mitgeliefert werden, kommen die Pakete per NPM ins Projekt rein.

Diese Pakete sind nicht signiert, die von Java zwar auch nicht, aber die kommen ja auch aus einer definierten Quelle gleich mit. Signieren ist im NPM auch nicht vorgesehen. Daher hat jemand in Australien ( Details bei Heise ) gemeint, er müßte das ändern und hat ein Signaturtool für Node.js Pakete gebaut.

Die Begründung war, das neulich diverse Pakete aus dem NPM Repo auf merkwürdige Art verschwunden sind, zwischenzeitlich durch gleichnamige Pakete ersetzt wurden, um dann funktional mit den früheren Paket  zu kollidieren, sprich, was anderes zu machen, als das Original.

Da jeder Pakete in das NPM Repo laden kann, würde das Signieren also den Prozess mit den Paket-Abhängigkeiten sicherer machen, weil wenn sich so ein Vorgang wie eben beschrieben passiert, würde ja die Signatur nicht mehr passen und dem Entwickler würde dann auffallen, daß da gerade was schief läuft. Nun, das mag sein.

Das eigentliche Problem

Das eigentliche Problem löst das natürlich nicht: 100 Abhängigkeiten im Projekt, und den von den Entwicklern hat noch nie einer gehört. Ob die da Schadcode einbauen oder nicht, kann man nicht an der Tatsache einer gültigen Signatur erkennen.
Alles was dieses Signaturen bieten, ist ein Verwechslungsschutz, das aber auch nur, wenn der lange verschollene Author doch nochmal gefunden wird 🙂

Ich halte das für nichts, was man an die große Glocke hängen sollte, denn das hier kann man damit nicht vermeiden:

https://hackernoon.com/im-harvesting-credit-card-numbers-and-passwords-from-your-site-here-s-how-9a8cb347c5b5

Es lohnt sich bis zum Ende zu lesen, weil Ihr sonst einen falschen Eindruck von der Sache bekommt. Wenn Ihr damit fertig sein, hier ein Zitat von „blog.fefe.org“ unser aller Weltverschwörungsguru 😉 passend zum Thema :

[l] Ein Einsender kommentiert die Webfrontend-Warnung:

  • lass‘ uns als kleine Veranschaulichung, wie breit und tief die Güllegrube npm sein kann, eine Webanwendung anfangen. Natürlich mit Angular und dem aktuellen Standard-Build-System @angular/cli:

    $ npm i @angular/cli
    $ node_modules/.bin/ng new webkid --directory=.

    Das Ergebnis ist ein Skeleton mit einer Hello-World-Seite und:
    31 direkten Abhängigkeiten
    974 Abhängigkeiten insgesamt
    305 MB in node_modules

    Davon sind 158 Pakete Duplikate von bereits installierten Paketen mit einer anderen Versionsnummer. Bei so vielen Abhängigkeiten ändern sich die Zahlen natürlich schnell, also am besten sofort anfangen mit dem Audit!“

    “ [Ende des Zitats]  Aufgrund der Struktur von Fefes Webseite, müßt Ihr selbst den „Wed Jan 10 2018“ suchen 😉

 

Dem Kommentar kann man sich nur anschließen. Keine Signatur der Welt macht das irgendwie sicherer!

Davon ab, keine Ahnung wie jemand auf die Idee kommt, dafür zu Entwickeln. Da braucht man ja Stunden um anzufangen. Leute nehmt was vernünftiges, nehmt Java. Eclipse auf. Neues Javaprojekt aufmachen und einfach losschreiben 😉

Java kommt übrigens leer mit knapp 105 MBye aus 😉 und das wäre dann auch für alle Projekte und nicht PRO Projekt 😀

Quelle: heise.de – Open Source Tool zum Signieren von npm Paketen veroeffentlicht