Abo
  • Services:
Anzeige
Die CPU des Raspberry Pi 3 unterstützt Aarch64.
Die CPU des Raspberry Pi 3 unterstützt Aarch64. (Bild: Martin Wolf/Golem.de)

Quellen finden und selber einen Kernel bauen

Spannend wird es, einen eigenen, aktuellen 64-Bit-Kernel zu kompilieren. Auf dem Raspberry Pi 3 selbst ist das ein zeitraubender Vorgang. Schneller geht es als Cross-Entwicklung von einem PC aus. Auf einem aktuellen Ubuntu sind die dazu benötigten Cross-Entwicklungswerkzeuge als Paket gcc-aarch64-linux-gnu problemlos zu installieren.

Der Quellcode des Linux-Kernels ist ohnehin fürs Cross-Übersetzen vorbereitet. Dafür nötig sind die Kernelquellen aus dem Raspberry-Pi-Archiv, die sich zwar nur wenig vom Vanilla-Linux-Kernel unterscheiden, aber der Garant fürs fehlerfreie Übersetzen sind. Insbesondere bringt das Archiv der Foundation die für 64 Bit benötigte Standard-Konfiguration bcmrpi3_defconfig mit, die dem Original noch fehlt. Der Quellcode selbst lässt sich beispielsweise im Verzeichnisbaum mit Hilfe von Git ablegen. Das Git-Archiv enthält alle Kernelversionen, sodass der Entwickler noch lokal die aktuelle Kernel-Version 4.8 auschecken muss.

Anzeige

Ist der Kernel ausgecheckt, kann es losgehen. Als Erstes sind zwei Environment-Variablen zu setzen, die das Kernel-Buildsystem anweisen, nicht den Hostcompiler gcc, sondern eben den Crosscompiler aarch64-linux-gnu-gcc zu verwenden. Vor dem Start der Generierung ist der Kernel für den Raspberry Pi 3 zu konfigurieren. Ein make -j 4 Image dtbs modules startet den Build. Die Option -j 4 erlaubt es, Make bis zu vier Prozesse parallel laufen zu lassen, oder wahlweise eben auch mehr.

Das Übersetzen des Kernels, der Module und des Device Tree kann schon mal - abhängig von der eingesetzten Hardware - ein Stündchen dauern. Die genauen Kommandos vom Download des Quellcodes bis zum Generieren aller Komponenten sind im Folgenden mit Kommentaren versehen zusammengefasst.

  1. # Cross-Compiler in Ubuntu installieren
  2. #
  3. sudo apt install gcc-aarch64-linux-gnu
  4.  
  5. # Kernelquellcode fuer den Raspberry Pi downloaden
  6. #
  7. mkdir -p arm/
  8. cd arm
  9. git clone https://github.com/raspberrypi/linux.git
  10. cd linux
  11.  
  12. # im Git-Archiv vorhandene Versionen anzeigen
  13. # und eine aktuelle Version auschecken
  14.  
  15. git branch -a
  16. git checkout rpi-4.8.y
  17.  
  18. # Cross-Generierung des Kernels
  19. #
  20. export CROSS_COMPILE=aarch64-linux-gnu-
  21. export ARCH=arm64
  22. make bcmrpi3_defconfig
  23. make -j 4 Image dtbs modules

Die Installation von Kernel, Modulen und Device Tree wird etwas komplizierter. Als Grundlage nimmt diese Anleitung eine mit dem vorgestellten Image präparierte Micro-SD-Karte an, die in den Entwicklungsrechner gesteckt wird. Ein auf dem Entwicklungs-PC laufendes Ubuntu wird die beiden Partitionen der Karte Boot und Root automatisch unterhalb von /media/$Username/ einhängen.

  • Die Variante für Ungeduldige: Einfach neuen Kernel kopieren und fertig.
  • Mit dem Standard Raspbian verleugnet der Mini-Rechner seine moderne Architektur und tarnt sich als 32-Bit-SoC.
  • Anders als offiziell vorgesehen, lässt sich der Raspberry Pi 3 auch als 64-Bit-System nutzen.
Die Variante für Ungeduldige: Einfach neuen Kernel kopieren und fertig.

Zum Einspielen des eigenen Kernels bieten sich zwei Möglichkeiten an: Die Variante für Ungeduldige und die professionelle Variante. Ungeduldige kopieren nur den selbst kompilierten Kernel arch/arm64/boot/Image auf die Bootpartition. Das auf der Bootpartition befindliche U-Boot-Skript erwartet ihn nämlich dort unter dem Namen Image, sodass keine Änderung der Konfiguration notwendig ist. Wer auf Nummer sicher gehen will, rettet den auf der SD-Karte unter gleichem Namen liegenden 64-Bit-Kernel, bevor er ihn mit dem eigenen Kernel überschreibt. Für einen ersten Test eignet sich der auf der SD-Karte ebenfalls schon vorhandene Device Tree. Nach dem Kopieren des Kernels wird die SD-Karte ausgehängt und in den Raspberry Pi gesteckt. Mit Strom versorgt sollte dieser nun den selbst generierten Kernel starten.

 Willkommen im U-Boot und Geräte-BaumProfis konfigurieren U-Boot 

