Wie übersetze ich den Kernel auf einem Ubuntu-Host?

16

Ich würde gerne mehr darüber erfahren, wie der Kernel funktioniert. Ein Teil davon ist, es selbst zu kompilieren. Wie übersetze ich den Kernel auf einem Ubuntu-Host?

Alex Chamberlain
quelle

Antworten:

24

Vorbereitung

Zunächst müssen die erforderlichen Voraussetzungen installiert werden. Ich nehme an, Sie haben sudoZugang.

sudo apt-get install git ncurses-dev make gcc-arm-linux-gnueabi
  • git ist das Versionskontrollsystem, das vom Linux-Kernel-Team verwendet wird.
  • ncursesist eine Bibliothek zum Erstellen von Konsolenmenüs. Es ist notwendig für menuconfig.
  • make Läuft die Zusammenstellung für uns.
  • gcc-arm-linux-gnueabi ist der Cross-Compiler.

Als nächstes müssen wir die Quelle abrufen und ausführen:

git clone https://github.com/raspberrypi/linux raspberrypi-linux
cd raspberrypi-linux

Dadurch wird der Quellcode in ein genanntes Verzeichnis geklont raspberrypi-linuxund in dieses geändert.

Zusammenstellung

Wir müssen zuerst die Konfigurationsdatei durch Ausführen verschieben

cp arch/arm/configs/bcmrpi_cutdown_defconfig .config

Konfigurieren Sie dann den Kernel-Build

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- oldconfig

Optional: Passen Sie den Build mit menuconfig an

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- menuconfig

Führen Sie dann die Kompilierung aus

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
Verweise
Alex Chamberlain
quelle
1
Vielen Dank für die Bereitstellung einer Alternative zur Verwendung von Crosstool-ng .
EarthMeLon
In meinem Fall ist CROSS_COMPILE nur ein Präfix, daher sollte das Folgende ausreichen (ohne gcc am Ende): make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
danger89
0

Offizielle Dokumentation

https://www.raspberrypi.org/documentation/linux/kernel/building.md ( GitHub )

Ich würde empfehlen, dass Sie einfach die dortigen Schritte befolgen oder eine Pull-Anfrage senden, wenn etwas veraltet oder nicht klar genug ist: Diese Anweisungen sind mit größter Wahrscheinlichkeit korrekt und aktuell, da sie Teil der offiziellen Dokumentation der sind Projekt.

Ciro Santilli ist ein Schauspieler
quelle