Pular para conteúdo

Buildando BusyBox

qemu

Image by Busybox from Busybox

Introdução

Seguindo com os tutoriais Habilitando o env.txt com tfpt e Buildando o Linux, vamos compilar o busybox para termos um Root File System (RFS) mínimo. Para entendermos o que realmente é necessário para termos um distro Linux.

Setup

Download

Para baixar o busybox podemos utilizar o comando:

wget https://busybox.net/downloads/busybox-1.33.2.tar.bz2

Para extrair:

tar -xvjf busybox-1.33.2.tar.bz2

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/4.Busybox/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/ defconfig

Habilitando recursos com o menuconfig:

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

Dica

Ativar a compilação das bibliotecas de forma estática:
Settings -> Build static binary (no shared libs)

Finalmente a build em si:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- -j16 O=out/ CONFIG_PREFIX=$PWD/../RFS install

O comando acima irá compilar o busybox e depois copiar os binários e hierarquia de pastas para o diretório passado na variável CONFIG_PREFIX

Conclusão

O busybox é o canivete suíço de sistemas embarcados, ele é muito utilizado em roteadores (com as devidas modificações). Além disso o grub também utiliza o busybox.

Comentários