Raspberry Pi: Der mit dem 64-Bit-Kernel tanzt
Die Raspberry Pi Foundation sorgt dafür, dass auf der Version 3 ihres Minirechners ein 32-Bit-Linux startet - und das, obwohl der neue Raspberry Pi eine reinrassige 64-Bit-CPU hat. Echte Linux-Kern-Techniker lässt die angezogene Handbremse nicht ruhen.
Als die Raspberry Pi Foundation Ende Februar 2016 das Model 3 ihres so erfolgreichen Minicomputers vorstellte, war die Freude groß. Das neue Modell ist mit einer schnellen 64-Bit-ARMv8-CPU ausgestattet. Der Schwenk von 32-Bit- auf die 64-Bit-Betriebssysteme und -Anwendungen schien eingeleitet. Doch weit gefehlt: Zur großen Überraschung der meisten Raspberry-Pi-Fans und -Entwickler reizt die neue 64-Bit-Hardware ihre Möglichkeiten mit dem Raspbian-Betriebssystem überhaupt nicht aus und arbeitet nur mit 32 Bit.
- Raspberry Pi: Der mit dem 64-Bit-Kernel tanzt
- Willkommen im U-Boot und Geräte-Baum
- Quellen finden und selber einen Kernel bauen
- Profis konfigurieren U-Boot
Die Zurückhaltung geht so weit, dass ein Raspberry Pi 3 im vorgesehenen 32-Bit-Modus vorgibt, eine ARMv7-Architektur zu haben, obwohl auf ihm ein ARMv8 sitzt: Egal ob in den Bootmeldungen oder in der Ausgabe des Befehls cat /proc/cpuinfo - Kernel und Betriebssystem geben sich als Teil der BCM2709-Familie aus, tatsächlich sind sie auch Teil der BCM2710-Familie.
Die 64-Bit-CPU
Denn auf dem Raspberry Pi 3 sitzt als System-on-Chip ein Broadcom BCM2837. Es handelt sich um die Weiterentwicklung des BCM2836 (BCM2709) des Raspberry Pi 2, bei dem die ARMv7-CPU durch eine Quadcore-ARMv8-CPU vom Typ Cortex A 53 ersetzt wurde. Die CPU kann sowohl im 32-Bit- (AArch32) als auch im 64-Bit-Modus (AArch64) arbeiten, wobei der Raspi 3 als Standard die 32-Bit-Variante wählt.
Die CPU verwendet einen modernisierten Befehlssatz, sie hat 31 64-Bit-Register statt der bisherigen 15 mit 32 Bit. Register 31 (Program Counter) liefert grundsätzlich Null beim Lesen. In der 64-Bit-Variante passieren Gleitkomma-Operationen grundsätzlich mit 128 Bit (Datentyp long double). Des Weiteren unterstützt die CPU standardmäßig ARMs Multimedia- und Signalverarbeitungs-Erweiterung Neon, eine 128-Bit-SMID-Architektur. Zudem verarbeitet der Prozessor diverse Kryptoalgorithmen AES, SHA-1, SHA-256 direkt im Chip.
Mit etwas Abstand wird die technologische Verzagtheit der Raspberry Pi Foundation dennoch nachvollziehbar. So ist der Raspberry Pi 3 nur mit 1 GByte RAM bestückt - zu wenig, um vom erweiterten Adressbereich der ARMv8-Architektur zu profitieren. Zudem ist ein spürbarer Leistungsgewinn in der Praxis durch 64-Bit-Instruktionen nicht zu erwarten. Immerhin ist die neue CPU selbst im 32-Bit-Modus der ARMv7-Architektur des alten Raspberry Pi deutlich überlegen, da das mit der neuen Architektur einhergehende Fertigungsverfahren höhere Taktfrequenzen ermöglicht.
Der gravierende Vorteil des 32-Bit-Betriebs ergibt sich aus dem Umstand, dass die Besitzer der Platinen ihr vorhandenes Raspbian-Userland unverändert weiter verwenden dürfen.
Technik muss begeistern, deshalb wird gebastelt
Auch wenn die 64 Bit beim Rapsberry Pi 3 bestenfalls marginale Geschwindigkeitsvorteile bringen, kann es den Technik-begeisterten Linux-Nutzer nicht auf Dauer zufriedenstellen, bei den Hardwaremeldungen einen Wolf im Schafspelz zu erhalten und eine 64-Bit-CPU mit einem 32-Bit-System zu langweilen. Daher haben sich direkt nach Veröffentlichung des Raspberry Pi 3 Entwickler daran gemacht, den 64-Bit-Betrieb zu ermöglichen. Der Artikel beschreibt, wie das geht.
Dazu müssen an der Firmware, am Kernel und am Userland Hand angelegt werden. Die Firmware muss den Controller des Raspberry Pi 3 direkt beim Booten in den 64-Bit-Modus schalten. Immerhin sieht die Board-eigene Firmware das bereits vor. Dazu ist in der Datei config.txt auf der Bootpartition die Variable arm-control auf den Wert 0x200 zu setzen, wie später noch gezeigt wird. Inzwischen soll eine neue Firmware sogar in der Lage sein, auch ohne Veränderung einen 64-Bit-Kernel zu laden.
Willkommen im U-Boot und Geräte-Baum |
Guten Abend, das Ergebnis von : export CROSS_COMPILE=aarch64-linux-gnu- export ARCH...
dem direkt verlinkten image? Beim Klick darauf wird direkt de download gestartet. dabei...
Man kann auch einfach SUSE Linux Enterprise for Pi3 nehmen https://www.suse.com...
Erinnert mich an die Probleme mit Android. Könnte Android (theoretisch) auch Device Tree...