HMI
Raspberry Pi 4のQt

Qtは、グラフィックインターフェイスの開発によく使用されます。Qtには、さまざまなオペレーティングシステムでコンパイルできるグラフィカルインターフェイスを作成するためのC++のライブラリが含まれています。このコンパイルのためには多くの計算能力が必要なため、比較的能力の低いプロセッサでは、ホストコンピュータで開発とコンパイルを実行してから、完成したアプリケーションをターゲットコンピュータにロードすることをお勧めします。Raspberry Pi 3およびPi 4モデル用のQtアプリケーションを開発するための手順はオンライン上にたくさんあります。残念ながら、Raspberry Pi 4で問題なく機能するものは見つかりませんでした。これらの手順はhttps://www.kampis-elektroecke.de/raspberry-pi/qt/に基づいており、機能するためにいくつかの箇所に変更を加えました。Qtにはバージョン5.14.1が使用されており、クロスコンパイル用のホストコンピューターとしてvmwareにインストールされているUbuntu 18 LTSを使用しています。## Raspberry Pi 4の準備

基本的なインストールには、Pi 4にRaspbianオペレーティングシステムが必要です。「2020-02-13-raspbian-buster-lite.img」を使用しました。これを使用してSDカードを作成する方法のダウンロードと手順は、https://www.raspberrypi.org/downloads/raspbian/に書かれています。Pi 4の電源を入れると、設定メニューが表示され、さまざまな設定(ホスト名、IPアドレスなど)を行うことができます。この構成では、「SSH」と「GL(Fake KMS)」が必要です。次の2つのスクリーンショットを参照してください。

SSH Konfiguration

FKMS Konfiguration

  • 次に、/etc/apt/sources.listに開発ソースを入力します。次の行を追加します。
deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
  • 次に、次のコマンドを使用し、システムを更新します。
sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot
sudo rpi-update
sudo reboot
  • 次に、必要なQtおよび開発パッケージをインストールします。
sudo apt-get build-dep qt5-qmake
sudo apt-get build-dep libqt5gui5
sudo apt-get build-dep libqt5webengine-data
sudo apt-get build-dep libqt5webkit5
sudo apt-get install libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0 gdbserver

重要: 一部の手順において説明されているように、EGLおよびGLESライブラリのシンボリックリンクを作成または変更しないでください。- 次に、RaspberryQtのディレクトリも作成します。

sudo mkdir /usr/local/RaspberryQt
sudo chown -R pi:pi /usr/local/RaspberryQt

Ubuntuの準備

  • ソフトウェアを更新し、追加のパッケージをインストールします。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install gcc git bison python gperf pkg-config gdb-multiarch
  • Raspberryのsshキーを生成し、Raspberryにインストールします。
ssh-keygen -t rsa -C [email protected] -P "" -f ~/.ssh/rpi_root_id_rsa
ssh-keygen -t rsa -C [email protected] -P "" -f ~/.ssh/rpi_pi_id_rsa
cat ~/.ssh/rpi_root_id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys && chmod 640 .ssh/authorized_keys'
cat ~/.ssh/rpi_pi_id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys && chmod 640 .ssh/authorized_keys'
  • gccコンパイラ、Qt、およびシンボリックリンクスクリプトをダウンロードします。
mkdir /opt/RaspberryQt
cd /opt/RaspberryQt
wget http://download.qt.io/archive/qt/5.14/5.14.1/single/qt-everywhere-src-5.14.1.tar.xz
wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py
  • ファイルには、Raspberry Piのクロスコンパイラ、使用されているQtバージョン(ここでは5.14.1を使用しています)、およびファイルのシンボリックリンクを相対リンクに置き換えるためのPythonスクリプト(後で必要)が含まれています。- gccコンパイラ「rpi-gcc-8.3.0_linux.tar.xz」をhttps://bugfreeblog.page.link/rasplinuxgcc830 からダウンロードし、toolsディレクトリに解凍します。- Qtバージョンが抽出され、使用されるコンパイラの名前(ここではarm-linux-gnueabihf)がQt設定ファイルで調整されます。
tar xf qt-everywhere-src-5.14.1.tar.xz
cp -R qt-everywhere-src-5.14.1/qtbase/mkspecs/linux-arm-gnueabi-g++ qt-everywhere-src-5.14.1/qtbase/mkspecs/linux-arm-gnueabihf-g++
sed -i -e 's/arm-linux-gnueabi-/arm-linux-gnueabihf-/g' qt-everywhere-src-5.14.1/qtbase/mkspecs/linux-arm-gnueabihf-g++/qmake.conf
  • 作業ディレクトリを作成します。
sudo mkdir /opt/RaspberryQt
sudo mkdir /opt/RaspberryQt/build
sudo mkdir /opt/RaspberryQt/sysroot
sudo mkdir /opt/RaspberryQt/sysroot/usr
sudo mkdir /opt/RaspberryQt/sysroot/opt
sudo chown -R 1000:1000 /opt/RaspberryQt
  • ターゲットマシン(ここではRaspberry Pi)で使用されるライブラリも必要です。これらは、rsyncを使用してRaspberry Piからダウンロードすることができます。
rsync -avz [email protected]:/lib sysroot
rsync -avz [email protected]:/usr/include sysroot/usr
rsync -avz [email protected]:/usr/lib sysroot/usr
rsync -avz [email protected]:/opt/vc sysroot/opt
  • ただし、ファイルを使用する前に、Raspberry Piのファイルシステムを指しているシンボリックリンクを、新しいsysrootディレクトリからの相対リンクに置き換える必要があります。これは、ダウンロードしたPythonスクリプトを使用して行われます。
sudo chmod +x sysroot-relativelinks.py
./sysroot-relativelinks.py sysroot
  • 最後に、Qtも設定されます。
cd /opt/RaspberryQt/build
../qt-everywhere-src-5.14.1/configure -release -opengl es2  -eglfs -device linux-rasp-pi4-v3d-g++ -device-option CROSS_COMPILE=/opt/RaspberryQt/tools/rpi-gcc-8.3.0/bin/arm-linux-gnueabihf- -sysroot /opt/RaspberryQt/sysroot -prefix /usr/local/RaspberryQt -opensource -confirm-license -skip qtscript -skip qtwayland -skip qtwebengine -nomake tests -nomake examples -make libs -pkg-config -no-use-gold-linker -v -recheck
make -j4
make install
  • 完全にコンパイルされたQtライブラリは、rsyncを使用してRaspberry Piにコピーされます。
cd /opt/RaspberryQt
rsync -avz sysroot/usr/local/RaspberryQt [email protected]:/usr/local

Qt Creatorのインストール

Qtアプリケーションを開発する最良の方法は、Qt Creatorを使用することです。インストールするには、QtのWebサイトからオンラインインストールファイルをダウンロードして実行してください。## アップデートバージョン

このブログ投稿の更新は、一連の3つのブログ投稿で提供されています。- Raspberry Compute Module 4へのRaspberry Pi OSのインストール