Qt for QNX ランタイムターゲットの要件

QNX ソフトウエア システムズでは、組み込みデバイスを作成するためのソフトウエア ソリューションを提供しています。これには、非常に柔軟な方法で QNX Neutrino RTOS ブート イメージを作成することも含まれます。QNX が OS イメージ作成用のリファレンス スクリプトをいくつか提供していても、遅かれ早かれ変更が必要になったり、OS イメージをゼロから作成することになったりします。Qt は、いくつかのサードパーティ コンポーネントと選択された OS サービスの存在に依存しています。このため、Qt を実行するターゲット デバイス用の QNX Neutrino RTOS ブート イメージは、Qt が期待どおりに動作するように、次のセクションに示す要件を満たす必要があります。

QNX スクリーン グラフィックス サブシステム

Qt アプリケーションを起動する前に、QNX Screen Graphics Subsystem(単に「Screen」とも呼ばれる)が実行されている必要があります。Screen は、ドライバと Qt が使用するいくつかのユーティリティとサービスで構成されています。これには、マウス イベントとキーボード イベントの処理も含まれます。gles2-gears のようなグラフィック・アプリケーションが問題なく起動・実行できることを確認することで、Screen が正しく設定・実行されていることを確認できます。

SDPに含まれる最近のサンプルOSビルドスクリプトのほとんどには、 Screenのすべてのコンポーネントと開始コマンドを記述したセクションが 含まれている。参考として使用できる。

IPv6 サポート

Qt のネットワーキング・スタックでは、実際のネットワーキングが IPv4 と IPv6 のどちらを使用するかに関係なく、IPv6 サポートを有効にする必要があります。

警告: io-pkt-v4ではなく、io-pkt-v6-hc を実行する必要があります。

ランダムデバイス/dev/random

Qt では/dev/random が存在し、機能している必要があります。Qt アプリケーションを起動する前か、システム起動中に起動してください:

random -p
waitfor /dev/random

システム ロガー

QNX は、組み込みシステムの仕様に合わせて調整されたslog2ロギング フレームワークを提供しています。このフレームワークの主な利点は、ファイルへのテキスト出力よりもはるかに優れたパフォーマンスです。Qt は、QNX Neutrino RTOS のQDebug を経由するロギング出力に、デフォルトでこのフレームワークを使用します。slog2 サービスは、システム起動時に開始する必要があります。slog2/tmp フォルダの存在にも依存しています:

[type=link] /tmp=/dev/shmem
display_msg "Starting slogger2..."
slogger2 -U1001:1000 &
waitfor /dev/slog2

環境変数

Qt アプリケーションを起動するときに設定する環境変数があります。そのほとんどは、QNX Neutrino RTOS 固有のものではありません。知っておくと問題が発生したときに時間を節約できるので、ここではまだ触れていません。

注: setconfgetconf は、POSIX 環境変数(特にホスト名と日時)にアクセスするために必要です。

Qt ランタイムの場所

RPATH 環境変数を設定して Qt をビルドしなかった場合、Qt ランタイムコンポーネントはファイルシステム内の任意のフォルダに置くことができます。以下の環境変数は、Qt のインストールが<Qt-install-path> にあると仮定して、有効な場所を指しているはずです:

  • LD_LIBRARY_PATH には Qt ライブラリへのパスが含まれていなければなりません( )。<Qt-install-path>/lib
  • QT_PLUGIN_PATH Qt プラグインの場所を定義します。 に設定してください。<Qt-install-path>/plugins
  • QML2_IMPORT_PATH Qt Quick プラグインの場所を定義します。 に設定する必要があります。<Qt-install-path>/qml
  • Qt が fontconfig を使わない場合は、QT_QPA_FONTDIR でフォントのパスを指定するか、デフォルトのフォントの場所である<Qt-install-path>/lib/fonts の下にフォントを配置する必要があります。
  • 利用可能なスクリーン/ディスプレイの数と順序については、QT_QPA_QNX_DISPLAY_CONFIG を確認してください。

物理的な画面サイズ

Qt は、 DPI 値を決定 し て正 し い文字サ イ ズ を設定す る ために、 接続 さ れてい る デ ィ ス プ レ イ の物理的寸法に関す る 情報を必要 と し ます。通常、この情報はスクリーンから提供されます。場合によっては、0mmx0mmのような無効なスクリーンサイズが表示されることがあります。このような場合、Qtは必要な情報を得るために、環境変数QQNX_PHYSICAL_SCREEN_SIZE を適切な値に設定する必要があります。Qt アプリケーションが、物理的な画面サイズを決定できなかったというエラーメッセージを表示して終了する場合は、Qt アプリケーションを起動する前に、次のように変数を設定してください:

export QQNX_PHYSICAL_SCREEN_SIZE=150,100

この場合、スクリーンの幅は150mm、高さは100mmです。物理的な画面サイズはミリメートル(mm)単位で測定され、最終的な構成におけるディスプレイの実際の物理的なサイズに対応する必要があります。

Qtアプリケーションの初回起動時のトラブルシューティング

QNX Neutrino RTOS が提供する柔軟性の唯一の欠点は、ターゲット上で実行環境が Qt が期待するものと若干異なるというリスクです。これは、新しいターゲットの Qt アプリケーションが起動しない一般的な理由です。いくつかの一般的な環境変数は、問題の根本的な原因を突き止めるのに役立ちます:

  • QT_DEBUG_PLUGINS1 に設定すると、QPA プラグインがロードできない理由を確認できます。
  • LD_DEBUG1 に設定すると、共有ライブラリのロード場所とロード方法を確認できます。こ れは、 プ ラ グ イ ンの ロ ー ド に失敗 し た原因が他の共有 ラ イ ブ ラ リ を ロ ー ド で き なか っ た と き に、QT_DEBUG_PLUGINS と 組み合わせて使用で き ます。
  • QT_LOGGING_TO_CONSOLE を設定すると、すべてのロギングメッセージがslog2 ではなくstderr に送信されます。メッセージを見るために別のツールを使う必要がないので、アプリケーションの起動時の問題を分析するのに便利です。

Qt は通常fontconfig を使ってシステムフォントにアクセスします。フォントキャッシュがまだ作成されていない場合、最初の Qt アプリケーションの起動時に作成されます。セットアップによっては非常に長い時間がかかり、アプリケーションの起動が大幅に遅れることがあります。必要なければ、configure 時に -DFEATURE_fontconfig=OFF で fontconfig を無効にできます。

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。