eye home zur Startseite
tom321 28. Dez 2016

Guten Abend, das Ergebnis von : export CROSS_COMPILE=aarch64-linux-gnu- export ARCH...

sg-1 20. Dez 2016

dem direkt verlinkten image? Beim Klick darauf wird direkt de download gestartet. dabei...

The Troll 23. Nov 2016

Man kann auch einfach SUSE Linux Enterprise for Pi3 nehmen https://www.suse.com...

FreiGeistler 23. Nov 2016

Erinnert mich an die Probleme mit Android. Könnte Android (theoretisch) auch Device Tree...

pi314 23. Nov 2016

Es gibt auch ein "richtiges" 64-Bit-System für den pi: Den SUSE Linux Enterprise Server...



Anzeige

Stellenmarkt
  1. Fidor Solutions AG, München
  2. operational services GmbH & Co. KG, Berlin, Dresden, Frankfurt am Main, München
  3. Robert Bosch GmbH, Abstatt
  4. Schaeffler Technologies AG & Co. KG, Herzogenaurach


Anzeige
Top-Angebote
  1. (u. a. ASUS VivoBook 15,6" FHD i3/8 GB/256 GB SSD für 333,00€)
  2. (u. a. Iiyama ProLite 25" FHD mit IPS-Panel für 149€ statt 171€ im Vergleich)
  3. (u. a. Das Boot, Memento, Ohne Limit und No Escape)

Folgen Sie uns
       


  1. Apple

    Öffentliche Beta von iOS 11 erschienen

  2. SNES Classic Mini

    Nintendo bringt 20 Klassiker und ein neues Spiel

  3. Wahlprogramm

    SPD will 90 Prozent der Gebäude mit Gigabit-Netzen versorgen

  4. Erziehung

    Erst schriftliche Einwilligung, dann Whatsapp für Kinder

  5. Grafikkarte

    Sapphire bringt Radeon RX 470 für Mining

  6. Betrug

    FTTH-Betreiber wehren sich gegen Glasfaser-Werbelügen

  7. Gamescom

    Mehr Fläche, mehr Merkel und mehr Andrang

  8. Anki Cozmo ausprobiert

    Niedlicher Programmieren lernen und spielen

  9. Hyperkonvergenz

    Red Hat präsentiert freie hyperkonvergente Infrastruktur

  10. Deutsche Telekom

    Narrowband-IoT-Servicepakete ab 200 Euro



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Skull & Bones angespielt: Frischer Wind für die Segel
Skull & Bones angespielt
Frischer Wind für die Segel
  1. The Frozen Lands Eisige Erweiterung für Horizon Zero Dawn vorgestellt
  2. Rennspiele Thrustmasters T-GT-Lenkrad kostet 800 Euro
  3. Call of Duty WW2 angespielt Höllenfeuer und kleine Sprünge

Sony Xperia XZ Premium im Test: Taschenspiegel mit übertrieben gutem Display
Sony Xperia XZ Premium im Test
Taschenspiegel mit übertrieben gutem Display
  1. Keine Entschädigung Gericht sieht mobiles Internet nicht als lebenswichtig an
  2. LTE Deutsche Telekom führt HD Voice Plus ein
  3. Datenrate Vodafone bietet im LTE-Netz 500 MBit/s

1Sheeld für Arduino angetestet: Sensor-Platine hat keine Sensoren und liefert doch Daten
1Sheeld für Arduino angetestet
Sensor-Platine hat keine Sensoren und liefert doch Daten
  1. Calliope Mini im Test Neuland lernt programmieren
  2. Arduino Cinque RISC-V-Prozessor und ESP32 auf einem Board vereint
  3. MKRFOX1200 Neues Arduino-Board erscheint mit kostenlosem Datentarif

  1. Re: Ob das Bestand hat?

    Apfelbrot | 04:37

  2. Bla Bla Bla...

    maverick1977 | 04:33

  3. Alternative: Fire TV Stick, RetroArch, 8Bitdo SNES30

    fk4711 | 03:37

  4. Re: Folge fehlender Freizeit

    redwolf | 03:28

  5. Re: Einseitig..

    plutoniumsulfat | 03:21


  1. 00:22

  2. 19:30

  3. 18:32

  4. 18:15

  5. 18:03

  6. 17:47

  7. 17:29

  8. 17:00


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel