Raspberryn konfiguraationäyttö

Qt Raspberry Pi 4:ssä

Qt Raspberry Pi 4:llä

Qt:tä käytetään usein graafisten käyttöliittymien kehittämiseen. Qt sisältää C ++ -kirjastoja graafisten käyttöliittymien luomiseen, joita voidaan kääntää eri käyttöjärjestelmiin.
Koska tämä kääntäminen vaatii paljon laskentatehoa, on suositeltavaa, että suhteellisen pienitehoiset prosessorit suorittavat kehittämisen ja kääntämisen isäntätietokoneella ja vasta sitten valmis sovellus ladataan kohdetietokoneelle.
Verkossa on paljon ohjeita Qt-sovelluksen kehittämiseen Raspberry Pi 3- ja Pi 4 -malleille.

Valitettavasti en löytänyt sellaisia, jotka sopisivat moitteettomasti Raspberry Pi 4:lle ja tarpeisiimme.

Nämä ohjeet perustuvat vahvasti osoitteessa https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/QT_build_instructions.md saatavilla oleviin ohjeisiin ja niitä on muokattu joissakin kohdissa itselleni sopiviksi.

Käytetään Qt-versiota 5.15.2, ja käytän Ubuntu 20.0.4 LTS:ää, joka on asennettu VMware-ohjelmistoon isäntätietokoneena ristiinkääntämistä varten.

Vaatimukset

Laitteisto

Isäntä [PC/kannettava]: Mikä tahansa x86/x86_64 AMD/Intel -kone
Kohde [Raspberry Pi 4]: Raspberry Pi 4

Ohjelmisto

Isäntä: Mikä tahansa Linux-kone (testattu Ubuntu 20.04 LTS:llä)
Kohde: Raspberry Pi 4 Linux 32-bittinen käyttöjärjestelmä (testattu Raspbian Bullseye Litellä)

Huomautus

Taustalla käytetään abhiTronixin Raspberry Pi:lle tarkoitettuja ristiinkääntämisen työkaluketjuja.

Muut

Tallennus- ja aikavaatimukset: Rakennushakemisto vie noin 10 Gt tilaa ja suoritus kestää noin 2–5 tuntia (perustuen riippuvuuksiin ja isäntäkoneen ominaisuuksiin).
Verkkoyhteydet: Sekä kohdekoneellasi (Raspberry Pi) että isäntäkoneellasi (jossa ristiinkääntäminen tapahtuu) ON OLTAVA Internet-yhteys, ja niiden ON OLTAVA SAMASSA verkossa, jotta voit seurata näitä ohjeita.

Raspberry Pi 4:n valmistelu

Perusasennukseen tarvitsemme Raspberry Pi OS Lite -käyttöjärjestelmän Pi 4:lle. Käytin versiota "2022-04-04-raspios-bullseye-armhf-lite.img.xz".

Lataukset ja ohjeet SD-muistikortin luomiseen sillä löytyvät osoitteesta https://www.raspberrypi.org/downloads/raspbian/.

Kun Pi 4 on kytketty päälle, näkyviin tulee konfiguraatiovalikko, jossa voit säätää erilaisia asetuksia (esim. laitenimi, IP-osoite, käyttäjä jne.). "SSH" tulee aktivoida konfigurointiamme varten.

Ohjelmistopakettien asennus ja päivitys

– Lisää kehityslähteet /etc/apt/sources.list-asetustiedostoon seuraavalla komennolla:

sudo sed -i -e 's/\#deb-src/deb-src/g' /etc/apt/sources.list

– Päivitä sitten järjestelmä seuraavilla komennoilla:

sudo apt-get update
sudo apt-get -y dist-upgrade
echo "$USER ALL=NOPASSWD:$(which rsync)" | sudo tee --append /etc/sudoers

– Asenna tarvittavat Qt- ja kehityspaketit:

sudo apt-get install -y build-essential cmake unzip pkg-config gfortran
sudo apt-get build-dep -y qt5-qmake libqt5gui5 libqt5webengine-data libqt5webkit5 libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0 gdbserver
sudo apt-get install -y libxcb-randr0-dev libxcb-xtest0-dev libxcb-shape0-dev libxcb-xkb-dev

– Asenna lisäpaketit (tarpeidesi mukaisesti):

sudo apt install -y libjpeg-dev libpng-dev libtiff-dev
sudo apt install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt install -y libxvidcore-dev libx264-dev openjdk-8-jre-headless
# audio packages
sudo apt install -y libopenal-data libsndio7.0 libopenal1 libopenal-dev pulseaudio
# bluetooth packages
sudo apt install -y bluez-tools
sudo apt install -y libbluetooth-dev
# gstreamer (multimedia) packages
sudo apt install -y libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-pulseaudio
sudo apt install -y libgstreamer1.0-dev  libgstreamer-plugins-base1.0-dev

– Sitten luo myös hakemisto RaspberryQt:lle:

sudo mkdir /usr/local/qt5.15
sudo chown -R pi:pi /usr/local/qt5.15

Tärkeiden symbolisten linkkien määrittäminen

Lataa symlinkkien luomistyökalu ja säädä symlinkit.

sudo wget -P ~/ https://raw.githubusercontent.com/abhiTronix/raspberry-pi-cross-compilers/master/utils/SSymlinker
sudo chmod +x ~/SSymlinker

~/SSymlinker -s /usr/include/arm-linux-gnueabihf/asm -d /usr/include
~/SSymlinker -s /usr/include/arm-linux-gnueabihf/gnu -d /usr/include
~/SSymlinker -s /usr/include/arm-linux-gnueabihf/bits -d /usr/include
~/SSymlinker -s /usr/include/arm-linux-gnueabihf/sys -d /usr/include
~/SSymlinker -s /usr/include/arm-linux-gnueabihf/openssl -d /usr/include
~/SSymlinker -s /usr/lib/arm-linux-gnueabihf/crtn.o -d /usr/lib/crtn.o
~/SSymlinker -s /usr/lib/arm-linux-gnueabihf/crt1.o -d /usr/lib/crt1.o
~/SSymlinker -s /usr/lib/arm-linux-gnueabihf/crti.o -d /usr/lib/crti.o

Ubuntun valmistelu

Ohjelmiston päivitys ja lisäpakettien asennus:

sudo apt update
sudo apt install -y build-essential cmake unzip gfortran
sudo apt install -y gcc git bison python gperf pkg-config gdb-multiarch wget
sudo apt-get -y install sshpass gcc g++ gperf flex texinfo gawk bison openssl pigz libncurses-dev autoconf automake tar figlet

Rakennusympäristön valmistelu

– Luo kansiot:

sudo mkdir ~/rpi-qt
sudo mkdir ~/rpi-qt/build
sudo mkdir ~/rpi-qt/tools
sudo mkdir ~/rpi-qt/sysroot
sudo mkdir ~/rpi-qt/sysroot/usr
sudo mkdir ~/rpi-qt/sysroot/opt

sudo chown -R 1000:1000 ~/rpi-qt

– Lataa ja pura Qt-lähteet:

sudo wget -P ~/rpi-qt http://download.qt.io/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz
sudo tar xf ~/rpi-qt/qt-everywhere-src-5.15.2.tar.xz -C ~/rpi-qt/
sudo chown -R 1000:1000 ~/rpi-qt

– Korjaa Qt-lähteet.

cp -R ~/rpi-qt/qt-everywhere-src-5.15.2/qtbase/mkspecs/linux-arm-gnueabi-g++ ~/rpi-qt/qt-everywhere-src-5.15.2/qtbase/mkspecs/linux-arm-gnueabihf-g++
sed -i -e 's/arm-linux-gnueabi-/arm-linux-gnueabihf-/g' ~/rpi-qt/qt-everywhere-src-5.15.2/qtbase/mkspecs/linux-arm-gnueabihf-g++/qmake.conf
sed -i -e 's/\"main\"\: \"vc_dispmanx_display_open(0)\;\"/\"main\"\: \[\"vc_dispmanx_display_open(0)\;\"\, \"EGL_DISPMANX_WINDOW_T \*eglWindow \= new EGL_DISPMANX_WINDOW_T\;\"\]/g' ~/rpi-qt/qt-everywhere-src-5.15.2/qtbase/src/gui/configure.json

