Case-Modding-Projekt: Wie packe ich einen modernen PC in ein SGI Indigo2-Gehäuse?

Vor ein paar Jahren war ich im Besitz zweier SGI Indigo2:

  • Einer „Teal“-Indigo2, welche ich von einer XZ-Grafik auf eine Impact-Grafik umgebaut hatte. Diese hatte eine MIPS 4400-250MHz CPU und 256MB RAM.
  • Eine „Purple“-Indigo2 mit einer MIPS R10000-175MHz CPU, 384MB RAM und einer High-Impact-Grafikkarte.

Aus Mangel an Zeit und Platz lagen die beiden Indigos gut verpackt im elterlichen Keller. Leider wurde dieser ein Opfer der Aufräumwut meiner Mutter und beide Indigos landeten ohne Rückfragen auf der Wertstoffdeponie.

Vor ein paar Monaten bin ich dann bei eBay-Kleinanzeigen auf eine „Purple“-Indigo2 gestoßen. Diese war laut Verkäufer seit 20 Jahren nicht mehr im Einsatz und er konnte keine Funktionsgarantie geben, aber 100€ war mir der Spaß und das Risiko wert.

Leider gab die Indigo2 beim Funktionstest keinen Laut von sich. Die Lüfter drehten sich nicht und die LEDs bleiben auch tot. Wahrscheinlich waren einige Elektrolytkondensatoren im Netzteil über die Jahre ausgetrocknet. Ich habe mich natürlich sofort auf die Suche nach einem Ersatznetzteil gemacht, aber alle Quellen schienen ausgetrocknet zu sein bzw. es wurden Preise für ein Ersatznetzteil verlangt, die jenseits von Gut und Böse sind (200€ aufwärts). Auch der Umbau eines modernen ATX-Netzteils war keine Option, da sich dieses massiv von dem Originalnetzteil unterscheidet und ich mir den Umbau ohne externe Hilfe nicht zugetraut habe. Da ich aber nicht sicher sein konnte, ob nur das Netzteil betroffen ist, habe ich mich gegen eine Instandsetzung des Rechners entschieden und für den Umbau des Gehäuses entschieden, so dass ein normales mATX-Mainboard und ein modernes Netzteil hineinpassen, (SGI-Fans mögen mir das Sakrileg entschuldigen).

„Case-Modding-Projekt: Wie packe ich einen modernen PC in ein SGI Indigo2-Gehäuse?“ weiterlesen

AusweisApp2 unter Debian 10

Heute hatte mich ein Benutzer angeschrieben und mich nach einer Fehlermeldung des Snap-Pakets von AusweisApp2 unter Debian 10 gefragt. Dabei poppt eine Dialogbox auf und sagt, dass Port scbon 24727 belegt sei.

Diese Meldung erscheint aus folgendem Grund:

Das Paket „snapd“ aus Debian 10 ist zu alt. Es ist noch auf dem Versionsstand 2.37 während unter Ubuntu die Version 2.44 aktuell ist. Leider gibt es keinen Backport von „snapd“ für Debian 10, aber man kann sich aber auf anderem Weg helfen:

Man installiert einfach die das Snap-Paket „snapd“:

snap install snapd

Falls es eine Fehlermeldung geben sollte, muss noch das Paket „core“ installiert werden:

snap install core

Danach loggt man seinen Benutzer kurz aus und wieder ein und die Fehlermeldung ist verschwunden.

Snap von AusweisApp2 unter Fedora 30

Heute hatte mich Andreas angeschrieben, weil unter Fedora 30 die AusweisApp2 keinen Treiber für den Kartenleser finden konnte. Das ist immer ein Anzeichen dafür, dass irgendetwas mit dem PCSC-Daemon nicht stimmt.

Das Problem lässt sich zum Glück relativ einfach auf zwei Arten lösen. Die einfache Variante deaktiviert SELinux bzw. setzt es auf den reinen Logging-Modus, die zweite setzt die korrekten Policies für SELinux.

SELinux deaktivieren

Diese Variante wird nicht unbedingt empfohlen. Es ist aber die einfachere und schnellere Lösung. Man muss dazu nur die Datei „/etc/sysconfig/selinux“ öffnen und den Parameter „SELINUX“ auf „permissive“ setzen. Nach einem Neustart funktioniert der Card-Daemon wie gewollt.

Policy für SELinux anlegen

Für diese Methode ist es notwendig, dass das Snap von AusweisApp2 installiert ist. Die beiden folgenden Befehle müssen als „root“ ausgeführt werden:

ausearch -c 'snap' | audit2allow -M snap.ausweisapp2-ce
semodule -i snap.ausweisapp2-ce.pp

Danach muss man den Rechner neu starten.

Kurztipp: Alte Snap-Revisionen deinstallieren

