Pular para conteúdo

Buildando o Linux

qemu

Image by OpenClipart-Vectors from Pixabay

Introdução

Com o intuito de dar uma sequência ao post Habilitando o env.txt com tfpt, vamos seguindo com a build do kernel Linux para a beaglebone. Atualmente tem suas peculiaridades devido sua arquitetura de 32 bits (64 bits se tornou padrão em SBCs). Muitos outros artigos podem ser encontrados sobre isso, mas sua grande maioria são antigos e de lá pra cá algumas coisas mudaram.

Setup

Para tentar tornar os passos reproduzíveis, segue o setup que eu utilizei para a build:

Download

Basta utilizar o comando:

git clone https://github.com/torvalds/linux.git -b v6.1

Build

Aviso

Não esqueça de adicionar o caminho dos binários da toolchain nas variáveis de ambiente. No meu caso:
export PATH=/home/joao/Documents/2.Linux/toolchains/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin:$PATH

O processo de build pode consistir em 3 passos básicos.

Selecionando o defconfig:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- -j16 O=out/ omap2plus_defconfig

Habilitando drivers com o menuconfig:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- -j16 O=out/ menuconfig

Finalmente a build em si:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- -j16 O=out/

Os Binários

Uma vez que o processo de build finalizar, eles estarão disponíveis dentro dos caminhos:

out/arch/arm/boot
out/arch/arm/boot/dts
Os binários de interesse são out/arch/arm/boot/zImage e out/arch/arm/boot/dts/am335x-boneblack.dtb. Basta copiá-los para dentro da pasta onde fica o arquivo env.txt no servidor de tftp ou na partição boot do cartão SD.

Conclusão

Estamos buildando uma das versão mais recentes do Kernel Linux atualmente. Dando uma sobre vida maior a beaglebone, o que torna ela ainda muito útil para o aprendizado de sistemas embarcados (lembrando que ela é open hardware)

Comentários