Indlejret software - Qt krydskompilering setup scripts til Raspberry Pi 4 et skærmbillede af et computerprogram

Opsætning af Qt-krydskompilering

scripts til Raspberry Pi 4

Forudsætninger

Hardware

Vært [PC/Laptop]: En hvilken som helst x86/x86_64 AMD/Intel machine
Mål [Raspberry Pi 4]: Raspberry Pi 4

Software

Vært: En hvilken som helst Linux machine (Ubuntu 20.04 LTS Tested)
Mål: Raspberry Pi 4 Linux 32-bit OS (Raspbian Bullseye Lite testet)

Bemærkning

I baggrunden bruges Cross Compiler Tool Chains til Raspberry Pi fra abhiTronix.

Andet

Lagrings- og tidskrav: Buildbiblioteket tager omkring ~10GB plads og omkring 2-5 timer at fuldføre (baseret på afhængigheder og hostmaskinens specifikationer).
Netværk: Din målmaskine (Raspberry Pi) og værtsmaskine (hvor du krydskompilerer) SKAL begge have internetadgang og SKAL være på SAMME netværk for at følge disse instruktioner.

Trin/Indstillinger for målmaskine (Raspberry Pi)

1. Start fra bunden (valgfrit)

Vigtigt

Hvis du lige starter med en ny Raspberry Pi eller ønsker at starte forfra, følger du bare med her. Ellers, hvis du allerede har din Raspberry Pi-opsætning kørende, og netværksklar, så bare spring videre til trin 2.

Bemærkning

Dette afsnit forudsætter, at du som minimum har et 10GB SD-kort til installation af Raspbian (Stretch/Buster/Bullseye) OS og en bærbar computer/pc til at uploade det.

1.1. Download software og forbered SD-kortet

  • Download den nyeste version af Raspbian (Bullseye) her til din bærbare computer/pc.
  • Du skal bruge en image writer til at skrive det downloadede OS ind på SD-kortet (micro SD-kort i vores tilfælde). Du kan bruge Balena Etcher.
  • Sæt SD-kortet i den bærbare computer/pc'en, og kør image writeren. Når den er åbnet, skal du gennemse og vælge den downloadede Raspbian-billedfil. Vælg den korrekte enhed, som er det drev, der repræsenterer SD-kortet.

Bemærkning

Hvis det valgte drev (eller den valgte enhed) er forskellig(t) fra SD-kortet, bliver det andet valgte drev corrupted. SÅ VÆR FORSIGTIG!

- Når skrivningen er færdig, skal du skubbe SD-kortet ud, indsætte det i Raspberry Pi og tænde for den. Den burde starte med at boote op. - Husk, at efter opstart af Pi, kan der være situationer, hvor der bliver spurgt om brugeroplysninger som "brugernavn" og adgangskode. Raspberry Pi leveres med standardbrugernavnet 'pi' og adgangskoden 'raspberry', så brug disse, når du bliver bedt om det.

1.2 Opsætning af netværk

Nu, hvor du har din Raspberry Pi oppe at køre, er det tid til at forbinde den til dit netværk på en af følgende måder:

2. Opsætning af SSH

  • Hvis du har en monitor: På Raspberry Pi-terminalen skal du indtaste: 'sudo raspi-config', og så burde menuen poppe op på din terminal. For at aktivere SSH skal du gå til: 'Interfacing options' -> 'SSH' -> 'Yes' og klikke 'OK' for at aktivere den. Vælg 'Finish' til sidst, og afslut.

  • Hvis du ikke har en monitor: Efter opsætning af netværket, hvis du ikke har en monitor, eller du betjener den på afstand. Derefter aktiverer du SSH ved at tage dit SD-kort ud og kobler det til din computer og opretter blot en tom fil kaldet 'ssh' i `/boot/parition' stien inde på SD-kortet. Nu sættes SD-kortet tilbage i Raspberry Pi.

3. Åbn terminal

  • Fra en anden laptop/pc ved hjælp af SSH: For at oprette forbindelse til din Pi fra en anden computer skal du kopiere og indsætte følgende kommando i terminalvinduet, men erstatte '192.160.1.47' med IP-adressen på Raspberry Pi.
ssh [email protected] 

Den vil bede om adgangskode, og hvis den ikke er blevet ændret, er det standardkoden ('raspberry'), brug den, når du bliver bedt om det.

Bemærkning

Det er muligt at konfigurere din Raspberry Pi til at tillade adgang fra en anden computer uden at skulle indtaste en adgangskode, hver gang du opretter forbindelse. For yderligere oplysninger, se her.

4. Hent scripts

Opret forbindelse til din Pi med ssh, og download ZIP-filen:

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

Du kan også downloade ZIP-filen via browser her.Gør scriptet qt-cross-compile-script-pi4.sh kørbart, og kør det:

sudo chmod +x qt-cross-compile-script-pi4.sh
sudo ./qt-cross-compile-script-pi4.sh

Efter et stykke tid er alle nødvendige pakker installeret, de nødvendige mapper er oprettet og symlinks er korrekt indstillet.

Vigtigt

Din Raspberry Pi og denne hostmaskine (hvor du krydskompilerer) SKAL være på det SAMME netværk.

Trin/indstillinger for værtsmaskine (Linux Ubuntu)

Til testen brugte vi en virtuel maskine (vmware) med en ren Ubuntu 20.04 LTS-version.

1. Download ZIP-fil

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

Du kan også downloade ZIP-filen via browser her.### 2. Gør scriptet qt-cross-compile-script-pi4.sh kørbart og kør det

chmod +x qt-cross-compile-script-host.sh

3. Ændring af variabler i scriptet

Du skal ændre ip-adressen (raspberry_ip) på din raspberry pi i scriptet, og hvis du har ændret brugeren (raspberry_user) og adgangskoden (raspberry_pwd) til raspberry.

nano qt-cross-compile-script-host.sh

4. Kør scriptet

sudo ./qt-cross-compile-script-host.sh

Scriptet udfører følgende handlinger:

  • installer alle nødvendige pakker
  • opret nødvendige mapper ('~/rpi-qt')
  • download og udpak Qt-kilder
  • patch Qt-kilder
  • download og udtrække krydscompiler
  • rsync filer fra raspberry pi
  • download symlinker og indstil symlinks
  • konfigurer Qt build
  • make og make install Qt build
  • rsync Qt binære filer til raspberry

Sidste trin for target maskine (Raspberry Pi)

Opdater linker på Raspberry Pi

Indtast følgende kommando for at opdatere enheden, så linkeren kan finde de nye binære QT-filer:

echo /usr/local/qt5.15/lib | sudo tee /etc/ld.so.conf.d/qt5.15.conf
sudo ldconfig

Indstil Qt Creator til krydskompilering

Læs bloggen Konfiguration af Qt-Creator på Ubuntu 20 Lts til krydskompilering for at inkludere de kompilerede binære filer (mappe '~/rpi-qt/qt5.15') i Qt Creator.

Ophavsretslicens

Copyright © 2022 Interelectronix e.K.
Denne projektkildekode er licenseret under GPL-3.0-licensen.

Anerkendelser