1
0
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Varga Pál c3eb9a4824 'README.md' módosítása 4 years ago
README.md 'README.md' módosítása 4 years ago

README.md

QT Creator keresztfordító beállítása Raspberry Pi-hez

Linux alatt a jelenleg csomagban elérhető QT 5.15.2 verziójával történő keresztfordító beállításának leírása.

A környezet

Hoszt: Debian Bullseye with Raspberry Pi Desktop Oracle VirtualBox-ban futtatva egy Windows 10-et futtató laptopon.

Cél: Raspberry Pi 4 model B 1GB egy SmartiPi Touch 2 (Raspberry Pi 4 compatible) házba szerelve Raspberry Pi 7 inch Touch Display DSI 800x480 kijelzővel.

Raspberry Pi OS installálása

A Raspberry Pi Imager letöltése és telepítése. A program elindítása után ki kell választani a telepítendő operációs rendszert és az sd kártyát. Ehhez a rendszerhez a RASPBERRY PI OS LITE (32-bit)-et választottam, ez után elérhetővé válik a jobb alsó sarokban az Advanced menu.

Ott a hosztneven kívül mindent be kell állítani és érdemes elmenteni állandó használatra. Mivel az új szabályozás szerint az eszközöket nem lehet alapértelmezett felhasználónévvel és jelszóval árulni, ezért azt is itt kell beállítani, fontos még az ssh engedélyezése és szükség esetén a wifi beállítása.

Raspberry Pi beállítása

A rendszer elindítása után fel kell frissíteni

apt-get update
apt-get dist-upgrade
reboot

Forráskódok telepítésének engedélyezése

Ehhez az apt konfigurációs fájljában ki kell venni a kommentet az src sorok elejéről

/etc/apt/sources.list -> deb-src http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
apt-get update

Következik a csomagok telepítése

apt-get build-dep qt5-qmake
apt-get install gdbserver

Hoszt beállítása

Itt is a rendszer frissítése az első

apt-get update
apt-get dist-upgrade

Szükséges csomagok telepítése

apt-get install qtcreator qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
//apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
apt-get install gcc git bison python gperf pkg-config gdb-multiarch build-essential 

Jelszó nélküli ssh kapcsolat beállítása

Létező SSH kulcsok ellenőrzése

Először ellenőrizni kell, hogy vannak-e a felhasználónak ssh kulcsai? Ehhez az alábbi parancsot kell kiadni

ls ~/.ssh

Ha itt látható egy id_rsa és egy id_rsa.pub fájl, akkor vannak kulcsok, nem kell létrehozni, az SSH kulcsok generálása rész kihagyható.

SSH kulcsok generálása

Új ssh kulcsok generálása

ssh-keygen

A program meg fogja kérdezni, hogy hova tegye az új kulcsokat, az alapértelmezett ~/.ssh könyvtár megfelelő, enterrel kell elfogadni.

Ezután rá fog kérdezni a privát kulcs jelmondatára, nem kötelező megadni, ha nem szükséges simán enter-t kell nyomni és a megerősítő kérdésen is.

A létrejött kulcsok ellenőrzése

ls ~/.ssh

Itt legalább ezt látni kell

id_rsa id_rsa.pub

Az id_rsa a privát kulcs, ezt itt kell tartani.

Az id_rsa.pub a publikus kulcs, ezt át kell másolni a Raspberry Pi-re.

Publikus kulcs másolása a Raspberry Pi-re

A hoszt gépről történik a csatlakozás, ehhez a felhasználó publikus kulcsát csatolni kell a Raspberry Pi-n lévő authorized_keys fájlhoz, ssh-n való átküldés útján

ssh-copy-id <FELHASZNÁLÓNÉV>@<IP-CÍM>

Ehhez jelszavas hitelesítés szükséges. Ha ez megvan, meg lehet próbálni a jelszó nélküli kapcsolódást

ssh <FELHASZNÁLÓNÉV>@<IP-CÍM>

Munkakönyvtár felépítése

Könyvtár struktúra létrehozása

Az ~/rpi könytár lesz a kiindulási pont, létrehozás után legyen az az aktuális könyvtár

mkdir -p ~/rpi/build
mkdir -p ~/rpi/qt5.15.2
mkdir -p ~/rpi/sysroot

cd ~/rpi

sysroot átmesolása a Raspberry Pi-ről

A hoszton ehhez szükséges az rsync, ha nincs, installálni kell.

apt-get install rsync

Indulhat a másolás, ezt a lépést minden alkalommal el kell végezni, ha módosul a könyvtárak tartalma

rsync -avz --rsync-path="sudo rsync" --delete <FELHASZNÁLÓNÉV>@<IP-CÍM>:/lib sysroot
rsync -avz --rsync-path="sudo rsync" --delete <FELHASZNÁLÓNÉV>@<IP-CÍM>:/usr/include sysroot/usr
rsync -avz --rsync-path="sudo rsync" --delete <FELHASZNÁLÓNÉV>@<IP-CÍM>:/usr/lib sysroot/usr
rsync -avz --rsync-path="sudo rsync" --delete <FELHASZNÁLÓNÉV>@<IP-CÍM>:/opt/vc sysroot/opt

Az átmásolt könyvtárak tele vannak abszolút szimbolikus linkekkel, ezeket át kell konvertálni relatív linkekké, ehhez a symlink program szükséges

apt-get install symlink
symlink -rc sysroot

Qt fordítása

Forráscsomag letöltése

wget https://download.qt.io/official_releases/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz

Kicsomagolás

tar xvf qt-everywhere-src-5.15.2.tar.xz

Az mkspecs könyvtárat a fordítóhoz kell igazítani

cp -R qt-everywhere-src-5.15.2/qtbase/mkspecs/linux-arm-gnueabi-g++ qt-everywhere-src-5.15.2/qtbase/mkspecs/linux-arm-gnueabihf-g++
sed -i -e 's/arm-linux-gnueabi-/arm-linux-gnueabihf-/g' qt-everywhere-src-5.15.2/qtbase/mkspecs/linux-arm-gnueabihf-g++/qmake.conf

Indulhat a konfigurálás

cd build
../qt-everywhere-src-5.15.2/configure -release -no-opengl -linuxfb -device linux-rasp-pi4-v3d-g++ -device-option CROSS_COMPILE=arm-linux-gnueabihf- -sysroot ~/rpi/sysroot -prefix /usr/local/qt5.15.2 -extprefix ~/rpi/qt5.15.2 -opensource -confirm-license -skip qtscript -skip qtwayland -skip qtwebengine -nomake tests -make libs -pkg-config -no-use-gold-linker -v -recheck

Qt Creator beállítása