開発したアプリケーションを開発してターゲットシステムにインストールするためのツールをインストールするためのガイド。 メイン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