Gibt es einen 64-Bit-Kernel für Raspberry Pi 3? Ich habe mich umgesehen und aus Quellen überprüfe ich die offizielle Seite und die folgenden Kernel sind dort aufgelistet:
- NOOBS - das ist Installer, kein Betriebssystem für sich, oder?
- Rapsbian - nur ein Download, daher gehe ich davon aus, dass 32 Bit mit allen Pi-Versionen kompatibel sind
- Ubuntu MATE - aarch32 (ARMv7)
- Ubuntu Ubuntu Core - scheint nur 32bit zu sein
- OSMC - gleiche Downloads für "Raspberry Pi 2/3", also 32 Bit
- LibreELEC - kombinierter Build für 2 & 3, also nur 32 Bit
- PiNet - weiß nicht was das ist, aber bezweifle 64 Bit
- RISC OS - scheint nicht wie Linux
- Wetterstation - ja, nur nein
Es scheint also nicht, dass es einen offiziellen 64-Bit-Kernel gibt? Gibt es eine inoffizielle? Kann ich einfach eine kompilieren und erwarten, dass sie funktioniert (ich denke nicht, aber es tut nicht weh zu fragen ..)? Arbeitet jemand wenigstens daran? Ich hätte gerne Zugriff auf native 64-Bit-Nummern.
Wie groß ist der Unterschied zwischen armv7 und armv8? Gentoo bietet Tarballs der Stufe 3 für armv7 an. Funktioniert das auf Pi 3, das armv8 ist?
Antworten:
Von dem Wenigen, das ich gefunden habe, gibt es nichts Stabiles und Offizielles. Einige haben einen zum Kompilieren bekommen, aber dann gibt es Probleme mit Treibern / Modulen.
Diese Links könnten Sie zu diesem Thema interessieren.
Eingabe des Ausführungsstatus von aarch64
Raspbian Jessie (64bit) für RPi3?
quelle
Die allgemeine Übereinstimmung ist, dass ein 64-Bit-Kernel die Leistung auf dem Pi nicht erhöht, da die einzigen 2 wirklichen Vorteile eines 64-Bit-Kernels sind:
Darüber hinaus ist 64-Bit gegenüber 32-Bit auf ARM-Chips nicht der große Leistungssprung, den es auf x86-Chips gab, da die x86-Chips bei 64-Bit-Architekturen erhebliche Architektur-Upgrades aufwiesen, während die ARM-Chips in 32-Bit-Versionen bereits ziemlich solide waren.
Fühlen Sie sich frei zu experimentieren! :) :)
quelle
Ein Vorteil von 64-Bit, den jeder zu vergessen scheint, ist, dass ARMv8 deutlich mehr Register als ARMv7 hat. Es hat auch eine viel bessere Gleitkomma-Leistung.
Es ist nicht nur ein Add-On zu ARMv7, es ist eine völlig neue Architektur.
quelle
OpenSUSE hat sein 64-Bit-Raspberry Pi-Image veröffentlicht.
https://en.opensuse.org/HCL:Raspberry_Pi3
quelle
Ich habe beim Ausführen meiner Android-Benchmarks auf einem Tablet mit einem 1,3-GHz-ARM-Cortex-A53 einige signifikante Leistungssteigerungen bei 64-Bit-Kompilierungen gegenüber 32-Bit festgestellt. Die neuesten werden über Eclipse kompiliert und erkennen zur Laufzeit, ob es sich bei der CPU um ARM, Intel oder MIPS handelt, und dann um eine 32-Bit- oder 64-Bit-Architektur.
Bei früheren Windows-Kompilierungen für Intel-CPUs konnte die 64-Bit-Arbeit aufgrund der Verwendung von SIMD-Anweisungen vom Typ SSE viel schneller als 32-Bit sein. Der spätere 32-Bit-Compiler mit Abwärtsinkompatibilität erzeugt jedoch praktisch den gleichen Code und eine ähnliche Geschwindigkeit.
Details zu den Android-Benchmarks finden Sie im Folgenden. Sie zeigen 32-Bit- und 64-Bit-Ergebnisse vom A53 und über einen 1,2-GHz-Cortex-A9. Am Ende finden Sie einige Assemblycode-Listen, die verschiedene verwendete Anweisungen identifizieren. Unten finden Sie eine Zusammenfassung der Ergebnisse.
http://www.roylongbottom.org.uk/android%2064%20bit%20benchmarks.htm#anchorStart
Whetstone Benchmark - (winzige Schleifen) ähnliche Leistung, wobei die Gesamtbewertung durch die Zusammenstellung des Tests mit EXP-Funktionen beeinflusst wird.
Dhrystone Benchmark - neueste MIPS / MHz 1,09 32 Bit, 1,96 64 Bit, 1,10 A9 - möglicherweise 64 Bit überoptimiert.
Linpack Benchmark - (N = 100) 64-Bit-DP 1,97 x schneller, SP 2,67 x - siehe Baugruppencode.
Livermore Loops - (24 Kernel) durchschnittlich 1,5-mal schneller, Bereich 0,8 bis 7,9-mal
L1 / L2-Cache- und RAM-Tests
MemSpeed - Float- und Integer-Berechnungen - erhält Caches 2,2 x, RAM 1,5 x.
BusSpeed - Integer-Daten-Streaming und Burst-Lesen - Streaming 2,0 x L1, 1,5 x L2, 1,25 x RAM - Bursts 2,6 x L1, ähnlich L2 und RAM.
RandMem - serielles und zufälliges Lesen und Lesen / Schreiben aus derselben komplexen Indexierungsstruktur - im Allgemeinen etwas schneller beim Lesen, aber ähnlich / langsamer beim Lesen / Schreiben.
Dann gibt es MP-Versionen der oben genannten und Versuche, maximale SP-MFLOPS (MP-MFLOPS) mit maximal 4 Kernen von 2,7 GFLOPS 32 Bit und 5,5 GFLOPS 64 Bit zu messen. Es gibt auch eine Version mit NEON-Intrinsics, bei der der 64-Bit-Compiler alternative Anweisungen mit bis zu 10,8 GFLOPS gegenüber 5,7 mit 32 Bit generiert - siehe Assembly-Liste. Ich habe auch Versionen dieser Benchmarks für Windows 10 und Android Intel Atom-basierte Tablets - 64-Bit- und 32-Bit-Windows, 32-Bit-Android - Voll 64-Bit nicht vollständig implementiert - 64-Bit-Linux-Kernel, aber 32-Bit-Android.
http://www.roylongbottom.org.uk/android%20benchmarks.htm
Außerdem habe ich 32-Bit- und 64-Bit-Linux / Intel-Versionen.
Roy Longbottom
quelle
So kompiliere ich den RPI3 Aarch64-Kernel:
Zunächst benötigen Sie Linaro aarch64: https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-linux-gnu/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu.tar .xz
Dekomprimieren, irgendwo platzieren, Beispiel: /opt/toolchains/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu
Hier ist mein Skript zum Herunterladen von Firmware, VC, Kernelquelle und zum Kompilieren des Kernels mit Modulen. Ich verwende dieses Skript für meinen Jenkins-Server, um auszuwählen, was Sie benötigen:
Jetzt entpacken Sie einfach die BOOT.tar.gz und legen Sie sie auf Ihre SD-Karte.
WICHTIG : Sie müssen setzen arm_control = 0x200 in config.txt setzen, damit der AARCH64-Kernel gestartet wird
Oder Sie können einfach mein vorgefertigtes auf meinen Jenkins verwenden: https://jenkins.sandpox.org/job/RPI3_KERNEL_AARCH64/
quelle
Bis heute scheinen Fedora und Archlinux gut unterstützt zu werden.
Wenn Sie den Arch-Weg gehen, wird dies Ihnen helfen, das Image zu erstellen (für mich unter Linux / RPI3 war es das
make linux
) und dies wird Ihnen helfen, WLAN zu starten.Wenn Sie sicher sein müssen, welche Himbeere Sie haben, verwenden Sie diese Anleitung .
Auch
arm_control=0x200
ist veraltet undarm_64bit
sollte stattdessen in verwendet werden/boot/config.txt
.quelle