Jag vill förstå mer om hur kärnan fungerar. En del av detta är att sammanställa det själv. Hur kors kompilerar jag kärnan på en Ubuntu-värd?
Jag vill förstå mer om hur kärnan fungerar. En del av detta är att sammanställa det själv. Hur kors kompilerar jag kärnan på en Ubuntu-värd?
Först måste vi installera de nödvändiga förutsättningarna. Jag antar att du har sudo
åtkomst.
sudo apt-get install git ncurses-dev make gcc-arm-linux-gnueabi
git
är det versionskontrollsystem som används av Linux-kärnteamet. ncurses
är ett bibliotek för byggkonsolmenyer. Det är nödvändigt för menuconfig
. make
kör sammanställningen för oss. gcc-arm-linux- gnueabi
är tvärkompilatorn. Därefter måste vi hämta källan, kör:
git clone https: // github .com / raspberrypi / linux raspberrypi-linuxcd raspberrypi-linux
Detta kommer att klona källkoden till en katalog som heter raspberrypi-linux
och ändra till den.
Vi måste först flytta konfigurationsfilen genom att köra
cp arch / arm / configs / bcmrpi_cutdown_defconfig .config
Konfigurera sedan kärnbyggnaden
gör ARCH = arm CROSS_COMPILE = / usr / bin / arm-linux-gnueabi- oldconfig
Valfritt: Anpassa build med menuconfig
gör ARCH = arm CROSS_COMPILE = / usr / bin / arm-linux-gnueabi- menuconfig
Kör sedan kompileringen
gör ARCH = arm CROSS_COMPILE = / usr / bin / arm-linux-gnueabi- -k
Referenser
Jag tror att Alex har rätt men gcc-arm-linux-gnueabi är kompilerad för arm-cpus utan flytande enhet för hårdvara. Du hittar en tvärkompilator med armhf-support på: https://github.com/raspberrypi/tools och en bra handledning till att börja med här: http://hertaville.com/ 2012/09/28 / utvecklingsmiljö-hallon-pi-kors-kompilator /
Officiell dokumentation
https://www.raspberrypi.org/documentation/linux/kernel/building.md ( GitHub)
Jag rekommenderar att du bara följer stegen där, eller skickar en pull-begäran om något blir föråldrat eller inte är tillräckligt tydligt: dessa instruktioner är de mest troliga att de är korrekta och uppåt hittills eftersom de är en del av den officiella dokumentationen för projektet.