Snap hat die Eigenschaft, dass es standardmäßig drei Revisionen eines Pakets vorhält. Der Vorteil ist, dass man dadurch sehr schnell auf eine ältere Version eines Programms zurückwechseln kann, falls eine neue Version Probleme machen sollte. Der Nachteil ist, dass jede Revision Plattenplatz benötigt. Die Deinstallation ist kein großer Aufwand, bei vielen Snaps ist es aber relativ viel Tipparbeit. Deshalb hier mal ein Einzeiler, welcher alle alten Revisionen in einem Rutsch deinstalliert:

snap list --all | grep deaktiviert | awk '{system("sudo snap remove " $1 " --revision " $3)}'

Wer eine andere Systemsprache als Deutsch benutzt, muss den Begriff „deaktiviert“ entsprechend anpassen.

Warum ich Pakete für den Snap-Store bereitstelle

Neben der AusweisApp2 habe ich mit PyMOL eine weitere Anwendung für den Snap-Store paketiert.

Was ist PyMOL?

PyMOL ist ein 3D-Viewer und Editor für Proteine und im Bereich der Protoemik eine Standardanwendung. Nahezu alle Bilder, welche die Struktur von Proteinen zeigen, wurden mit Hilfe von PyMOL erstellt. Ein Beispiel sieht man hier:

PDB 1ABI: Thrombin (Grüne und rote Oberflächen) mit Hirudin („Stick“-Darstellung) gerendert mit PyMOL (Eigene Arbeit).

Ein Problem der Software ist, dass sie in zwei Versionen vertrieben wird:

Eine kommerzielle Version mit Support und eine freie Version (MIT-Lizenz). Letztere enthält etwas weniger Features (z.B. kein Antialiasing in der OpenGL-Darstellung), für die meisten Benutzer ist diese aber vollkommen ausreichend. Die freie Version dürfte von den meisten Benutzern verwendet werden, da die günstigste Lizenz der kommerziellen Version $99 pro Jahr kostet.

Die kommerzielle Version wird mit einer kompletten Python-3.7-Umgebung ausgeliefert (Conda), die freie Version ist in vielen Distributionen verfügbar. Leider liefern gerade die LTS-Distributionen nur die Version 1.8 oder noch ältere Versionen aus. Als Anwender hat man also nur die Möglichkeit die kommerzielle Version einzusetzen oder das Programm aus dem Quellcode selbst zu bauen.

PyMOL selbst ist eine Mischung aus Python -und C++-Code. Die Oberfläche ist dabei in Python (PyQT, früher Tcl/Tk) realisiert, der grundlegende Code in C++. Die Anzahl der Abhängigkeiten ist zwar relativ klein, aber in dem Umfeld wo das Programm üblicherweise eingesetzt wird, finden sich nur sehr wenige versierte Linux-Benutzer, welche einfach so mal ein Programm kompilieren können. Vor allem, weil PyMOL ein externes Python-Modul und eine externe C++-Headerdatei benötigt, welche jeweils händisch installiert werden müssen.

„Warum ich Pakete für den Snap-Store bereitstelle“ weiterlesen

AusweisApp2 als Snap #3

Ich habe eine neue Version des Snap-Pakets veröffentlicht. Dieses beinhaltet das Treiberpaket von „Reiner SCT“ für den PC/SC-lite Daemon.

Dadurch unterstützt der Daemon z.B. den „Reiner SCT cyberJack RFID standard. Dessen Treiber wurde im CCID-Treiber 1.4.30 auf Bitte von „Reiner SCT“ deaktiviert.

Das Update wird von „snap“ automatisch durchgeführt. Man kann es auch per „snap refresh ausweisapp2-ce“ anstoßen.

AusweisApp2 als Snap #2 (Update 06.04.19)

Nach Wochen der Bastelei habe ich es endlich geschafft ein Snap-Paket für die AusweisApp2 zu bauen, welches auch mit dem Confinement funktioniert. Die einzige Einschränkung, die aktuell noch existiert, ist das man nach der Installation einmalig die benötigten Interfaces des Snap-Pakets „connecten“ muss. Danach funktioniert die Anwendung ohne weitere Einschränkungen:

sudo snap install ausweisapp2-ce
sudo snap connect ausweisapp2-ce:raw-usb :raw-usb
sudo snap connect ausweisapp2-ce:hardware-observe :hardware-observe
sudo snap connect ausweisapp2-ce:network-manager :network-manager
sudo snap connect ausweisapp2-ce:network-observe :network-observe
sudo systemctl restart snap.ausweisapp2-ce.pcscd.service

Letzterer Befehl ist notwendig, damit der Card-Daemon noch vor dem ersten Start der Anwendung die passenden Rechte besitzt.

Ich habe im Snap-Store einen Request zum Auto-Connecten gestellt. Falls dieser genehmigt wird, kann man die Anwendung auch ohne explizites „connecten“ installieren.

Update

