Prerequisiti
Host hardware
[PC/Laptop]: qualsiasi macchina AMD/Intel x86/x86_64
Target [Raspberry Pi 4]: Raspberry Pi 4
Host
software: qualsiasi macchina Linux (Ubuntu 20.04 LTS testato)
Target: Raspberry Pi 4 Linux 32-bit OS (testato Raspbian Bullseye Lite)
Nota:
Sullo sfondo vengono utilizzate le toolchain di compilazione incrociata per Raspberry Pi di di abhiTronix.
Altri
Requisiti di archiviazione e di tempo: la compilazione della directory richiede circa ~10 GB di spazio e circa 2-5 ore per essere completata (in base alle dipendenze e alle specifiche della macchina host).
Rete: il computer di destinazione (Raspberry Pi) e il computer host (in cui si esegue la compilazione incrociata) DEVONO entrambi avere accesso a Internet e DEVONO essere sulla STESSA rete per seguire queste istruzioni.
Passi/Impostazioni per la macchina di destinazione (Raspberry Pi)
1. Avvio da zero (opzionale)
Importante
Se hai appena portato un nuovo Raspberry Pi o volevi ricominciare da zero, segui la procedura. Altrimenti, se hai già configurato Raspberry Pi, è in esecuzione e pronto per la rete, vai al passaggio 2.
Nota:
Questa sezione presuppone che tu abbia almeno una scheda SD da 10 GB per l'installazione del sistema operativo Raspbian (Stretch/Buster/Bullseye) e un computer portatile/PC per caricarlo.
1.1. Scarica i software e prepara la scheda SD
- Scarica l'ultima versione di Raspbian (Bullseye) da qui sul tuo laptop/pc.- Avrai bisogno di un masterizzatore di immagini per scrivere il sistema operativo scaricato nella scheda SD (scheda micro SD nel nostro caso). Puoi usare Balena Etcher.- Inserisci la scheda SD nel laptop/pc ed esegui il programma di scrittura immagini. Una volta aperto, sfoglia e seleziona il file di immagine Raspbian scaricato. Seleziona il dispositivo corretto, ovvero l'unità che rappresenta la scheda SD.
Nota:
Se l'unità (o il dispositivo) selezionato è diverso dalla scheda SD, l'altra unità selezionata verrà danneggiata. PERCIÒ, PRESTA ATTENZIONE!
1.2 Configurazione della rete
Ora che hai il tuo Raspberry Pi attivo e funzionante, è il momento di connetterlo alla rete con uno dei seguenti modi:
- Se hai Monitor: Collegalo al tuo raspberry pi insieme a una tastiera e un mouse per navigare e segui questa guida.
- Se non hai Monitor: Segui questa guida
2. Configura SSH
Se disponi di Monitor: Sul terminale Raspberry Pi, digita:
sudo raspi-config
e il menu dovrebbe apparire sul terminale. Per abilitare SSH, vai su:Opzioni interfaccia
->SSH
->Sì
, e fai clic suOK
per abilitarlo. ScegliFine
al termine ed esci.Se non disponi di Monitor: Dopo aver configurato la rete, se non dispone di Monitor o se lo utilizzi in remoto. Quindi abilita SSH semplicemente estraendo la scheda SD e agganciala al computer, e crea semplicemente un file vuoto chiamato "ssh" nel percorso "/boot/parition" all'interno della scheda SD. Ora reinserisci la scheda SD nel Raspberry Pi.
3. Apri terminale
- Da un altro laptop/PC che utilizza SSH: Per connettersi al tuo Pi da un computer diverso, copia e incolla il seguente comando nella finestra del terminale ma sostituisci
192.160.1.47
con l'indirizzo IP del Raspberry Pi.
ssh [email protected]
Richiede la password e, se non viene modificata, è predefinita (raspberry
), quindi utilizzala ogni volta che viene richiesta.
Nota:
È possibile configurare il Raspberry Pi per consentire l'accesso da un altro computer senza dover fornire una password ogni volta che ci si connette. Per maggiori dettagli, vedi qui.
4. Ottieni script
Connettiti al tuo Pi con ssh e scarica il file zip:
ssh [email protected]
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
È anche possibile scaricare il file zip tramite browser da qui. Rendi eseguibile lo script qt-cross-compile-script-pi4.sh ed eseguilo:
sudo chmod +x qt-cross-compile-script-pi4.sh
sudo ./qt-cross-compile-script-pi4.sh
Dopo aver installato tutti i pacchetti necessari, vengono create le directory necessarie e i collegamenti simbolici vengono impostati correttamente.
Importante
Assicurati che il Raspberry Pi e questo computer host (in cui esegui la compilazione incrociata) SIANO sulla STESSA rete.
Passi/Impostazioni per la macchina host (Linux Ubuntu)
Per il test, abbiamo utilizzato una macchina virtuale (vmware) con una versione Ubuntu 20.04 LTS pulita.
1. Scarica file 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
È anche possibile scaricare il file zip tramite browser da qui.
2. Rendi eseguibile lo script qt-cross-compile-script-pi4.sh ed eseguilo
chmod +x qt-cross-compile-script-host.sh
3. Modifica le variabili nello script
È necessario modificare l'indirizzo IP (raspberry_ip) del tuo raspberry pi nello script e se hai modificato l'utente (raspberry_user) e la password (raspberry_pwd) del raspberry.
nano qt-cross-compile-script-host.sh
4. Esegui lo script
sudo ./qt-cross-compile-script-host.sh
Lo script esegue le seguenti azioni:
- installa tutti i pacchetti necessari
- crea le directory necessarie (
~/rpi-qt
) - scarica ed estrai le sorgenti Qt
- patch sorgenti Qt
- scarica ed estrai cross compiler
- rsync file da raspberry pi
- scarica il link simbolico e imposta i link simbolici
- configura Qt build
- crea e fai installare Qt build
- binari Qt rsync a raspberry
Passaggio finale per la macchina di destinazione (Raspberry Pi)
Aggiorna linker su Raspberry Pi
Immetti il seguente comando per aggiornare il dispositivo consentendo al linker di trovare i nuovi file binari QT:
echo /usr/local/qt5.15/lib | sudo tee /etc/ld.so.conf.d/qt5.15.conf
sudo ldconfig
Configura Qt Creator per la compilazione incrociata
Leggi il blog Configuring Qt-Creator on Ubuntu 20 Lts for cross-compilation per includere i binari compilati (cartella ~/rpi-qt/qt5.15
) in Qt Creator.
Licenza sul diritto d'autore
Copyright © 2022 Interelectronix e.K.
Questo codice sorgente del Progetto è concesso in licenza sotto la licenza **GPL-3.0 * *.
Riconoscimenti
- Questo documento si ispira alle Istruzioni passo-passo per la compilazione incrociata dell'ultimo framework Qt per Raspberry Pi. Un enorme grazie a @abhiTronix.
- Grazie QT framework, per aver fornito i file sorgente