Pratica 05
Pratica 05
29 de setembro de 2022
Universidade Federal do Ceará Campus Quixadá
• Obter Buildroot
• Faça a construção
1 Baixando o Buildroot
Já que vamos fazer o desenvolvimento do Buildroot, vamos clonar o código-fonte do Buil-
droot de seu repositório Git:
$ git clone https://git.buildroot.net/buildroot
Crie um diretório buildroot e entre nele. Vamos iniciar um branch a partir da versão 2022.08
do Buildroot.
$ git checkout -b bootlin 2022.08
2 Configurando o Buildroot
Se você olhar em configs/, verá que existe um arquivo chamado beaglebone_defconfig, que
é um arquivo de configuração Buildroot pronto para usar para construir um sistema para a plata-
forma BeagleBone Black. No entanto, como queremos aprender sobre o Buildroot, iniciaremos
nossa própria configuração do zero. Inicie a configuração do Buildroot:
$ make menconfig
Claro, você pode experimentar as outras ferramentas de configuração nconfig, xconfig ou
config. Agora vamos fazer a configuração:
– Os outros parâmetros podem ser deixados com seu valor padrão: em ARM instruc-
tion set o padrão é usar ARM (podemos usar o Conjunto de instruções Thumb-2
para código um pouco mais compacto) e ELF é o único formato binário de destino
disponível em Target Binary Format.
• Menu Build options
– Não temos nada de especial para mudar neste menu, mas aproveite esta oportuni-
dade para visitar este menu e ver as opções disponíveis. Cada opção tem um texto
de ajuda que informa mais sobre a opção.
• Menu Toolchain
– Por padrão, o Buildroot cria sua próprio toolchain. Isso leva um pouco de tempo e,
para plataformas ARMv7, há um toolchain pré-criado fornecido pelo ARM. Seleci-
one External toolchain em Toolchain type (). No entanto, não hesite em examinar
as opções.
– Selecione Arm ARM 2021.07 em Toolchain (). O Buildroot pode usar toolchain
predefinidas, como as fornecidas pela ARM, ou toolchain personalizadas (baixadas
de um determinado local ou pré-instaladas em sua máquina).
• Menu System configuration
– Para nosso sistema básico, não precisamos de muita configuração de sistema perso-
nalizada no momento. Portanto, reserve um tempo para examinar as opções disponí-
veis e coloque alguns valores personalizados para o hostname do sistema, o banner
do sistema e a senha de root.
• Menu Kernel
– Obviamente, precisamos de um kernel para rodar em nossa plataforma, então habi-
lite a opção Linux kernel.
– Por padrão, é usada a versão mais recente do kernel disponível no momento do lan-
çamento do Buildroot. No nosso caso, queremos usar a mesma versão do git usado
anteriormente. Portanto, selecione Custom Git repository no Kernel version e
insira o link em URL of custom repository.
– Agora, precisamos definir qual configuração de kernel usar. Começaremos usando
uma configuração padrão fornecida nos fontes do kernel, chamada defconfig. Na
prática, para esta plataforma defina o arquivo de configuração em Defconfig name.
– O Kernel binary format é a próxima opção. Como vamos usar um gerenciador de
inicialização U-Boot recente, manteremos o padrão do formato uImage.
– No ARM, todas as plataformas modernas agora usam Device Tree para descrever o
hardware. O BeagleBone Black está nessa situação, então você terá que habilitar a
opção Build a Device Tree Blob e definir o nome em In-tree Device Tree Source
file names. Mesmo que falar sobre Device Tree esteja além do escopo desta prática,
sinta-se à vontade para dar uma olhada neste arquivo para ver o que ele contém.
– A configuração do kernel para esta plataforma requer que o OpenSSL esteja dis-
ponível na máquina host. Para evitar depender dos arquivos de desenvolvimento
OpenSSL instalados pela distribuição Linux de sua máquina host, o Buildroot pode
construir sua própria versão: basta habilitar a opção Needs host OpenSSL.
– Este é provavelmente o menu mais importante, pois é onde você pode selecionar
2800+ pacotes Buildroot disponíveis, quais devem ser compilados e instalados em
seu sistema. Para nosso sistema básico, habilitar o BusyBox é suficiente e já vem
habilitado por padrão, mas fique à vontade para explorar os pacotes disponíveis.
– Por enquanto, mantenha apenas a opção tar the root filesystem habilitada. Cuida-
remos separadamente de gravar o sistema de arquivos no SDcard.
• Menu Bootloaders.
3 Build
Você poderia simplesmente executar make, mas como gostaríamos de manter um log da
compilação, redirecionaremos as saídas padrão e de erro para um arquivo, bem como o terminal
usando o comando tee:
$ make 2>&1 | tee build.log
Enquanto a compilação estiver em andamento, consulte as seções a seguir para preparar o
que será necessário para testar os resultados da compilação.
4 Gravando o Sistema
Depois que o Buildroot terminar de construir o sistema, é hora de colocá-lo no cartão SD:
5 Atividades Práticas
pratica 1
Personalize o seu sistema no buildroot (ex. login, hostname, etc) para realizar uma inici-
alização proprietária e caso não tenha servidor ssh rodando inclua no sistema.
pratica 2
A partir do servidor HTTP e da página WEB criados, acesse um script em shell ou python
para Ligar ou desligar os 4 LEDs da placa via uma página WEB (você pode usar CGI ou
PHP, ou node).
pratica 3
Gerar um sistema completo com kernel, device tree, sistema de arquivo e Aplicação que
façam os 4 LEDs piscarem, e coloque o seu App e todos os serviços (ssh, htttp) para
iniciarem no init.d do sistema Linux.