– Lataa ja pura kääntäjä:

sudo wget -P ~/rpi-qt/tools https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Bullseye/GCC%2010.3.0/Raspberry%20Pi%203A%2B%2C%203B%2B%2C%204/cross-gcc-10.3.0-pi_3%2B.tar.gz
sudo tar xf ~/rpi-qt/tools/cross-gcc-*.tar.gz -C ~/rpi-qt/tools/
sudo chown -R 1000:1000 ~/rpi-qt

– Raspberryn rsync-tiedostot: Käytä Raspberrysi arvoja muuttujille raspberry_ip, raspberry_user ja raspberry_pwd.

raspberry_ip=192.168.2.108
raspberry_user=pi
raspberry_pwd=raspberry
touch ~/.ssh/known_hosts
ssh-keyscan $raspberry_ip >> ~/.ssh/known_hosts
sshpass -p "$raspberry_pwd" rsync -avz --rsync-path="sudo rsync" --delete "$raspberry_user"@"$raspberry_ip":/lib ~/rpi-qt/sysroot
sshpass -p "$raspberry_pwd" rsync -avz --rsync-path="sudo rsync" --delete "$raspberry_user"@"$raspberry_ip":/usr/include ~/rpi-qt/sysroot/usr
sshpass -p "$raspberry_pwd" rsync -avz --rsync-path="sudo rsync" --delete "$raspberry_user"@"$raspberry_ip":/usr/lib ~/rpi-qt/sysroot/usr

– Korjaa symboliset linkit:

wget -P ~/rpi-qt https://raw.githubusercontent.com/abhiTronix/rpi_rootfs/master/scripts/sysroot-relativelinks.py
sudo chmod +x ~/rpi-qt/sysroot-relativelinks.py
~/rpi-qt/sysroot-relativelinks.py ~/rpi-qt/sysroot

– Konfiguroi Qt:n versio:

cd ~/rpi-qt/build
CROSS_COMPILER_LOCATION="$HOME"/rpi-qt/tools/cross-pi-gcc-*
../qt-everywhere-src-5.15.2/configure -release -opengl es2 -eglfs -device linux-rasp-pi4-v3d-g++ -device-option CROSS_COMPILE=$(echo $CROSS_COMPILER_LOCATION)/bin/arm-linux-gnueabihf- -sysroot ~/rpi-qt/sysroot/ -prefix /usr/local/qt5.15 -extprefix ~/rpi-qt/qt5.15 -opensource -confirm-license -skip qtscript -skip qtwayland -skip qtwebengine -nomake tests -make libs -pkg-config -no-use-gold-linker -v -recheck -L$HOME/rpi-qt/sysroot/usr/lib/arm-linux-gnueabihf -I$HOME/rpi-qt/sysroot/usr/include/arm-linux-gnueabihf

– Qt:n versio:

make -j$(nproc)
make install

– Käytä rsync-ohjelmaa synkronoidaksesi Qt:n binäärimuodot Raspberrylle:

sshpass -p "$raspberry_pwd" rsync -avz --rsync-path="sudo rsync" ~/rpi-qt/qt5.15 "$raspberry_user"@"$raspberry_ip":/usr/local

Kohdekoneen (Raspberry Pi) viimeinen vaihe

– Päivitä Raspberry Pi:n linkitysohjelma

Syötä seuraava komento Raspberry Pi:lle päivittääksesi laitteen niin, jotta linkitysohjelma löytää uusia QT:n binääritiedostoja:

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

Qt Creatorin asentaminen

Paras tapa kehittää Qt-sovelluksia on käyttää Qt Creatoria. Voit asentaa sen lataamalla ja suorittamalla verkkoasennustiedostot osoitteesta Qt:n verkkosivustolta.

Konfiguroi Qt Creator ristiinkääntämistä varten

