Ubuntu 24.04 auf dem Raspberry Pi 5

Aus LinuxUser 10/2024

Ubuntu 24.04 auf dem Raspberry Pi 5

© lesnoj / 123RF.com

Auf großem Fuß

Mit Ubuntu 24.04 gibt es für den RasPi eine aktuelle Linux-Distribution, die ein vollwertiges Gnome-System auf den SBC bringt.

Einplatinencomputer wie der Raspberry Pi sind heute so leistungsfähig, dass sie nicht nur für Spezialanwendungen taugen. Sie können in vielen Fällen auch einen Desktop-PC ersetzen. Die Rechenleistung ist dabei das kleinste Problem. Es stellt sich eher die Frage, ob der Kleinrechner die benötigte Software ausführen kann.

Für den populären Raspberry Pi stehen mehrere vollwertige Distributionen bereit. Dazu zählen neben dem offiziellen Debian-basierten Raspberry Pi OS unter anderem Manjaro Linux, Arch Linux und OpenSuse Leap. Allerdings schaffte es nur eine einzige klassische PC-Linux-Distribution in den offiziellen Raspberry-Pi-Installer: Ubuntu (Abbildung 1). Wir sehen uns im Folgenden an, wie gut sich Ubuntu 24.04 für den RasPi 5 eignet. Außerdem testen wir nützliche Features, mit denen Sie x86- und x86_64-Anwendungen auf der ARM-basierten Plattform starten, was die Auswahl an verfügbarer Software deutlich vergrößert.

Abbildung 1: Ubuntu ist die einzige klassische Desktop-Distribution, die der offizielle Raspberry-Pi-Imager anbietet.

Abbildung 1: Ubuntu ist die einzige klassische Desktop-Distribution, die der offizielle Raspberry-Pi-Imager anbietet.

Installation

Viele Benutzer berichten im Netz über Probleme beim Booten von der SD-Karte. Diese sind möglicherweise beim Erscheinen dieses Artikels bereits behoben, weil planmäßig am 29.08. die erste Aktualisierung auf Ubuntu 24.04.1 bereitstehen soll. Einige Hinweise zur Problembehebung, die sich auf Version 24.04 beziehen, finden Sie im Kasten “Workarounds”. Nach mehreren erfolglosen Tests des offiziellen Images haben wir letztlich die im Kasten erwähnte Alternative verwendet, die ein Canonical-Entwickler zum Herunterladen anbietet.

Workarounds

Im Raspberry-Pi-Forum [7], im Ubuntu-Bug-Tracker [8] und auch an anderen Stellen im Netz beschreiben Nutzer diverse Probleme bei der Inbetriebnahme des vorkonfigurierten Ubuntu-Images. Die treten zum Beispiel dann auf, wenn statt einer SD-Karte eine NVMe-SSD oder eine USB-Platte als Bootmedium zum Einsatz kommt. In unseren Tests mit dem Raspberry Pi 5 funktionierte das offizielle Image gar nicht. Dave Jones alias @waveform80, der bei Canonical unter anderem an der RasPi-Portierung von Ubuntu arbeitet, stellte im Ubuntu-Bug-Tracker-Thread ein alternatives Image bereit, das wir in unseren Tests einsetzten [9].

Andere Vorschläge zur Problembehebung finden sich im selben Thread, beziehen sich aber auf den Einsatz von NVMe-SSDs oder USB-Platten. Die Workarounds basieren auf der Änderung von Einträgen in der Konfigurationsdatei config.txt auf der FAT-Partition des Datenträgers und beziehen sich auf das offizielle Image. Um diese Vorschläge auszuprobieren, entfernen Sie die SD-Karte nach dem Schreiben des Images und stecken sie direkt wieder ein.

Es erscheint die FAT-Partition system-boot, von der Sie die Datei config.txt in einem Editor öffnen. Suchen Sie die Zeile dtoverlay=vc4-kms-v3d und ergänzen Sie sie am Ende mit ,cma-128. Hängen Sie nach dem Speichern den Datenträger aus und entnehmen Sie die SD-Karte. Eine weitere Möglichkeit besteht darin, statt des Ubuntu-Desktop-Images das offizielle Ubuntu-Server-Image zu verwenden und dort mit sudo apt install ubuntu-desktop die fehlenden Desktop-Komponenten nachzuinstallieren.

Laden Sie zunächst das 2,5 GByte umfassende Ubuntu-Image für den Raspberry Pi von der separaten Download-Seite [1] des Projekts herunter. Das Image namens ubuntu-24.04-preinstalled-desktop-arm64+raspi.img.xz müssen Sie nicht entpacken. Das alternative Image gleichen Namens (siehe Kasten “Workarounds”) ist 2,2 GByte groß. Verwenden Sie zum Transfer auf die SD-Karte den offiziellen Raspberry Pi Imager [2], erkennt der automatisch, dass das Image gepackt ist. Nach Abschluss des Schreibvorgangs entnehmen Sie die SD-Karte, schieben sie in den SD-Slot des RasPi und starten den SBC durch Einstecken des Stromkabels.

Linux-Installationen auf einem RasPi laufen anders ab, als Sie es von PCs kennen. Das liegt daran, dass das heruntergeladene Image bereits ein installiertes System enthält. Es dehnt beim ersten Booten lediglich das Dateisystem auf den verfügbaren Platz der SD-Karte aus und erfragt dann einige Konfigurationsparameter. Dazu zählen die Sprache und Tastaturbelegung (German / German), der Standort (Berlin) und die Identität des Benutzers. Im letzten Schritt legen Sie ein lokales Konto an, vergeben ein Passwort und aktivieren bei Bedarf das automatische Anmelden.

Nach gut fünf Minuten sind die Anpassungen abgeschlossen. Es startet der übliche Assistent für die Inbetriebnahme. Hier überspringen Sie die Einrichtung von Ubuntu Pro, entscheiden, ob Sie Informationen über das System an Ubuntu schicken möchten, und starten bei Bedarf das App Center.

Gebrochenes Deutsch

Trotz Anwahl der deutschen Sprache präsentiert sich der Ubuntu-Desktop in einem deutsch-englischen Mischmasch. Die nächsten Schritte setzen voraus, dass der RasPi mit dem Internet verbunden ist. Öffnen Sie ein Terminalfenster und spielen Sie mit sudo apt update gefolgt von sudo apt upgrade die Aktualisierungen der installierten Pakete ein. Warnungen des ersten Befehls können Sie ignorieren, der zweite brachte im Test 256 Pakete auf den aktuellsten Stand.

Öffnen Sie die Settings, wechseln Sie links zum Bereich System, klicken Sie auf Region**&**Language und in der Übersicht auf Manage Installed Languages. Falls der Hinweis Die Sprachunterstützung ist nicht vollständig installiert erscheint, klicken Sie auf Installieren und geben Ihr Passwort ein. Das System richtet danach die fehlenden Pakete ein. Stellen Sie außerdem unter Your Account und auch unter Login Screen die Language auf Deutsch und die Formats auf Deutschland um. Es erscheint oben im Fenster ein Hinweis, dass die Änderungen erst nach der nächsten Anmeldung greifen. Klicken Sie daher rechts oben im Fenster auf Log Out (Abbildung 2), melden Sie sich ab und wieder an.

Abbildung 2: Wenn die Oberfläche teilweise englischsprachig erscheint, stellen Sie die Sprache auf Deutsch um.

Abbildung 2: Wenn die Oberfläche teilweise englischsprachig erscheint, stellen Sie die Sprache auf Deutsch um.

Danach sollte sich die Oberfläche vollständig in deutscher Sprache präsentieren. Was im Test allerdings fehlte, war eine Möglichkeit, die Standardordner Desktop, Documents, Music, Pictures, Templates und Public einzudeutschen.

Desktop-Betrieb

Die grafische Oberfläche sieht genauso aus, wie Sie es von der PC-Version her gewohnt sind (Abbildung 3). In der Grundeinstellung nutzt Ubuntu den modernen Compositor Wayland. Möchten Sie lieber das ältere X.org verwenden, geben Sie das im Anmeldedialog an. Mit dem Aufruf echo $XDG_SESSION_TYPE prüfen Sie, welche Technik das System gerade verwendet: Die möglichen Antworten lauten wayland und x11.

Abbildung 3: Ubuntu 24.04 sieht auf dem Raspberry Pi trotz anderer Architektur genauso aus wie auf einem normalen PC.

Abbildung 3: Ubuntu 24.04 sieht auf dem Raspberry Pi trotz anderer Architektur genauso aus wie auf einem normalen PC.

Standardprogramme wie LibreOffice und Firefox arbeiten wie gewohnt, auch ein als Snap-Paket nachinstalliertes Gimp lief mit akzeptabler Geschwindigkeit. Bei hoher Auflösung geriet die Wiedergabe von Youtube-Videos in Firefox allerdings sehr ruckelig (Abbildung 4), Tests im Vollbildmodus auf einem Monitor mit 2560 x 1440 Pixeln überforderten den RasPi. Generell macht das Websurfen mit Firefox wenig Spaß. Hier hilft ein Wechsel zum alternativen Browser Chromium, den Sie im Snap-Store unter chromium finden. Auch der klassische Paketverwalter Apt findet ein Paket chromium-browser, das aber nur das Snap-Paket einrichtet. Hier zieht das Ubuntu-Team seinen Ansatz durch, Browser nur über den Snap-Store anzubieten. Nach dem Wechsel auf die HDTV-Auflösung 1920 x 1080 sahen Youtube-Videos in Chromium richtig gut aus.

Abbildung 4: Wählen Sie eine hohe Auflösung, ruckeln Youtube-Videos in Firefox stark.

Abbildung 4: Wählen Sie eine hohe Auflösung, ruckeln Youtube-Videos in Firefox stark.

Insgesamt verhält sich die Oberfläche sehr reaktionsfreudig. Obwohl das Betriebssystem sie von einer langsamen SD-Karte lädt, starten Programme relativ schnell. Rüsten Sie den RasPi mit einer NVMe-SSD auf [3], profitieren Sie von einer deutlichen Beschleunigung. Es ist auch problemlos möglich, den Rechner mehrere Dinge gleichzeitig erledigen zu lassen, denn er besitzt mit seinen vier CPU-Kernen genug Reserven.

Fortgeschrittenes

Zusätzliche Anwendungen installieren Sie wie gewohnt über das Anwendungszentrum, das bevorzugt Programme aus dem Snap-Store und nach Änderung der Voreinstellung auch Apt-Pakete anzeigt. Alternativ spielen Sie Debian-Pakete auf dem klassischen Weg mit Apt auf der Konsole ein. Im Test funktionierte zudem Flatpak, womit eine weitere Paketquelle zur Verfügung steht. Für alle drei Installationsvarianten gilt, dass zwar viele von x86-Ubuntu bekannte Anwendungen in identischen Versionen für die ARM-CPU zur Verfügung stehen und sich auch gleich verhalten, aber manche Programmpakete fehlen, weil sie bisher nicht portiert wurden.

Ubuntu 24.04 ist ein 64-Bit-System. Die RasPis verwenden seit dem Modell 3 64-Bit-Prozessoren und können damit sowohl 64-Bit- als auch 32-Bit-Anwendungen ausführen. Es gab, wie bei den PCs, zunächst einen Wechsel der Hardware von 32-Bit- zu 64-Bit-CPUs und – mit ein wenig Verzögerung – den Wechsel auf ein dazu passendes Betriebssystem. Auch beim RasPi ist das 64-Bit-Ubuntu in der Lage, ältere 32-Bit-Anwendungen auszuführen. Abbildung 5 zeigt ein Testprogramm, das mit dem nativen GCC und der Cross-Compiler-Version arm-linux-gnueabihf-gcc in 64- und 32-Bit-Versionen übersetzt und ausgeführt wurde. Die Ausgabe der Memory Maps zeigt, dass die 32-Bit-Anwendung in einem 32-Bit-Adressraum arbeitet, während der 64-Bit-Prozess breitere 48-Bit-Adressen verwendet.

Abbildung 5: Rückwärtskompatibel: Ubuntu führt auch ältere 32-Bit-Anwendungen aus.

Abbildung 5: Rückwärtskompatibel: Ubuntu führt auch ältere 32-Bit-Anwendungen aus.

Wenn Sie mit Linux-Containern arbeiten möchten, installieren Sie mit Apt das Paket docker.io und erhalten damit dieselbe Docker-Umgebung wie auf dem PC. Nach der Paketinstallation fügen Sie zunächst Ihr eigenes Benutzerkonto der Gruppe docker hinzu (Listing 1, erste Zeile). Dann schließen Sie alle Anwendungen, terminieren die Sitzung hart (zweite Zeile) und melden sich wieder an.

Listing 1

Docker einrichten

$ sudo usermod -a -G docker $USER
$ sudo killall -u $USER
[...]
$ docker run --rm --privileged aptman/qus -s -- -p x86_64
$ docker run -it --rm --platform amd64 ubuntu

Ein einfaches Aus- und Einloggen hilft nicht weiter, weil dabei die neue Gruppenmitgliedschaft nicht greift – in der PC-Version hat Ubuntu dasselbe Problem. Nach dem erneuten Anmelden sollte in der Ausgabe von id auch die Gruppe docker erscheinen.

Docker verwendet in den Containern den Kernel des Host-Systems, es handelt sich also um ARM-Container (aarch64). Deswegen lassen sich Images, die für die x86-Plattform erstellt wurden, zunächst nicht verwenden. Docker kann aber andere Plattformen emulieren. Wollen Sie beispielsweise die gängigeren x86_64-Container verwenden, rüsten Sie den Support dafür mit dem Kommando aus der vierten Zeile von Listing 1 nach. Um einen x86_64-Ubuntu-Container zu starten, geben Sie dann den Befehl aus der letzten Zeile ein.

Das klappt genauso mit x86-Docker-Images anderer Linux-Distributionen, wie etwa Debian (Abbildung 6). Auf diesem Weg lässt sich auch Linux-Software nutzen, die nicht auf ARM portiert wurde.

Abbildung 6: Zwei Debian-Docker-Container. Der im Vordergrund emuliert eine x86_64-CPU.

Abbildung 6: Zwei Debian-Docker-Container. Der im Vordergrund emuliert eine x86_64-CPU.

x86-Emulation

Docker nutzt für den gerade beschriebenen Trick den Qemu User Space Emulator [4]. Diesen installieren Sie mit den Befehlen aus Listing 2. Danach führen Sie Binaries anderer Plattformen ohne weitere Umstände einfach aus.

Listing 2

Qemu User Space Emulator

$ sudo apt install qemu-user-static
$ sudo systemctl daemon-reload

Linux erkennt, dass die Plattform nicht passt, und startet den Emulator, der das Programm Schritt für Schritt abarbeitet und die fremden Prozessorbefehle übersetzt. Will die Software ein Betriebssystem-Feature nutzen, löst das einen System Call aus, den Qemu mithilfe einer Übersetzungstabelle an das auf dem RasPi laufende Ubuntu weitergibt. Das klappt aber nur bei statisch gelinkten Binaries, die beim Start keine Bibliotheken dynamisch nachladen, oder auf Systemen, die alle benötigten Bibliotheken in Versionen für die fremde Plattform mitbringen. Letzteres ist bei Docker-Images der Fall, weswegen der Ansatz so gut funktioniert.

Abbildung 7 zeigt ein kleines Testprogramm, das auf dem Raspberry Pi und auf einem PC jeweils unter Ubuntu mit der GCC-Option --static in ein statisches Binary übersetzt wurde. Ubuntu konnte dank Qemu beide Versionen starten.

Abbildung 7: Dank Qemus User Space Emulator laufen für den PC übersetzte Programme auf dem RasPi.

Abbildung 7: Dank Qemus User Space Emulator laufen für den PC übersetzte Programme auf dem RasPi.

Box86 und Box64

Box86 und Box64 [5] erlauben es ebenfalls, 32- und 64-Bit-Linux-Programme auf dem RasPi auszuführen. Die miteinander verwandten Tools agieren noch cleverer als Qemu.

Die Architektur der meisten Anwendungen gestaltet sich mehrstufig. Das eigentliche Programm ruft für zahlreiche Standardaufgaben, etwa die Arbeit mit Dateien oder die Informationsdarstellung in grafischen Fenstern, Funktionen in Standardbibliotheken auf. Damit das funktioniert, lädt der Programmlader neben der eigentlichen Software auch die benötigten Bibliotheken in den Speicher. Um Systemfunktionen zu nutzen, verwenden die Bibliotheksfunktionen System Calls. Von diesen drei Ebenen muss die Qemu-Lösung die zwei Ebenen Programm und Bibliotheken in x86-Maschinensprache behandeln, also den Code durch Emulation ausführen. Bei Box64 betrifft das nur das Programm selbst, denn die Box-Tools verwenden die nativen ARM-Versionen der Bibliotheken.

Eine Anleitung, mit der die Intel-Version von Steam via Box64 laufen soll [6], schlägt unter Ubuntu 24.04 fehl, sie funktioniert aber mit der Vorgängerversion 23.10. Allerdings hat Ubuntu 24.04 auch in der Intel-Variante Probleme mit Steam. Dort lässt sich die Software nur als Snap-Paket aus dem Snap Store installieren. Dennoch helfen die ersten Schritte der Steam-Installationsanleitung weiter, weil sich damit Box64 einrichten lässt. Unter Ubuntu 24.04 erfordert das nur eine Änderung an einer der Quellcodedateien von Box68. Listing 3 zeigt die notwendigen Befehle, Zeile 15 enthält die Korrektur des Quellcodes. Wenn Sie auf das Ausführen von 32-Bit-x86-Programmen verzichten möchten, spielen Sie Box64 direkt mit sudo apt install box64 aus den Standardrepos ein.

Listing 3

Box86 und Box64 installieren

$ sudo dpkg --add-architecture armhf
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt install gcc-arm-linux-gnueabihf -y
$ sudo apt install cmake libc6:armhf -y
$ git clone https://github.com/ptitSeb/box64
$ cd box64
$ mkdir build; cd build; cmake .. -D RPI5ARM64=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo
$ make -j4
$ sudo make install
$ cd ~
$ git clone https://github.com/ptitSeb/box86
$ cd box86
$ sed -i.bak -e 's/ st->__st_ino/ st->st_ino/' src/libtools/myalign64.c
$ mkdir build; cd build; cmake .. -D RPI4ARM64=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo
$ make -j4
$ sudo make install
$ cd /usr/lib/binfmt.d/
$ f=qemu-i386.conf; sudo mv $f $f.disabled
$ f=qemu-x86_64.conf; sudo mv $f $f.disabled
$ sudo systemctl restart systemd-binfmt

Haben Sie bereits wie oben beschrieben Qemu-User-Static für den Start von x86- und x86_64-Binaries konfiguriert, benennen Sie die Dateien qemu-i386.conf und qemu-x86_64.conf im Verzeichnis /usr/lib/binfmt.d/ um, zum Beispiel in qemu-i386.conf.disabled (Listing 2, Zeilen 20 bis 22). Danach starten Sie den Binfmt-Dienst neu (letzte Zeile).

Einzelne x86- oder x86_64-Programme führen Sie danach durch das Voranstellen von box86 oder box64 aus. Wenn Sie dabei das falsche Tool verwenden, erkennt es den Irrtum und gibt die Anforderung an das richtige Hilfsprogramm weiter.

Es geht aber auch ganz ohne explizite Aufforderung zur x86-Emulation, denn der Binfmt-Dienst erkennt jetzt ausführbare Programmdateien aus der Intel-kompatiblen Welt und startet sie automatisch mit einem der Box-Programme. Listing 4 zeigt, wie drei Versionen des Tools Uname, das die Versionsnummer und einige Zusatzinformationen wie die Plattform ausgibt, direkt ausgeführt werden. Dabei ist uname die native Version, uname-x86 ein 32-Bit-Binary aus einem anderen x86-Linux-System und uname-x86_64 ein 64-Bit-x86_64-Ubuntu-Binary.

Listing 4

Autostart von Box86 und Box64

$ export BOX64_LOG=0
$ uname -a
Linux ubu2404rp 6.8.0-1009-raspi #10-Ubuntu SMP PREEMPT_DYNAMIC Mon Jul 29 15:52:43 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
$ ./uname-x86 -a
Box86 with Dynarec v0.3.7 66a91b85 built on Aug 17 2024 15:48:15
Linux ubu2404rp 6.8.0-1009-raspi #10-Ubuntu SMP PREEMPT_DYNAMIC Mon Jul 29 15:52:43 UTC 2024 x86_64 GNU/Linux
$ ./uname-x86_64 -a
Box64 with Dynarec v0.3.1 c4253b73 built on Aug 17 2024 06:20:54
Linux ubu2404rp 6.8.0-1009-raspi #10-Ubuntu SMP PREEMPT_DYNAMIC Mon Jul 29 15:52:43 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Geschwindigkeitsrekorde dürfen Sie von den in emulierten Umgebungen ausgeführten x86-Programmen nicht erwarten: Emulation arbeitet generell langsamer als Virtualisierung. Als Mini-Benchmark haben wir in der Shell eine kleine Schleife gestartet und die Zeit gestoppt. Die x86_64-Version der Bash (Abbildung 8) brauchte mehr als dreimal so lang wie die native ARM-Version.

Abbildung 8: In der x86_64-Version der Bash (rechts) benötigt die Schleife dreimal so viel Zeit wie in der nativen Version.

Abbildung 8: In der x86_64-Version der Bash (rechts) benötigt die Schleife dreimal so viel Zeit wie in der nativen Version.

Fazit

Die verschiedenen Möglichkeiten der x86-Emulation, die Ubuntu auf dem RasPi erlaubt, sind spannend, wenn Sie entsprechenden Bedarf haben. Wollen Sie aber nur einen stromsparenden, einfachen Desktop-Rechner zusammenstellen, um ein paar Texte zu schreiben, E-Mails zu bearbeiten und im Web zu surfen, dann werden Sie im laufenden Betrieb kaum Unterschiede zwischen Ubuntu auf dem RasPi 5 und einem normalen PC feststellen.

Das offizielle Raspberry Pi OS muss sich aus Rücksicht auf schwächere RasPi-Modelle auf einen abgespeckten Desktop beschränken, während Ubuntu 24.04 einen vollwertigen Gnome-Desktop mitbringt. Welche Leistung die kleine Platine des RasPi 5 liefert, ist schon beachtlich. Der Lüfter sprang während der tagelangen Tests für diesen Artikel nur gelegentlich an. (tle)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 10/2024 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben