Vereisten
Hardware
Host[pc/laptop]: elke x86/x86_64 AMD/Intel-machine
Doel [Raspberry Pi 4]: Raspberry Pi 4
Software
Host: Elke Linux-machine (Ubuntu 20.04 LTS-getest)
Doel: Raspberry Pi 4 Linux 32-bit OS (Raspbian Bullseye Lite getest)
Opmerking
Op de achtergrond worden de cross compile toolchains voor Raspberry Pi van abhiTronix gebruikt.
Overige
opslag- en tijdsvereisten: De build-directory neemt ongeveer ~10 GB ruimte in beslag en ongeveer 2-5 uur om te voltooien (op basis van afhankelijkheden en specificaties van de hostmachine).
Netwerken: uw Target Machine (Raspberry Pi) en Host Machine (waar u cross-compileren) MOETEN beide toegang tot internet hebben, en MOETEN op HETZELFDE netwerk zitten om deze instructies te volgen.
Stappen/instellingen voor doelmachine (Raspberry Pi)
1. Starten vanaf nul (optioneel)
Belangrijk
Als u net een nieuwe Raspberry Pi heeft gekocht of vanaf nul wilt beginnen, volg ons dan gewoon. Als u echter uw Raspberry Pi ingesteld heeft, geactiveerd en netwerkklaar hebt, gaat u gewoon door naar stap 2.
Opmerking
Deze sectie gaat ervan uit dat u ten minste een 10 GB SD-kaart voor het installeren van Raspbian (Stretch/Buster/Bullseye) OS en een laptop/pc voor het uploaden ervan heeft.
1.1. Software downloaden en de SD-kaart voorbereiden
- Download de nieuwste versie van Raspbian (Bullseye) vanaf hier op uw laptop/pc.
- U hebt een image-writer nodig om het gedownloade besturingssysteem naar de SD-kaart te schrijven (micro SD-kaart in ons geval). U kunt Balena Etcher gebruiken.
- Plaats de SD-kaart in de laptop/pc en voer de image-writer uit. Eenmaal geopend, bladert u naar en selecteert u het gedownloade Raspbian-image-bestand. Selecteer het juiste apparaat, dat is het station dat de SD-kaart vertegenwoordigt.
Opmerking
Als het geselecteerde station (of apparaat) verschilt van de SD-kaart, wordt het andere geselecteerde station beschadigd. WEES DUS VOORZICHTIG!
1.2 Netwerk instellen
Nu uw Raspberry Pi draait, is het tijd om het te verbinden met uw netwerk op een van de volgende manieren:
- Als u Monitor heeft: Verbind deze samen met een toetsenbord en muis met uw Raspberry Pi om te navigeren en volg deze handleiding.
- Als u Monitor niet heeft: Volg deze gids
2. SSH instellen
Als u Monitor hebt: Typt u op de Raspberry Pi-terminal:
sudo raspi-config
en het menu verschijnt op uw terminal. Om SSH in te schakelen, gaat u naar:Interfacing Options
->SSH
->Yes
en klik opOK
om het in te schakelen. KiesFinish
en sluit af.Als u geen Monitor hebt: Na het instellen van het netwerk, als u geen monitor hebt of als u deze op afstand bedient. Schakel SSH vervolgens in door gewoon uw SD-kaart eruit te halen, en verbind deze met uw computer, en maak gewoon een leeg bestand aan met de naam
ssh
in het pad/boot/parition
op de SD-kaart. Plaats nu de SD-kaart terug in de Raspberry Pi.
3. Open Terminal
- Van een andere laptop/pc met behulp van SSH: Om verbinding te maken met uw Pi vanaf een andere computer, kopieert en plakt u het volgende commando in het terminalvenster, maar vervangt u
192.160.1.47
door het IP-adres van de Raspberry Pi.
ssh pi@192.168.1.47
Het vraagt om een wachtwoord, en als het niet wordt gewijzigd, is het standaard (raspberry
), en gebruik dit dus wanneer het wordt gevraagd.
Opmerking
Het is mogelijk om uw Raspberry Pi te configureren om toegang toe te staan vanaf een andere computer zonder dat u elke keer dat u verbinding maakt een wachtwoord hoeft op te geven. Voor meer details, zie hier.
4. Krijg scripts
Maak verbinding met uw Pi met ssh en download het zip-bestand:
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
U kunt het zip-bestand ook downloaden via de browser vanaf hier.
Maak het script qt-cross-compile-script-pi4.sh uitvoerbaar en voer het uit:
sudo chmod +x qt-cross-compile-script-pi4.sh
sudo ./qt-cross-compile-script-pi4.sh
Na een tijdje zijn alle benodigde pakketten geïnstalleerd, worden de benodigde mappen aangemaakt en zijn de symbolische koppelingen correct ingesteld.
Belangrijk
Zorg ervoor dat uw Raspberry Pi en deze Host-machine (waar u cross-compiling uitvoert) op HETZELFDE netwerk staan.
Stappen/instellingen voor Host Machine (Linux Ubuntu)
Voor het testen gebruikten we een virtuele machine (vmware) met een schone Ubuntu 20.04 LTS versie.
1. Zip-bestand downloaden
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
U kunt het zip-bestand ook downloaden via de browser vanaf hier.
2. Maak het script qt-cross-compile-script-pi4.sh uitvoerbaar en voer het uit
chmod +x qt-cross-compile-script-host.sh
3. Variabelen in het script wijzigen
U moet het IP-adres (raspberry_ip) van uw Raspberry Pi in het script wijzigen en als u de gebruiker (raspberry_user) en het wachtwoord (raspberry_pwd) van de Raspberry hebt gewijzigd.
nano qt-cross-compile-script-host.sh
4. Voer het script uit
sudo ./qt-cross-compile-script-host.sh
Het script voert de volgende acties uit:
- installeer alle benodigde pakketten
- benodigde mappen aanmaken (
~/rpi-qt
) - downloaden en uitpakken van Qt-bronnen
- patchen Qt-bronnen
- downloaden en uitpakken van cross-compiler
- rsync bestanden van Raspberry Pi
- symlinker downloaden en symlinks instellen
- Qt build configureren
- make en make install Qt build
- rsync Qt-binaries naar Raspberry
Laatste stap voor doelmachine (Raspberry Pi)
Update linker op Raspberry Pi
Voer de volgende opdracht in om het apparaat bij te werken, zodat de linker de nieuwe QT-binaire bestanden kan vinden:
echo /usr/local/qt5.15/lib | sudo tee /etc/ld.so.conf.d/qt5.15.conf
sudo ldconfig
Qt Creator configureren voor cross-compiling
Lees de blog Qt-Creator configureren op Ubuntu 20 Lts voor cross-compilatie voor het opnemen van de gecompileerde binaire bestanden (map ~/rpi-qt/qt5.15
) in Qt Creator.
Auteursrechtlicentie
Copyright © 2022 Interelectronix e.K.
Deze broncode van het project is gelicentieerd onder de GPL-3.0 licentie.
Dankbetuigingen
- Dit document is geïnspireerd op de stapsgewijze instructies voor het compileren van het nieuwste Qt-framework voor Raspberry Pi. Enorm bedankt @abhiTronix.
- Bedankt QT-framework, voor het verstrekken van de bronbestanden