Come posso compilare in modo incrociato il kernel su un host Ubuntu?


16

Vorrei capire di più su come funziona il kernel. Parte di questo è compilarlo da solo. Come posso compilare in modo incrociato il kernel su un host Ubuntu?

Risposte:


24

Preparazione

Innanzitutto, dobbiamo installare i prerequisiti richiesti. Presumo che tu abbia sudoaccesso.

sudo apt-get install git ncurses-dev make gcc-arm-linux-gnueabi
  • git è il sistema di controllo della versione utilizzato dal team del kernel Linux.
  • ncursesè una libreria per i menu della console di generazione. È necessario per menuconfig.
  • make esegue la compilation per noi.
  • gcc-arm-linux-gnueabi è il compilatore incrociato.

Successivamente, dobbiamo recuperare la fonte, eseguire:

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

Questo clonerà il codice sorgente in una directory chiamata raspberrypi-linuxe cambierà in esso.

Compilazione

Per prima cosa dobbiamo spostare il file di configurazione eseguendo

cp arch/arm/configs/bcmrpi_cutdown_defconfig .config

Quindi configurare la build del kernel

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

Opzionale: Personalizza la build usando menuconfig

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

Quindi eseguire la compilazione

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
Riferimenti

1
Grazie mille per aver fornito un'alternativa all'utilizzo di crosstool-ng .
earthmeLon

Nel mio caso CROSS_COMPILE è solo un prefisso, quindi il seguente dovrebbe essere sufficiente (senza gcc alla fine): make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
danger89


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.