Lue blogi Qt Creatorin konfigurointi Ubuntu 20 LTS:ssä ristiinkääntämistä varten sisällyttääksesi käännetyt binäärit (kansio ~/rpi-qt/qt5.15) Qt Creatoriin.

Ehdotuksia tai virheitä

Jos sinulla on parannusehdotuksia tai löydät joitakin virheitä, älä epäröi käyttää tämän sivun lopussa olevaa yhteydenottolomaketta ilmoittaaksesi niistä meille.

Tekijänoikeuslisenssi

Copyright © 2022 Interelectronix e.K.
Tämän projektin lähdekoodi on lisensoitu **GPL-3.0 ** -lisenssillä.

Hän voi myös olla kiinnostunut

Asenna Raspberry Pi OS Raspberry-laskentamoduuliin 4

Tämä on opas Raspberry Pi OS Liten asentamisesta laskentamoduuliin 4. Työkoneena käytän Ubuntu 20:ta, joka on asennettu virtuaalikoneeseen.

Qt 5.15 cross compile Raspberry-laskentamoduulille 4 Ubuntu 20 LTS:ssä

Tämä on opas Qt 5.15.2:n ristikääntämiseen Raspberry Pi 4:lle ja asentamiseen laskentamoduuliin 4. Kyseessä on päivitys blogikirjoitukseeni Qt auf dem Raspberry Pi 4, sillä erotuksella, että tällä kertaa käytän Raspberry Pi OS Liteä.

Määritä Qt-Creator Ubuntu 20 LTS:ssä Cross-Compilea varten

Tämä on opas Qt Creatorin määrittämiseen käyttämään ristikäännettyjä Qt-kirjastoja Raspberry Pi 4:lle ja luomaan sovelluksia Raspberrylle.

Yocton local.conf-tiedosto

Tässä oppaassa neuvomme sinulle, miten Yocto-projekti määritetään asentaaksesi Qt:n ja Qt:n demosovelluksen Raspberry Pi 4:lle. Sitten neuvomme, miten Qt:n demosovellus käynnistetään automaattisesti.

Qt:n ristiinkääntämisen komentosarjat Raspberry Pi 4:lle

Tällä sivulla tarjoamme latauslinkkejä komentosarjoihin, joilla voi automaattisesti määrittää ristiinkääntämistä Linux-isäntäkoneella ja Raspberry Pi 4:ssä. Lisäksi neuvomme, miten niitä käytetään.

Qt Modbus TCP-/IP-yhteydellä

Tässä blogissa haluaisin tarjota pienen Qt-Quick-sovelluksen (qml) esimerkkinä Modbus-yhteydelle TCP:n/IP: n kautta. Qt-esimerkeistä löysin vain QWidget-esimerkkejä Modbus-yhteyksille ja kun olen äskettäin luonut Qt Quick -sovelluksen tätä tarkoitusta varten, haluaisin tarjota siitä esimerkiksi karsitun version.

Raspberry Pi 4:n automaattikäynnistys Qt-sovelluksen käynnistyessä

Jos olet luonut Qt-sovelluksen – tai minkä tahansa muun sovelluksen – Raspberry Pi 4:lle, haluat varmaankin sovelluksen valmistuttua aktivoida sen heti Raspberryn uudelleenkäynnistyksen jälkeen. Usein tätä yritetään käynnistysskriptillä, joka voidaan syöttää erilaisiin paikkoihin. On kuitenkin järkevämpää tehdä tämä systemd -järjestelmän kautta.

Suorita Windows .exe Qt-sovelluksessa

Tehtävänä oli kirjoittaa Qt Quick -sovellus (GUI) uuden laiteohjelmiston lataamiseksi kosketusohjaimeen. Valmistaja toimitti latausohjelmiston .exe-sovelluksena, joka ladattiin kosketusohjaimeen .bin-tiedostona. Halusin käyttää tähän Qt-luokista valitsemaani "QProcess"-luokkaa, jonka avulla voidaan käsitellä ja ohjata komentorivisovelluksia. Olin ajoittain käyttänyt tätä onnistuneesti jo Linux-sivustolla – mutta Windowsissa se ei aluksi toiminut.