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/2019
Home Improvement

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Extrem genau

    Mit einem A/D-Wandler messen Sie bei Bedarf Spannungen. Der MCP3424 macht dabei konstruktionsbedingt eine gute Figur.

  • Verbindungsaufnahme

  • Süßer Wecker

    Dem RasPi fehlen sowohl eine Echtzeituhr als auch ein BIOS, ein zeitgesteuertes Wecken erfordert also Zusatzkomponenten. Hier springt der Witty Pi Mini in die Bresche, ein µHAT von UUGear.

  • Windows to go

    Das Aufsetzen zuverlässiger und sicherer Remote-Desktop-Lösungen erfordert einiges Know-how. Die RasPi-basierte Pinbox von Pintexx reduziert den Konfigurationsaufwand auf ein Minimum.

  • Prima Klima

    In Museen ist es Pflicht, zu Hause nützlich: das permanente Prüfen und zentrale Erfassen der Feuchtigkeit und Temperatur in Räumen.

  • Auf einen Blick

    Ein maßgeschneiderter Infoscreen auf RasPi-Basis mit stromsparendem E-Ink-Display zeigt Termine, Bilder, Mitteilungen und Wetterinformationen an.

  • Sanft berührt

    Mit einem RasPi und dem Controllermodul PiXtend lassen sich mühelos Roboterarme ansteuern und deren Bewegung automatisieren.

  • Popcorn-Kino

    Mit Kodi 18.0 unterstützt LibreELEC 9.0 jetzt die von vielen Streaming-Diensten genutzte DRM-Verschlüsselung. Die Integration von Netflix, Amazon und Co. erfordert allerdings Handarbeit.

  • So nah und doch so fern

    Der RasPi kommt häufig als Server oder Steuerrechner für spezielle Zwecke zum Einsatz. Mit Anydesk erhalten Sie dazu eine Steuersoftware mit grafischer Oberfläche.

  • Eingebettet

    Funkmodule, Displays und Analysegeräte für den Raspberry Pi: Auf der Embedded World präsentieren sich zahlreiche Unternehmen interessierten Elektronikbastlern und Entwicklern.