Qt Embeddedをインストールする

開発したアプリケーションを開発してターゲットシステムにインストールするためのツールをインストールするためのガイド。 メインPCはDebianを実行しており、ターゲットマシンは400 MHz Samsung S3C2440A ARM920Tプロセッサに基づくmini2440です。

このマニュアルでは、QVFBエミュレーターでの作業、ターゲットデバイス用の作業マシンでのコンパイル、tslibドライバーのコンパイルとインストール、ターゲットマシンへのライブラリのインストールについて説明しています。

画像



ショートアクションプラン
1. Q11 for X11をインストールし、QVFBをコンパイルします。
2. QVFBのQtをインストールします。
3. ARM用のコンパイラをインストールします。
4. Qt for ARMをインストールします。
5. tslibをコンパイルします。
6.ターゲットマシンにQtおよびtslibライブラリをインストールします。

XtのQtをインストールする

すべてのツールをインストールするには、作業マシンに約20 GB、ターゲットマシンに20 MBの空き容量が必要です。

Linux / X11用のQt 4.6.3ライブラリをダウンロードします。
不明な理由により、これより古いバージョンは、mini2440ターゲットデバイスでは動作しません。 したがって、このバージョンのみをARMのQtとして設定する必要があります。 XtのQtおよびQVFBのQtとして、公式サイトから最新バージョンをインストールできます。

インストールするときは、 公式サイトの指示に従ってください。

以下は、このケースで使用されたコマンドのセットです。
ライブラリをインストールします。 configureおよびmakeコマンドの結果としてエラーメッセージが表示される場合、これらのメッセージが参照する追加のライブラリをインストールし、コマンドを繰り返す必要があります。

sudo aptitude install libxtst-dev
sudo aptitude install libxext-dev
sudo aptitude install x11protoxext-dev
sudo aptitude install libxrender-dev
sudo aptitude install xnest

アーカイブを解凍します。

gunzip qt-everywhere-opensource-src-4.6.3.tar.gz
tar xvf qt-everywhere-opensource-src-4.6.3.tar
mv ./qt-everywhere-opensource-src-4.6.3 ./qt-X11-src-4.6.3

Qtでフォルダーに移動し、コンフィギュレーターを実行します(数分かかります)。 Qt for X11をインストールする場合、コンフィギュレーターにパラメーターを渡す必要はありません。 ライブラリは/usr/local/Trolltech/QT-4.6.3フォルダーにインストールされます

cd ./qt-X11-src-4.6.3
./configure

ライブラリをコンパイルします。 数時間かかります!

作る

configureおよびmakeコマンドの結果としてエラーメッセージが表示される場合、これらのメッセージが参照する追加のライブラリをインストールし、コマンドを繰り返す必要があります。
ライブラリをインストールします。 ライブラリは/usr/local/Trolltech/QT-4.6.3フォルダーにインストールされます

sudo make install

次に、QVFBユーティリティをコンパイルし、/ usr / local / Trolltech / QT-4.6.3 / binにコピーする必要があります。

cd ./tools/qvfb/
作る
sudo make install
cp ../../bin/qvfb /usr/local/Trolltech/QT-4.6.3/qvfb

デバイス画面エミュレーターであるQVFBユーティリティを入手しました。

QVFB用のQtをインストールする

qt-everywhere-opensource-src-4.6.3.tarアーカイブを別のフォルダーに解凍し、名前を変更します。

tar xvf qt-everywhere-opensource-src-4.6.3.tar
mv ./qt-everywhere-opensource-src-4.6.3 ./qt-qvfb-src-4.6.3

コンフィギュレーターを開始し、ライブラリーの場所とQVFBの使用を示すパラメーターを渡します。 -embedded x86オプションなしでは機能しません!

cd ./qt-qvfb-src-4.6.3
./configure -qvfb -embedded x86 -prefix / usr / local / Trolltech / Qt-qvfb

コンパイルしてインストールします。
作る

sudo make install

QVFBの動作を確認します。

/usr/local/Trolltech/QT-4.6.3/qvfb

-qwsスイッチを使用してQVFBでアプリケーションを実行します。

./examples/widgets/analogclock/analogclock –qws

すべてが正しければ、アプリケーションはQVFBウィンドウ内で起動します。

画像

ARM用コンパイラーのインストール
次に、デバイス用のコンパイラをインストールする必要があります。 mini2440には、 arm-linux-gcc 4.3.2が適しています。
解凍する必要があります。

gunzip arm-linux-gcc-4.3.2.tgz
tar xvf arm-linux-gcc-4.3.2.tar

/ usr / localのすべてをコピーします

cp –R ./usr/local/arm / usr / local / arm

PATH環境変数を変更します

export PATH = / usr / local / arm / 4.3.2 / bin:$ PATH

ARM用Qtをインストールする

Linux / X11用のQt 4.6.3ライブラリのみをインストールします。 不明な理由により、これより古いバージョンは、mini2440ターゲットデバイスでは動作しません。

tar xvf qt-everywhere-opensource-src-4.6.3.tar
mv ./qt-everywhere-opensource-src-4.6.3 ./qt-arm-src-4.6.3

最適化をオフにします。 これがないと、mini2440ターゲットデバイスでは何も機能しません。 これを行うには、。/ mkspecs / common / g ++。confファイルで、テキスト内に-O2および-O1オプションを見つけ、-O0に置き換えます。