Ich habe gestern (05.04.19) die Freigabe des Stores für das automatische „connecten“ der benötigten Interfaces erhalten. Es reicht jetzt also aus das Snap zu installieren. Es sind keine weiteren Schritte notwendig.

AusweisApp2 als Snap (Update 25.01.19)

Da ich im Moment Urlaub und viel Zeit habe, habe ich mich mal daran gemacht ein Projekt zu vollenden, welches ich schon seit ein paar Monaten in die Augen gefasst habe:

Das Paketieren der AusweisApp2.

Falls jemand nicht weiß, wozu dieses Programm dient, hier mal der Link zum passenden Wikipedia-Artikel:

https://de.wikipedia.org/wiki/AusweisApp2

Offiziell unterstützen die Entwickler Linux nicht, dadurch dass der Quellcode aber unter Github und unter einer freien Lizenz verfügbar ist, kann man wenigstens den Versuch wagen das Programm unter Linux zum Laufen zu bekommen.

„AusweisApp2 als Snap (Update 25.01.19)“ weiterlesen

Eine Lanze für moderne Computer brechen

Retrocomputing ist in. Wer, wie ich, seine ersten Erfahrungen mit Computern in den 80er Jahren gemacht hat, ist für dieses Thema besonders empfänglich. Dabei ist der Blick zurück häufig ziemlich verklärt und die alte Zeit wird als die bessere angesehen. Dabei wird übersehen, dass früher nicht alles eitel Sonnenschein war.
Der folgende Artikel bezieht sich allein auf meine Erfahrungen, welche sehr stark von Heimcomputern und PCs mit MS-DOS geprägt wurden und weniger von Konsolen. Ich habe exemplarisch das Jahr 1992 als Grundlage des Artikels genommen, wobei ich auch spätere Jahre (bis ca. 1997) anspreche um bestimmte Sachverhalte zu verdeutlichen.


Kurze Biographie meinerseits:
Jahrgang 1977. Der erste C64 irgendwann im Jahr 1988. Im Oktober 1990 folgte ein Atari ST mit 1 MB RAM, im Mai 1992 dann ein PC (AMD 386SX25 CPU, 1 MB RAM und 40 MB HDD).

Warum ausgerechnet 1992? Weil ich in diesem Jahr meinen ersten PC gekauft habe und zusätzlich weil zu diesem Zeitpunkt der Computermarkt noch sehr viel heterogener war als heute. Neben den PCs waren noch sehr häufig Heimcomputer (Amiga, Atari ST oder C64) im Einsatz und viele Spiele und Programme wurden noch für mehrere Plattformen entwickelt. Zudem war der Leistungsunterschied zwischen den PCs und den Heimcomputern noch nicht so groß, obwohl Letztere mit der breiten Verfügbarkeit von 386er CPUs und VGA-Grafikkarten ins Hintertreffen gerieten.

Hier mal einige Punkte, welche meine Sicht auf die damalige Hardware und Software aufzeigen soll:

„Eine Lanze für moderne Computer brechen“ weiterlesen

Kleines Downloadskript für Mainline-Kernel

Da ich wegen meines Notebooks immer eine aktuelle stabile Vanilla-Version von Linux einsetze, habe ich mir in der Vergangenheit angewöhnt regelmäßig bei „www.kernel.org“ nachzuschauen, welches gerade die aktuellste stabile Linux-Version ist. Danach führte der Weg immer zum Mainline-PPA“ um dort dann die die Debian-Pakete des Kernels herunterzuladen. Diese sind in der Regel kurz nach der Freigabe einer neuen Version verfügbar. Da ich ein bequemer Mensch bin und mir vor allem das händische Herunterladen irgendwann auf den Geist ging, habe ich ein kleines Skript geschrieben, welches diese Schritte automatisiert:

Das Skript schaut auf der Kernel-Webseite nach, welches die aktuellste stabile Version ist und lädt dann aus dem Mainline-PPA die passenden Dateien für den eingesetzten CPU-Typ herunter. Das Skript hat noch drei Parameter, welche für alle selbsterklärend sind, die schon einmal einen Kernel aus dem Mainline-PPA heruntergeladen haben. Das Skript prüft selbstständig ob die CPU und der Kerneltyp zusammenpassen (z.B. macht es keinen Sinn zu versuchen einen „i386“-Kernel vom Typ „snapdragon“ herunterzuladen. Letzteren gibt es nur für den CPU-Typ „arm64“) und lässt nur den Download einer verfügbaren Kombination zu.

Das Skript ist in Python3 geschrieben und benötigt ein zusätzliches Python-Modul, welches aber in allen noch unterstützten Ubuntu und Debian-Versionen vorhanden ist:

sudo apt install python3-lxml

Das Skript habe ich auf Github gehostet: https://github.com/glasen/download_kernel

Direkter Download des Skripts: download_kernel.py