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?
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:
Zunächst müssen die erforderlichen Voraussetzungen installiert werden. Ich nehme an, Sie haben sudo
Zugang.
sudo apt-get install git ncurses-dev make gcc-arm-linux-gnueabi
git
ist das Versionskontrollsystem, das vom Linux-Kernel-Team verwendet wird.ncurses
ist 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-linux
und in dieses geändert.
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
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
Ich denke, Alex hat recht, aber das gcc-arm-linux-gnueabi ist für Arm-CPUs ohne Hardware-Gleitkomma-Einheit kompiliert. Einen Cross-Compiler mit armhf-Unterstützung finden Sie unter: https://github.com/raspberrypi/tools und ein gutes Tutorial für den Anfang finden Sie hier: http://hertaville.com/2012/09/28/development-environment- Himbeer-Pi-Cross-Compiler /
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.