Jak skompilować jądro na hoście Ubuntu?

16

Chciałbym dowiedzieć się więcej o tym, jak działa jądro. Częścią tego jest samodzielne skompilowanie. Jak skompilować jądro na hoście Ubuntu?

Alex Chamberlain
źródło

Odpowiedzi:

24

Przygotowanie

Najpierw musimy zainstalować wymagane wymagania wstępne. Zakładam, że masz sudodostęp.

sudo apt-get install git ncurses-dev make gcc-arm-linux-gnueabi
  • git to system kontroli wersji używany przez zespół jądra Linuksa.
  • ncursesto biblioteka dla menu konsoli kompilacji. Jest to konieczne dla menuconfig.
  • make uruchamia dla nas kompilację.
  • gcc-arm-linux-gnueabi jest kompilatorem krzyżowym.

Następnie musimy pobrać źródło, uruchomić:

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

Spowoduje to sklonowanie kodu źródłowego do katalogu o nazwie raspberrypi-linuxi przejście do niego.

Kompilacja

Najpierw musimy przenieść plik konfiguracyjny, uruchamiając

cp arch/arm/configs/bcmrpi_cutdown_defconfig .config

Następnie skonfiguruj kompilację jądra

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

Opcjonalne: Dostosuj kompilację za pomocą menuconfig

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

Następnie uruchom kompilację

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
Bibliografia
Alex Chamberlain
źródło
1
Dziękujemy bardzo za zapewnienie alternatywy dla korzystania z narzędzia crosstool-ng .
earthmeLon
W moim przypadku CROSS_COMPILE to tylko przedrostek, więc powinno wystarczyć następujące (bez gcc na końcu): make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
niebezpieczeństwo89
0

Oficjalna dokumentacja

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

Zalecam, aby po prostu postępować zgodnie z instrukcjami tam zawartymi lub wysłać żądanie ściągnięcia, jeśli coś stanie się nieaktualne lub nie jest wystarczająco jasne: instrukcje te najprawdopodobniej są poprawne i aktualne, ponieważ są częścią oficjalnej dokumentacji projekt.

Ciro Santilli
źródło