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



画像







All Articles