Persiapan Raspberry Pi
Update package
Edit sources list /etc/apt/sources.list
, kemudian uncomment baris deb-src
:
sudo nano /etc/apt/sources.list
sudo apt-get update sudo apt-get dist-upgrade sudo reboot
Update Raspberry Pi firmware
sudo rpi-update sudo reboot
Install dependencies
sudo apt-get build-dep qt4-x11 sudo apt-get build-dep libqt5gui5 sudo apt-get install libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0
Persiapan Linux Host
Pada tutorial ini digunakan Ubuntu 16.04 x64.
Update package
sudo apt-get update sudo apt-get -y upgrade
Install dependencies
sudo apt-get install git bison python gperf
Buat folder kerja
sudo mkdir /opt/qt5pi sudo chown akhal:akhal /opt/qt5pi cd /opt/qt5pi
Clone toolchain
git clone https://github.com/raspberrypi/tools
Tambahkan toolchain binary di variabel PATH
nano ~/.bashrc
Tambahkan baris berikut:
export PATH=$PATH:/opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
Download QT Source
https://download.qt.io/official_releases/qt/5.9/5.9.6/single/qt-everywhere-opensource-src-5.9.6.tar.xz
Untar QT source
tar -xvf t-everywhere-opensource-src-5.9.6.tar.xz
Buat hf configuration
cp -R qt-everywhere-opensource-src-5.9.6/qtbase/mkspecs/linux-arm-gnueabi-g++ qt-everywhere-opensource-src-5.9.6/qtbase/mkspecs/linux-arm-gnueabihf-g++ sed -i -e 's/arm-linux-gnueabi-/arm-linux-gnueabihf-/g' qt-everywhere-opensource-src-5.9.6/qtbase/mkspecs/linux-arm-gnueabihf-g++/qmake.conf
Copy raspberry pi sysroot
mkdir sysroot sysroot/usr sysroot/opt rsync -avz akhal@192.168.1.100:/lib sysroot rsync -avz akhal@192.168.1.100:/usr/include sysroot/usr rsync -avz akhal@192.168.1.100:/usr/lib sysroot/usr rsync -avz akhal@192.168.1.100:/opt/vc sysroot/opt
Buat symlinks to “missing” libraries
mv sysroot/usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0 sysroot/usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0_backup ln -s sysroot/opt/vc/lib/libEGL.so sysroot/usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0
mv sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0 sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0_backup ln -s sysroot/opt/vc/lib/libGLESv2.so sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
ln -s sysroot/opt/vc/lib/libEGL.so sysroot/opt/vc/lib/libEGL.so.1
ln -s sysroot/opt/vc/lib/libGLESv2.so sysroot/opt/vc/lib/libGLESv2.so.2
Ganti absolute symlinks dalam bentuk relative symlinks
wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py chmod +x sysroot-relativelinks.py ./sysroot-relativelinks.py sysroot
Buat folder untuk build
mkdir qt5build cd qt5build
Konfigurasi QT Source
../qt-everywhere-opensource-src-5.9.6/configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=arm-linux-gnueabihf- -sysroot /opt/qt5pi/sysroot -prefix /usr/local/qt5pi -opensource -confirm-license -skip qtwebengine -skip qtscript -nomake examples -make libs -v
Jika muncul error unknown CPU architecture
ketika konfigurasi, tambahkan baris -no-use-gold-linker
sehingga menjadi:
../qt-everywhere-opensource-src-5.9.6/configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=arm-linux-gnueabihf- -sysroot /opt/qt5pi/sysroot -prefix /usr/local/qt5pi -opensource -confirm-license -skip qtwebengine -skip qtscript -nomake examples -make libs -v -no-use-gold-linker
Make
Jika konfigurasi sudah selesai, jalankan perintah make
.
make make install
Upload hasil compile ke Raspberry Pi
cd /opt/qt5pi rsync -avz sysroot/usr/local/qt5pi akhal@192.168.1.100:/usr/local
Konfigurasi Pada QT Creator
Install QT
Konfigurasi toolkit
Buka QT Creator, kemudian pilih option dan tambahkan parameter-parameter berikut:
- Tools->Options…->Devices->Add
Generic Linux Device
Edit host, username, dan password.
- Tools->Build&Run->Debuggers->Add
Edit name dan path ( /opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-gdb )
- Tools->Compilers->Add->GCC->C
Edit name dan path ( /opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-gcc )
- Tools->Compilers->Add->GCC->C++
Edit name dan path ( /opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++ )
- Tools->Qt Versions->Add
Pilih /opt/qt5pi/sysroot/usr/local/qt5pi/bin/qmake
- Tools->Kits->Add
Edit name
Device type: Generic Linux Device
Device: raspberry pi device
Sysroot: Choose /opt/qt5pi/sysroot
C and C++: Choose prior created raspberry pi compilers
Debugger: Choose prior created raspberry pi debugger
Qt version: Choose prior created raspberry pi qt version
nice info, can I share
Boleh, silahkan jika dirasa bermanfaat.