Como compilar o kernel em um host Ubuntu?

16

Eu gostaria de entender mais sobre como o kernel funciona. Parte disso é compilá-lo eu mesmo. Como compilar o Kernel em um host Ubuntu?

Alex Chamberlain
fonte

Respostas:

24

Preparação

Primeiro, precisamos instalar os pré-requisitos necessários. Presumo que você tenha sudoacesso.

sudo apt-get install git ncurses-dev make gcc-arm-linux-gnueabi
  • git é o sistema de controle de versão usado pela equipe do kernel do Linux.
  • ncursesé uma biblioteca para criar menus do console. É necessário para menuconfig.
  • make executa a compilação para nós.
  • gcc-arm-linux-gnueabi é o compilador cruzado.

Em seguida, precisamos recuperar a fonte, execute:

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

Isso clonará o código-fonte em um diretório chamado raspberrypi-linuxe mudará para ele.

Compilação

Primeiro precisamos mover o arquivo de configuração executando

cp arch/arm/configs/bcmrpi_cutdown_defconfig .config

Em seguida, configure a compilação do kernel

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

Opcional: Customize a construção usando menuconfig

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

Em seguida, execute a compilação

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
Referências
Alex Chamberlain
fonte
1
Muito obrigado por fornecer uma alternativa ao uso do crosstool-ng .
earthmeLon
No meu caso, CROSS_COMPILE é apenas um prefixo, portanto, o seguinte deve ser suficiente (sem o gcc no final): make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
danger89 28/06
0

Documentação oficial

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

Eu recomendo que você siga as etapas aqui ou envie uma solicitação pull se algo ficar desatualizado ou não for claro o suficiente: essas instruções são as mais prováveis ​​de serem corretas e atualizadas, pois fazem parte da documentação oficial do projeto.

Ciro Santilli adicionou uma nova foto
fonte