Eu gostaria de entender mais sobre como o kernel funciona. Parte disso é compilá-lo eu mesmo. Como compilar o Kernel em um host Ubuntu?
Eu gostaria de entender mais sobre como o kernel funciona. Parte disso é compilá-lo eu mesmo. Como compilar o Kernel em um host Ubuntu?
Respostas:
Primeiro, precisamos instalar os pré-requisitos necessários. Presumo que você tenha sudo
acesso.
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-linux
e mudará para ele.
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
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
Acho que Alex está certo, mas o gcc-arm-linux-gnueabi é compilado para cpus de braço sem unidade de ponto flutuante de hardware. Você pode encontrar um compilador cruzado com suporte armhf em: https://github.com/raspberrypi/tools e um bom tutorial para começar aqui: http://hertaville.com/2012/09/28/development-environment- raspberry-pi-cross-compiler /
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.