組み込みソフトウェア - Qtクロスコンパイル Raspberry Pi 4 コンピュータプログラムのスクリーンショット用のセットアップスクリプト

Qtクロスコンパイル設定

raspberry Pi 4用のスクリプト

前提条件

###ハードウェア ホスト[PC/ラップトップ]:任意のx 86/x 86_64 AMD/Intelマシン
ターゲット[Raspberry Pi 4 ]: Raspberry Pi 4

###ソフトウェア ホスト:任意のLinuxマシン(Ubuntu 20.04 LTSテスト済み)
対象: Raspberry Pi 4 Linux 32ビットOS ( Raspbian Bullseye Liteテスト済み)

注記事項

バックグラウンドで、Raspberry PiのクロスコンパイルツールチェーンabhiTronix使用されます。

###その他 のストレージと時間の要件:ビルドディレクトリには約10 GBのスペースと約2〜5時間かかります(依存関係とホストマシンの仕様に基づいています)。ネットワーキング:ターゲットマシン( Raspberry Pi )とホストマシン(クロスコンパイル)は、両方ともインターネットアクセスを持っている必要があり、これらの指示に従うには同じネットワーク上にいる必要があります。

ターゲットマシン( Raspberry Pi )の手順/設定

1.ゼロから開始(オプション)

重要

新しいRaspberry Piを持ってきたばかりか、ゼロから始めたい

場合は、フォローしてください。それ以外の場合は、すでにRaspberry Piのセットアップ、実行、およびネットワーク準備が完了している場合は、ステップ2に進みます。

注記事項

このセクションでは、Raspbian (Stretch/Buster/Bullseye) OSをインストールするための少なくとも10 GBのSDカードと、それをアップロードするためのラップトップ/PCを想定しています。

1.1ソフトウェアをダウンロードしてSDカードを準備する

  • Raspbian (Bullseye)の最新バージョンを ここからノート パソコン/PCにダウンロードします。-ダウンロードしたOSをSDカード(マイクロSDカード)に書き込むには、イメージライターが必要です。バレナ・エッチャーを使うこと ができる 。- SDカードをノートパソコン/PCに挿入し、イメージライターを実行します。開いたら、ダウンロードしたRaspbian画像ファイルを参照して選択します。正しいデバイス、つまりSDカードを表すドライブを選択します。

注記事項

選択したドライブ(またはデバイス)がSDカードと異なる

場合、選択した他のドライブが破損します。注意しましょう。

-書き込みが完了したら、SDカードを取り出してRaspberry Piに挿入し、オンにします。起動を開始するはずです。- Piを起動した後、「ユーザー名」やパスワードなどのユーザー認証情報が尋ねられる場合があることを忘れないでください。Raspberry Piには、デフォルトのユーザー名`pi`とパスワード`raspberry`が付属しているため、質問されたときにいつでも使用できます。#### 1.2ネットワークの設定

Raspberry Piをアップして実行すると、次のいずれかの方法でネットワークに接続できます。- **モニターがある場合:**キーボードとマウスと一緒にRaspberry piに接続してナビゲートし、このガイドに 従ってください 。- **モニターがない場合:**このガイドに 従っ

てください

2.SSHを設定

  • モニターがある場合: Raspberry Piターミナルで、「sudo raspi - config」と入力し、ターミナルにメニューが表示されます。SSHを有効にするには、[インターフェースオプション] -> [SSH] -> [はい]に移動し、[OK]をクリックして有効にします。[完了]を選択して、最後に終了します。- **モニターがない場合:**ネットワークを設定した後、モニターがない場合、またはモニターをリモート操作している場合。次に、SDカードを取り出してコンピュータに接続するだけでSSHを有効にし、SDカード内の/boot/paritionパスにsshという空のファイルを作成します。次に、Raspberry PiにSDカードを挿入します。3.ターミナルを開く

  • ** SSHを使用して別のラップトップ/PCから:**別のコンピュータからPiに接続するには、次のコマンドをコピーしてターミナルウィンドウに貼り付けますが、192.160.1.47をRaspberry PiのIPアドレスに置き換えます。

    ssh pi@192.168.1.47 

パスワードが要求され、変更されていない場合はデフォルト(raspberry)なので、要求されたときはいつでも使用してください。

注記事項

接続するたびにパスワードを入力する必要なく、別のコンピュータからアクセスできるようにRaspberry Piを設定することができます。詳細については、こちらを ご覧ください

【請求項4】スクリプトを取得

SSHでPiに接続し、ZIPファイルをダウンロードします。

ssh pi@192.168.1.47

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

ここからブラウザからZIPファイルをダウンロードすることもでき ます。スクリプトqt-cross-compile-script-pi4.shを実行可能にして実行します。
sudo chmod +x qt-cross-compile-script-pi4.sh
sudo ./qt-cross-compile-script-pi4.sh

必要なパッケージがすべてインストールされると、必要なディレクトリが作成され、シンボリックリンクが正しく設定されます。

重要

Raspberry Piとこのホストマシン(クロスコンパイルする場所)が同じネットワーク上にあること

を確認してください。

ホストマシン(Linux Ubuntu)の手順/設定

テストには、クリーンなUbuntu 20.04 LTSバージョンの仮想マシン( vmware )を使用しました。1.ZIPファイルをダウンロード

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
ここからブラウザからZIPファイルをダウンロードすることもでき ます。2.スクリプトqt-cross-compile-script-pi4.shを実行可能にして実行する
chmod +x qt-cross-compile-script-host.sh

3.スクリプトの変数を変更

するスクリプトでRaspberry piのIPアドレス(raspberry_ip)を変更し、Raspberryのユーザー(raspberry_user)とパスワード(raspberry_pwd)を変更する必要があります。

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

4. スクリプトの実行

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

スクリプトは次のアクションを実行します。-必要なパッケージをすべてインストールする -必要なディレクトリを作成する('~/rpi-qt')

  • Qtソースのダウンロードと抽出 -パッチQtソース -クロスコンパイラのダウンロードと抽出
  • Raspberry piからのrsyncファイル -シンボリックリンカーをダウンロードしてシンボリックリンクを設定する
  • Qtビルドを設定
  • Qtビルドを作成してインストールし ます- rsync QtバイナリをRaspberryに

##ターゲットマシンの最終ステップ( Raspberry Pi )

Raspberry Piでリンカを更新

する次のコマンドを入力して、リンカーに新しいQTバイナリファイルを見つけさせるデバイスを更新します。

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

クロスコンパイルのためのQt Creatorの設定

ブログを読むクロスコンパイル用にUbuntu20LtsでQt-Creatorを構成するコンパイルされたバイナリ(フォルダ ~/rpi-qt/qt5.15)をQt Creatorに含めるため。

著作権ライセンス

** Copyright © 2022 Interelectronix e.K.** このプロジェクトのソースコードは、** GPL-3.0 **ライセンスの下でライセンスされています。

謝辞

-このドキュメントは、Raspberry Piの最新のQtフレームワークをクロスコンパイルするための ステップバイステップの指示に触発されてい ます。@abhiTronixのおかげです。- QTフレームワークがソースファイルを 提供してくれたことに感謝します