Buildroot para reTerminal
![]()
Introdução
Buildroot é uma ferramenta fácil de usar que simplifica e automatiza o processo de construção de um sistema Linux completo para um sistema embarcado, usando compilação cruzada.
Para isso, o Buildroot é capaz de gerar uma toolchain de compilação cruzada, um sistema de arquivos raiz, uma imagem do kernel Linux e um bootloader para o seu alvo. O Buildroot pode ser usado para qualquer combinação dessas opções, de forma independente (por exemplo, você pode usar uma toolchain de compilação cruzada existente e construir apenas o seu sistema de arquivos raiz com o Buildroot).
Ele tem uma estrutura simples que o torna fácil de entender e estender. Ele depende apenas da conhecida linguagem Makefile. Buildroot é um projeto de código aberto e muitos desenvolvedores contribuem para ele diariamente.
Seguindo o guia abaixo, você poderá construir a sua própria imagem de sistema do reTerminal usando o Buildroot. Então vamos começar!
Compilar o Código-Fonte do Buildroot
Compilação manual na máquina local
Agora vamos passar para a compilação manual da imagem do sistema para o reTerminal usando o Buildroot.
nota: Este guia foi escrito após testes em um PC host com Ubuntu 20.04 instalado. No entanto, ele funcionará para outros sistemas Linux.
- Passo 1. Prepare o ambiente de desenvolvimento no PC host instalando os seguintes pacotes (git, gcc e make)
sudo apt update
sudo apt install git
sudo apt install build-essential
Nota: Se você já tiver os pacotes acima instalados, pode pular este passo.
- Passo 2. Clone o seguinte repositório do GitHub
git clone --depth=1 https://github.com/Seeed-Studio/seeed-linux-buildroot.git -b master
- Passo 3. Navegue até o diretório seeed-linux-buildroot
cd seeed-linux-buildroot
Compilar com a configuração padrão para reTerminal
Digite o seguinte para iniciar a compilação com a configuração padrão do reTerminal
make reTerminal_64_defconfig
make
Compilar com a sua própria configuração para reTerminal
Digite o seguinte para instalar o pacote necessário para compilar com a sua própria configuração
sudo apt install libncurses-dev
- Passo 5. Digite o seguinte para abrir a janela de configuração do buildroot
make menuconfig

Você pode usar esta janela de configuração e navegar pelas opções disponíveis e personalizar a imagem de acordo com suas necessidades. Além disso, se você clicar em Save e Exit nesta janela sem fazer nenhuma alteração, a configuração padrão do reTerminal será carregada.
Encontrar a imagem compilada
Quando a compilação for concluída com sucesso, navegue até seeed-linux-buildroot/output/images e você encontrará a imagem compilada como sdcard.img

Baixar imagem já compilada
Se você quiser baixar uma imagem de sistema do reTerminal que já está compilada usando o Buildroot, pode seguir os passos abaixo.
-
Passo 1. Abra este link para entrar na página Actions do repositório GitHub seeed-linux-buildroot
-
Passo 2. Clique no workflow mais recente Seeed reTerminal buildroot

- Passo 3. Em Artifacts, clique em buildroot deploy para iniciar o download da imagem

Nota: Após baixar a imagem, extraia a imagem para obter o arquivo sdcard.img
Gravar a imagem no reTerminal
Agora vamos prosseguir para gravar a imagem na eMMC do CM4 no reTerminal.
Siga os passos neste wiki e preste atenção ao seguinte passo:
Nota: Quando você abrir o Raspberry Pi Imager, clique em CHOOSE OS, selecione Use custom e escolha o arquivo sdcard.img baixado.

Primeiro boot no reTerminal
Depois de gravarmos a imagem do sistema no reTerminal, ligue o reTerminal. Aqui você verá o log do kernel aparecer no LCD do reTerminal e, por fim, será aberto um aplicativo de demonstração feito usando Qt.
O tempo de inicialização da imagem de sistema padrão é de cerca de 30 segundos

Analisar a imagem Buildroot
Como mencionado anteriormente, o Buildroot é uma ferramenta muito poderosa, pode depender de bibliotecas e ferramentas de terceiros e pode construir rapidamente o que precisamos. Se você quiser entender o tempo de compilação do Buildroot, dependências, tamanho dos recursos consumidos pela compilação e assim por diante, é muito inconveniente verificar isso através do código. No entanto, o Buildroot fornece ferramentas de análise visual para analisar o que foi mencionado acima e precisamos apenas de alguns comandos simples para usá-las.
Comece instalando os seguintes pacotes
sudo apt install python3-matplotlib python3-numpy
Gerar diagramas de dependência
Uma das tarefas do Buildroot é entender as dependências entre pacotes e garantir que eles sejam construídos na ordem correta. Essas dependências às vezes podem ser complexas e, para um determinado sistema, muitas vezes não é fácil entender por que um pacote ou outro foi introduzido pelo Buildroot e construído com sucesso. Para ajudar a entender as dependências e compreender melhor o papel dos diferentes componentes em sistemas Linux embarcados, o Buildroot é capaz de gerar diagramas de dependência (em formato PDF)
- Passo 1. Instale o seguinte pacote
sudo apt install graphviz
- Passo 2. Gerar diagramas de dependência
make graph-depends

Após os comandos acima, os diagramas de dependência serão gerados em seeed-linux-buildroot > output > graphs como:
- graph-depends.pdf
- graph-depends.dot
Nota: Clique na imagem acima para ver uma versão ampliada
Gerar análise do tamanho dos recursos consumidos pela compilação
O Buildroot pode gerar uma análise do tamanho dos recursos consumidos pela compilação.
Digite o seguinte comando
make graph-size
Após o comando acima, os arquivos de análise visual serão gerados em seeed-linux-buildroot > output > graphs como:
- graph-size.pdf
- file-size-stats.csv
- package-size-stats.csv
Nota: Clique na imagem acima para ver uma versão ampliada
Testar a imagem Buildroot
Para testar a imagem Buildroot acima com o reTerminal, você pode visitar o wiki de Uso de Hardware e Interfaces do reTerminal e consultar os passos mencionados.
Recursos
- [Webpage] Documentação do Buildroot
- [GitHub] seeed-linux-buildroot
Suporte Técnico & Discussão de Produto
Obrigado por escolher nossos produtos! Estamos aqui para fornecer a você diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja o mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

