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?

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

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


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.