Pré-requisitos
Hardware
[PC/Laptop] host: qualquer máquina x86/x86_64 AMD/Intel
[Raspberry Pi 4] alvo: Raspberry Pi 4
Software
Host: qualquer máquina Linux (Ubuntu 20.04 LTS Testado)
Alvo: Raspberry Pi 4 Linux 32-bit OS (Raspbian Bullseye Lite testado)
Obs.:
As ferramentas de compilação cruzada para Raspberry Pi da abhiTronix são usadas em segundo plano.
Outros
Requisitos de Armazenamento e Tempo: o diretório de compilação leva cerca de ~10 GB de espaço e cerca de 2-5 horas para ser concluído (com base nas dependências e especificações da máquina host).
Rede: Sua Máquina Alvo (Raspberry Pi) e Máquina Host (onde você faz a compilação cruzada) DEVEM ter acesso à Internet e DEVEM estar na MESMA Rede para seguir estas instruções.
Etapas/Configurações para Máquina Alvo (Raspberry Pi)
1. Começando do zero (opcional)
Importante
Se você acabou de conseguir um novo Raspberry Pi ou quer começar do zero, basta seguir em frente. Caso contrário, se você já tiver um Raspberry Pi configurado, em execução e Pronto para Conexão, basta pular para o passo 2.
Obs.:
Esta seção assume que você tem um SDcard de pelo menos 10GB para instalar o sistema operacional Raspbian (Stretch/Buster/Bullseye) e um Laptop/PC para carregá-lo.
1.1. Baixe softwares e prepare o cartão SD
- Baixe aqui a versão mais recente do Raspbian (Bullseye) para seu laptop/pc.- Você precisará de um gravador de imagens para gravar o sistema operacional baixado no cartão SD (cartão micro SD no nosso caso). Você pode usar o Balena Etcher.- Insira o cartão SD no laptop/pc e execute o gravador de imagens. Uma vez aberto, selecione o arquivo de imagem Raspbian baixado. Selecione o dispositivo correto, que é a unidade que representa o cartão SD.
Obs.:
Se a unidade (ou dispositivo) selecionada for diferente do cartão SD, a outra unidade selecionada ficará corrompida. CUIDADO!
1.2 Configuração de rede
Agora que seu Raspberry Pi está configurado e em funcionamento, é hora de conectá-lo à sua rede de uma das seguintes maneiras:
- Se você tiver Monitor: Conecte-o ao seu Raspberry Pi junto com um teclado e mouse para navegar e siga este guia.- Se você não tiver Monitor: Siga este guia
2. Configure o SSH
Se você tiver Monitor: No terminal Raspberry Pi, digite:
sudo raspi-config
e o menu deverá aparecer no seu terminal. Para habilitar o SSH, vá paraOpções de Interface
->SSH
->Sim
e clique emOK
para habilitá-lo. EscolhaConcluir
e saia.Se você não tiver Monitor: Depois de configurar a rede, se você não tiver monitor ou se estiver operando remotamente. Para ativar o SSH, apenas retire seu cartão SD, conecte-o ao seu computador e crie um arquivo vazio chamado
ssh
no caminho/boot/parition
. Agora insira o cartão SD de volta no Raspberry Pi.
3. Abra o Terminal
- De outro Laptop/PC usando SSH: Para se conectar ao seu Pi de um computador diferente, copie e cole o seguinte comando na janela do terminal, mas substitua
192.160.1.47
pelo endereço IP do Raspberry Pi.
ssh pi@192.168.1.47
Ele vai pedir a senha que, se não tiver sido alterada, será a padrão (raspberry
), que deverá ser utilizada sempre que necessário.
Obs.:
É possível configurar o seu Raspberry Pi para permitir o acesso a partir de outro computador sem a necessidade de fornecer uma senha toda vez que você se conectar. Para mais detalhes, veja aqui.
4. Obtenha scripts
Conecte-se ao seu Pi com o ssh e baixe o arquivo zip:
ssh pi@192.168.1.47
wget https://www.interelectronix.com/sites/default/files/scripts/qt-cross-compile-rpi4.zip
unzip qt-cross-compile-rpi4.zip
cd qt-cross-compile-rpi4
Você também pode baixar o arquivo zip via navegador a partir daqui.Torne o script qt-cross-compile-script-pi4.sh executável e execute-o:
sudo chmod +x qt-cross-compile-script-pi4.sh
sudo ./qt-cross-compile-script-pi4.sh
Depois de algum tempo, todos os pacotes necessários serão instalados, os diretórios necessários serão criados e os symlinks serão definidos corretamente.
Importante
Certifique-se de que o seu Raspberry Pi e a máquina Host (onde você faz a compilação cruzada) ESTEJAM NA MESMA REDE.
Etapas/Configurações para Máquina Host (Linux Ubuntu)
Para testes, utilizamos uma máquina virtual (vmware) com uma versão limpa do Ubuntu 20.04 LTS.
1. Baixe o arquivo ZIP
wget https://www.interelectronix.com/sites/default/files/scripts/qt-cross-compile-rpi4.zip
unzip qt-cross-compile-rpi4.zip
cd qt-cross-compile-rpi4
Você também pode baixar o arquivo zip via navegador a partir daqui.### 2. Torne o script qt-cross-compile-script-pi4.sh executável e execute-o:
chmod +x qt-cross-compile-script-host.sh
3. Altere as variáveis no script
Você precisa alterar o endereço ip (raspberry_ip) do seu Raspberry Pi no script e o usuário (raspberry_user) e senha (raspberry_pwd) se você tiver mudado.
nano qt-cross-compile-script-host.sh
4. Execute o script
sudo ./qt-cross-compile-script-host.sh
O script executa as seguintes ações:
- instala todos os pacotes necessários
- cria os diretórios necessários (
~/rpi-qt
) - baixa e extrai fontes Qt
- instala fontes Qt
- baixa e extrai o compilador cruzado
- executa rsync de arquivos do raspberry pi
- baixa o symlinker e os symlinks
- configura a compilação Qt
- cria e instala a compilação do Qt
- executa o rsync dos binários do Qt para o Raspberry
Etapa Final para Máquina Alvo (Raspberry Pi)
Atualização do linker no Raspberry Pi
Digite o seguinte comando para atualizar o dispositivo, permitindo que o linker encontre os novos arquivos binários QT:
echo /usr/local/qt5.15/lib | sudo tee /etc/ld.so.conf.d/qt5.15.conf
sudo ldconfig
Configuração do Qt Creator para compilação cruzada
Leia o blog Configurando o Qt-Creator no Ubuntu 20 Lts para compilação cruzada para incluir os binários compilados (pasta ~/rpi-qt/qt5.15
) no Qt Creator.
Licença de direitos autorais
Copyright © 2022 Interelectronix e.K.
Este código-fonte do Projeto está licenciado sob a licença * * GPL-3.0 * *.
Agradecimentos
- Este documento foi inspirado pelas instruções passo a passo para a compilação cruzada da mais recente estrutura Qt para Raspberry Pi. Muito obrigado @abhiTronix.
- Obrigado ao QT, por fornecer os arquivos de origem