コンフィギュレーターを起動し、パラメーターを渡します。 –qt-mouse-tslibパラメーターは、ターゲットデバイスでtslibドライバーを使用することを示します。

cd ./qt-arm-src-4.6.3
./configure –embedded arm –xplstform qws / linux-arm-g ++ -prefix / usr / local / Trolltech / Qt-arm –qt-mouse-tslib –little-endian –no-webkit –no-qt3support –no-cups- no-largefile –optimized-qmake –no-openssl –nomakeツール

コンパイルしてインストールします。

作る
sudo make install

Tslibのコンパイル

Tslibは、Qtを搭載したmini2440で使用できるタッチスクリーンドライバーです。 ライブラリをダウンロードして解凍します。

tar xjf tslib-1.0.tar.bz2
cd ./tslib-1.0

コンフィギュレーターに必要なパッケージをインストールします。

sudo aptitude install libtool
sudo aptitude install automake1.7
sudo aptitude install m4

コンフィギュレータスクリプトを実行します。

./autogen.sh
echo "ac_cv_func_malloc_0_nonnull = yes"> arm-linux.autogen
export CC = / usr / local / arm / 4.3.2 / bin / arm-linux-gcc
export CXX = / usr / local / arm / 4.3.2 / bin / arm-linux-g ++
export CONFIG_SITE = arm-linux.autogen
./configure --build = i386-linux --host = arm-linux --target = arm --disable-inputapi --prefix = $ PWD / build

コンパイルします。

sudo make
sudo make install

./buildフォルダーには、適切なフォルダー内のターゲットデバイスに配信する必要があるすべてのファイルがあります。

ターゲットマシンにライブラリをインストールする

ターゲットマシンをネットワークに接続して、telnetを起動する必要があります。 mini2440には、QtopiaがインストールされたLinuxがあります。

画像

稼働中のマシンで、ftpサーバーを起動します。
ビルドフォルダーをtslibからサーバーのルートフォルダーにコピーします。
また、ライブラリlibQtCore.so.4.6.3、libQtGui.so.4.6.3、libQtNetwork.so.4.6.3を/ usr / local / Trolltech / Qt-arm / libからコピーします。 拡張子を* .so.4.6.3から* .so.4に変更します(デバイスにはこれらのファイルが必要です)。
/ usr / local / Trolltech / Qt-arm / lib / fontsフォルダーからこれらのフォントをコピーします:DejaVuSans-Bold.ttf、DejaVuSerif-Bold.ttf、DejaVuSans.ttf、DejaVuSerif.ttf。
そして、。/ qt-arm-src-4.6.3 / examplesからいくつかのプログラムをコピーします。 たとえば、/ examples / qws / framebuffer / framefufferおよび/ examples / widgets / analogclock / analogclockです。

telnetを介してターゲットマシンに接続します(telnetの代わりに、キーボードを接続してmini2440で作業するだけです)。 そして、wgetコマンドを使用してftpからすべてをダウンロードします。

ダウンロードしたファイルを次のように配布します。
libQtCore.so.4.6.3、libQtGui.so.4.6.3、libQtNetwork.so.4.6.3を/ libフォルダーに追加します。
DejaVuSans-Bold.ttf、DejaVuSerif-Bold.ttf、DejaVuSans.ttf、DejaVuSerif.ttfをフォルダー/ usr / local / Trolltech / Qt-arm / lib / fontsに
framefuffer、analogclock in / home。
analogclockを実行してみることができます

analogclock –qws

時計が表示されますが、タッチスクリーンはまだ機能しません。
次に、tslibをインストールして構成します。
ftpサーバーには、tslibファイルを含む./buildフォルダーがあります。 フォルダーの内容は、ターゲットマシンのルートにコピーする必要があります。
次に、デバイスのts.confファイルを編集する必要があります。 mini2440の場合、内容は

module_raw入力
モジュールpthres pmin = 1
モジュール分散デルタ= 30
モジュールデジッタデルタ= 100
モジュールリニア

必要な環境変数を作成します

エクスポートTSLIB_TSDEVICE = / dev / input / event0
エクスポートTSLIB_CALIBFILE = / etc / pointercal
エクスポートTSLIB_CONFFILE = / etc / ts.conf
エクスポートTSLIB_PLUGINDIR = / lib / ts
エクスポートTSLIB_FBDEVICE = / dev / fb0
エクスポートTSLIB_CONSOLEDEVICE =なし
エクスポートQWS_MOUSE_PROTO = tslib:/ dev / input / event0

/ etc / pointercalファイルを自分で作成しないでください。
/ dev / input / event0はタッチスクリーンデバイスファイルです。 異なるデバイスでは、異なる場合があります。 この場合、作成する必要があります。

mknod c 13 64 / dev / input / event0

デバイスの正しい番号(13 64)はここにあります
/ sys /デバイス/仮想/入力/マウス/ input1 / event0 / dev
このようにデバイスをテストできます。

cat / dev / input / event0 | hexdump

画面をタッチすると、バイトのストリームが取得されます。
アプリケーションを実行し、タッチスクリーンとの相互作用を確認します。
binフォルダーのts_calibrateユーティリティを使用して画面を調整します。

analogclockを実行してみることができます

analogclock –qws

画像

Source: https://habr.com/ru/post/J106526/


All Articles