Aus Raspberry Pi Geek 10/2018

x86-Programme auf dem RasPi ausführen (Seite 2)

Benötigen Sie Zugriff auf das komplette Wirtssystem, hängen Sie die ursprüngliche Root-Partition einfach noch einmal vollständig ein (Listing 3). Danach sieht das Gastsystem unterhalb von /wirt das komplette Dateisystems des Hosts – inwieweit das sinnvoll ist, sei einmal dahingestellt.

Listing 3

 

$ sudo mkdir /opt/exagear/images/debian-8/wirt
$ sudo mount /dev/mmcblk0p2 /opt/exagear/images/debian-8/wirt

Der Befehl dpkg -l zeigt die wenigen installierten Pakete des frugalen Exagear-Debians. Die Nachinstallation weiterer Software gelingt jedoch ohne Probleme und funktioniert – wie von Raspbian gewohnt – mit sudo apt-get install Paket.

Das Gastsystem greift bei Diensten und Udev-Regeln ebenfalls auf den Wirt zurück, sodass es sinnlos wäre, innerhalb des Emulators Dienste wie Cron noch einmal zu installieren. Konsequenterweise unterbindet die Software das auch.

Architektonisches

Bei Exagear Desktop handelt es sich nicht um einen klassischen Emulator, der eine komplette Betriebssystemumgebung bereitstellt – insbesondere fehlt ein eigener Kernel. Im Prinzip funktioniert die Software ähnlich wie Wine, das eine Windows-Umgebung unter Linux bereitstellt: Die Laufzeitumgebung fängt x86-Befehle ab und übersetzt sie in entsprechende ARM-Kommandos. Für die Grafikausgabe nutzt Exagear den X-Server des Wirts, die Architektur des Linux-Desktops kommt hier dem Emulator entgegen (siehe Kasten “Die X-Architektur unter Linux”).

Die X-Architektur unter Linux

Unter Linux zeichnet traditionell nicht das Betriebssystem die grafische Ausgabe, sondern mit dem X-Server ein eigenständiges Programm. Anwendungen, die eine grafische Oberfläche ausgeben wollen, kommunizieren mit dem X-Server und sagen ihm, was er zu zeichnen hat. Erst der X-Server ruft dann die systemnahen Treiberschnittstellen des Kernels auf. Die Kommunikation zwischen den X-Clients und dem X-Server erfolgt über die Netzwerkschnittstellen.

Auf Arbeitsplatzrechnern laufen der X-Server und dessen Clients in der Regel auf demselben System. Die X-Clients könnten aber genauso auf einem Rechner am anderen Ende der Welt laufen und ihre Grafikbefehle über das Internet an den heimischen Rechner senden, der dann die Oberfläche anzeigt. Dank des normierten Protokolls funktioniert das auch über Betriebssystemgrenzen hinweg. Die Grafikausgabe eines RasPi-Programms könnte man daher problemlos auf einem X-Server anzeigen, der unter Windows läuft.

Im Zusammenhang mit Exagear Desktop bedeutet das, dass der Emulator sich nicht um die grafische Oberfläche kümmern muss. Die x86-Programme entsprechen im Endeffekt zusätzlichen X-Clients: Sie senden die Ausgabebefehle an den X-Server des Wirts, der zeigt die Ausgabe an. Tastatur- und Maus-Events liefert der Server umgekehrt wieder an den X-Client im Emulator zurück.

Der Vorteil der dünnen Emulationsschicht liegt darin, dass sie Multithreading automatisch unterstützt – trotzdem spürt man einen Leistungsverlust. Eltechs verspricht bis zu 80 Prozent der nativen Performance, wobei der Verlust von den konkreten Befehlen abhängt, die eine Anwendung verwendet. In extremen Fällen gehen bis zu zwei Drittel der RasPi-Performance verloren.

Auf Raspbian-Seite sollten Sie auf jeden Fall einige Vorkehrungen treffen, um optimale Bedingungen zu schaffen. Dazu gehört zumindest ein RasPi 2 der neueren Generation (derselbe Prozessor wie beim RasPi 3) oder höher. Eine schnelle Festplatte (SSD) für das System hilft ebenfalls. Außerdem sollten Sie der GPU genug Speicher gönnen, mindestens 256 MByte, was Sie über den Parameter gpu_mem in der /boot/config.txt einstellen.

Grafikintensive Anwendungen profitieren auch vom Freischalten der hardwareunterstützten Grafikbeschleunigung. Das erledigen Sie via Raspi-config, wo Sie unter Advanced Options die Einstellung GL Driver finden. Hier wählen Sie GL (Full KMS) OpenGL desktop driver with full KMS. Anwendungen wie etwa Skype (32-Bit-Linux-Version) haben allerdings ein Problem damit: Greift Skype auf die Videokamera zu, egal ob Pi- oder USB-Kamera, stürzt der X-Server ab.

Auf der Netzwerkseite drückt die Emulation weniger auf die Leistung. Das Klonen eines 260 MByte großen Github-Projekts dauerte nativ 140 Sekunden und im Emulator 231 Sekunden. Dabei war die Download-Rate im Emulator nur 7 Prozent geringer, der Rest des Verlusts ging auf Kosten der CPU für Verschlüsselung und das Verarbeiten der Git-Metadaten. Bei NFS- oder Samba-Transfers liegt der Verlust dagegen im Bereich der Messunschärfe.

Erste Tests

Mit Exagear Desktop lassen sich alle unter Debian 8 laufenden (32-Bit-)Programme auf dem Raspberry Pi betreiben. Eltechs hält auf seiner Webseite eine ganze Reihe von englischsprachigen Anleitungen für beliebte Programme bereit, wie Skype für Linux oder Wine als Basis für Windows-Programme. Oft zeigt ein Video zusätzlich die notwendigen Schritte. Wer schon einmal Programme unter Raspbian installiert hat, kommt jedoch in aller Regel auch ohne diese Anleitungen zurecht.

Als erster Kandidat für den Emulator musste der Open-Source-Editor Visual Studio Code herhalten. Er stammt ursprünglich von Microsoft und hat inzwischen auf Github eine große Community gefunden. Zudem läuft er auf vielen Plattformen und besitzt damit das Zeug, selbst den Lieblingseditor Xemacs des Autors in den Ruhestand zu schicken.

Von dem Editor gibt es keine vorkompilierten Binaries für Raspbian; auch der Eigenbau gestaltet sich wegen vielfältiger Abhängigkeiten knifflig. Zum Glück klappt aber die Installation unter Exagear mit der Standard-Installationsanleitung von der Visual-Studio-Code-Seite [3] fast ohne Probleme: Zwei Abhängigkeiten galt es, manuell zu installieren, aber das lag nicht an Exagear.

Das Ergebnis dieses ersten Versuchs enttäuschte allerdings. Das via Exagear gestartete Visual Studio Code ließ sich unter Raspbian nicht bedienen. Der Start des Programms fraß so viel Ressourcen, dass sich das System scheinbar aufhängte. Eine kleine Recherche im Netz zeigt allerdings, dass sich auch ein nativer ARM-Build unter Raspbian sehr zäh anfühlt.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben