Den Raspberry Pi 3 im 64-Bit-Modus betreiben

© Scanrail, 123RF

Double Action

,

Auf dem Raspberry Pi 3 läuft normalerweise ein 32-Bit-Linux – und das, obwohl er eine waschechte 64-Bit-CPU besitzt. Mit etwas Mühe lässt sich die angezogene Handbremse aber durchaus lösen.

Als die Raspberry Pi Foundation Ende Februar 2016 das Modell 3 ihres so erfolgreichen Mini-Computers vorstellte, war die Freude groß: Der neue RasPi brachte eine schnelle 64-Bit-ARMv8-CPU mit, ein Wechsel von 32- auf 64-Bit-Betriebssysteme und entsprechende Anwendungen schien eingeleitet. Doch weit gefehlt: Zur großen Überraschung der meisten Fans und Entwickler reizt die neue 64-Bit-Hardware ihre Möglichkeiten überhaupt nicht aus und arbeitet rein 32-bittig (siehe Kasten "Die CPU des Raspberry Pi 3").

Die Zurückhaltung geht so weit, dass ein Raspberry Pi 3 im vorgesehenen 32-Bit-Modus vorgibt, auf der ARMv7-Architektur zu basieren, obwohl auf ihm ein ARMv8 sitzt (Abbildung 1): Egal ob in den Bootmeldungen oder in der Ausgabe von cat /proc/cpuinfo, Kernel und Betriebssystem geben sich als Teil der BCM2709-Familie aus. Tatsächlich gehören sie jedoch zum BCM2710-Ökosystem.

Abbildung 1: Der Raspberry Pi 3 verleugnet seine moderne Architektur und tarnt sich als 32-Bit-SoC.

Mit etwas Abstand betrachtet, ergibt die auf den ersten Blick ein wenig überraschende technologische Verzagtheit der Raspberry Pi Foundation allerdings durchaus einen Sinn:

  • Der Raspberry Pi 3 ist mit "nur" 1 GByte RAM bestückt – zu wenig, um vom erweiterten Adressbereich des ARMv8 zu profitieren.
  • Ein spürbarer Gewinn an Performance durch 64-Bit-Instruktionen ist nicht zu erwarten.
  • Die neue CPU erweist sich selbst im 32-Bit-Modus als der ARMv7-Architektur des alten Raspberry Pi deutlich überlegen.
  • Das mit der neuen Architektur einhergehende Fertigungsverfahren erlaubt höhere Taktfrequenzen.

Der gravierende Vorteil des 32-Bit-Betriebs ergibt sich beim Raspberry Pi schlicht aus dem Umstand, dass die Besitzer der Platinen ihr vorhandenes Raspbian-Userland unverändert weiterverwenden dürfen.

Die CPU des Raspberry Pi 3

Auf dem Raspberry Pi 3 sitzt als System-on-Chip ein Broadcom BCM2837, der zur BCM2710-Familie gehört. Es handelt sich um eine Weiterentwicklung des BCM2836 (BCM2709) des Raspberry Pi 2, bei dem die ARMv7-CPU durch eine Quadcore-ARMv8-CPU vom Typ Cortex-A53 ersetzt wurde. Sie kann sowohl im 32- ("AArch32") als auch im 64-Bit-Modus ("AArch64") arbeiten, wobei der RasPi 3 in der Vorgabe die 32-Bit-Variante wählt.

Hardware-technisch trumpft der Raspberry Pi 3 mit einem Bluetooth- und einem WLAN-Modul auf. Allerdings koppelt er den serienmäßigen Bluetooth-Baustein mit dem ersten seriellen Port, sodass es bei Nutzung der seriellen Schnittstelle – zum Beispiel als Konsole – zu Kompatibilitätsproblemen kommt.

Die CPU verwendet einen modernisierten Befehlssatz. Sie besitzt 31 Register mit jeweils 64 Bit Breite, während der Vorgänger nur mit 15 halb so großen Pendants aufwarten konnte. Das Register 31 ("Program Counter") liefert beim Lesen grundsätzlich eine Null. In der 64-Bit-Variante erfolgen Gleitkommaoperationen in jedem Fall mit 128 Bit Breite (Datentyp long double).

Des Weiteren unterstützt die CPU standardmäßig ARMs Multimedia- und Signalverarbeitungserweiterung Neon sowie eine 128-Bit-SIMD-Architektur. Außerdem verarbeitet der Prozessor diverse Verschlüsselungsalgorithmen direkt im Silizium, darunter AES, SHA-1 und SHA-256.

Technik muss begeistern

Auch wenn die 64 Bit beim RasPi 3 bestenfalls marginale Geschwindigkeitsvorteile bringen, kann es einen technikbegeisterten Entwickler nicht auf Dauer zufriedenstellen, bei den Hardware-Meldungen einen Wolf im Schafspelz zu halten und einen 64-Bit-Controller mit 32 Bit zu langweilen. Daher machten sich schon direkt nach Veröffentlichung des Raspberry Pi 3 erste Entwickler daran, den 64-Bit-Betrieb zu ermöglichen. Dazu mussten sie an der Firmware, am Kernel und am Userland Hand anlegen.

Die Firmware übernimmt die Aufgabe, den Controller des RasPi 3 direkt beim Booten in den 64-Bit-Modus zu schalten. Immerhin sieht die Onboard-Firmware das bereits vor. Dazu gilt es, in der Datei config.txt auf der Boot-Partition die Variable arm-control auf 0x200 zu setzen. Mittlerweile gibt es dem Vernehmen nach sogar eine neue Firmware, die in der Lage ist, aus eigener Kraft einen 64-Bit-Kernel zu laden. Das haben die Autoren jedoch nicht ausprobiert.

Die vorgeschlagene Alternative besteht im Einsatz der leistungsfähigen Boot-Software "Das U-Boot", die anstelle eines Linux-Kernels die Standard-Firmware lädt. Dazu benötigen Sie die 64-Bit-Version von U-Boot, die das neue Boot-Kommando booti kennt: Der Befehl hilft dabei, einen 64-Bit-ARM-Kernel zu laden, der einen spezifischen Header aufweist. Die Details dazu lassen sich in der Kernel-Dokumentation Documentation/arm64/booting.txt nachlesen [1]. Mit diesem Header und einigen anderen von Linux festgelegten Randbedingungen muss der Bootloader entsprechend umgehen können.

Überbordende Vielfalt

Der Kernel selbst muss selbstredend ebenfalls für die 64-Bit-ARMv8-Architektur übersetzt werden. Er benötigt wiederum einen passenden Device Tree [2], also eine Datei, die alle Hardware-Details beschreibt. Der ARM-Hardware-Zoo wartet mit deutlich mehr Arten auf als die x86-Welt und verwendet für die Peripheriekomponenten unterschiedliche Adresslagen.

Während in den Anfangstagen von ARM-Linux die Entwickler für jede unterstützte Hardware einen eigenen Kernel mit den jeweils passenden Adressen programmieren und übersetzen mussten, lesen heutige Kernel beim Booten den im Hauptspeicher bereitliegenden Device Tree live ein. Treiber bringen bei der Aktivierung die Adresslagen über den Kernel in Erfahrung. Die Device-Tree-Unterstützung gilt mittlerweile als ausgereift und für ARM-Architekturen obligatorisch. Es fehlt nur noch das Root-Filesystem (mit dem Userland) selbst. Hier bietet Debian ein ARM64-System an, das sich beispielsweise per Debootstrap [3] installieren lässt.

Doch bevor Sie jetzt mühsam versuchen, alle Teile des Puzzles selbst zu generieren und zusammenzustellen, machen Sie die ersten ARM64-Schritte besser mit einem vorkonfektionierten und getesteten 64-Bit-System aus dem Internet. Abbildung 2 zeigt die Fundstelle des Artefakts, das hier Verwendung findet.

Abbildung 2: Bereits Mitte April 2016 stellte der User xylnao ein 64-Bit-Image für den Raspberry Pi 3 bereit.

Dazu laden Sie die entsprechende Image-Datei [4] herunter, entpacken sie und schreiben sie unter Linux per Dd auf eine Micro-SD-Karte. Achten Sie dabei darauf, dass die Karte beim Beschreiben nicht eingehängt ist. Stecken Sie die so vorbereitete SD-Karte in den Raspberry Pi und das System startet, erscheint auf einem angeschlossenen Monitor bereits nach wenigen Sekunden das Login. Hier melden Sie sich als root mit dem Passwort raspberry an.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

04/2019
TV & Multimedia

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Finger weg

    Ein Temperatursensor verrät, ob Sie einen Gegenstand gefahrlos berühren dürfen. Beim Messen brauchen Sie dabei noch nicht einmal Kontakt zum Objekt.

  • Aus einer Hand

    Um einen Mikrocontroller zu programmieren, genügt ein Raspberry Pi. Wir zeigen, was Sie dazu noch benötigen.

  • Im Gleichtakt

    Synchronisierte Live-Loops und selbst erstellte Funktionen helfen dabei, Sonic Pi wie ein Live-Instrument zu spielen.

  • Mach mal

    Das Ftduino-Modul schlägt die Brücke zu Fischertechnik und ermöglicht es unter anderem, einen Drei-Achsen-Roboter anzusteuern.

  • Eleganter Diener

    Jeden Morgen dieselben Handgriffe, um zu sehen, ob die S-Bahn fährt und wie das Wetter wird? Ein cleverer Infoscreen auf RasPi-Basis automatisiert den Vorgang.

  • Bienenflüsterer

    Bienenzüchter, die ihre Völker besser kennenlernen möchten, müssen die fleißigen Insekten nicht pausenlos stören. Mit einem Raspberry Pi und verschiedenen Sensoren überwachen sie Temperatur, Luftfeuchtigkeit und bald auch das Gewicht des Bienenstocks.

  • Beerige Musik

    Für echten Hi-Fi-Sound braucht es mehr als einen kleinen Bluetooth-Brüllwürfel. Mit Volumio und einem Raspberry Pi rüsten Sie Ihre klassische Hi-Fi-Anlage mit smarten Funktionen auf.

  • Ton ab!

    Auf den ersten Blick erscheint der RasPi zu schwachbrüstig für den Betrieb leistungshungriger DAW-Software. Doch der Schein trügt.

  • Himbeer-TV

    Der DVB TV µHAT rüstet den Raspberry Pi mit einem DVB-T/T2-Tuner auf. Die deutsche TV-Landschaft schränkt dessen Möglichkeiten allerdings ein.

  • Git à la RasPi

    Mit wenigen Handgriffen zum Git-Hoster: Die dezentrale Arbeitsweise von Git erleichtert in Kombination mit der Netzwerkfähigkeit des RasPi das Verwalten von Quellcode.