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

06/2018
Raspberry 3 Modell B+

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Neues auf der Heft-DVD

    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial eines Mini-PC. Mit der Heft-DVD erhalten Sie nicht nur die neusten Distributionen für den RasPi und Co., sondern gleichzeitig auch die passenden Programme zu den Artikeln.

  • Auf vielen Kanälen

    Die IoT-Welt spricht MQTT. Das robuste Protokoll eignet sich aber nicht nur für die Industrie, sondern auch für den Einsatz in den eigenen vier Wänden.

  • Stabübergabe

    Ist das Prototyping erst einmal abgeschlossen, dann darf ein günstiger Mikrocontroller wie der MSP430 das Ruder übernehmen.

  • Einfach eingesteckt

    Mit dem Mediastick von Western Digital erweitern Sie einen Fernseher auf einfache Weise um ein Compute-Modul. In der Praxis lauern aber einige Fußangeln.

  • Laubenpieper

    Mit Teamviewer IoT passt der Remote-Desktop-Spezialist seine Software an die Anforderungen im Internet der Dinge an. Dabei bleibt der Raspberry Pi ein wichtiges Element.

  • Im Labor

    Es gibt Situationen, die eine genauere Analyse erfordern, als der Strommesser aus dem Baumarkt sie liefert. Ein Selbstbaumodul samt Pi Zero zeichnet Messdaten für die spätere Auswertung auf.

  • HTTPS für alle

    Mit Caddy gelingt es auch unerfahrenen Anwendern, einen Webserver vernünftig und sicher aufzusetzen. Dabei reduziert er das üblicherweise komplexe Setup von HTTPS auf ein Minimum.

  • Informativ

    Kiosksysteme als interaktives Informationsangebot verursachen in Anschaffung, Betrieb und Wartung meist erhebliche Kosten. Raspberry Digital Signage dagegen bietet eine Lösung für das kleine Budget.

  • Logisch, oder?

    Digitale Schaltungen mit Bleistift und Papier zu zeichnen, gerät auf die Dauer umständlich. Mit Logisim dagegen entwerfen Sie Schaltungen nicht nur, sondern können sie auch direkt testen.

  • Smarter Schreiberling

    Gerade kleine Texteditoren für die Konsole verfügen oft über erstaunlich umfangreiche Fähigkeiten – da macht Micro keine Ausnahme.