Qt Embedded Linux移植のポイント


3、組み込みlinuxバージョンのqt環境変数
POINTERCAL_FILE:タッチペンデバイスをキャリブレーションするためのファイルに含まれるデータを指定します.QWS CalibratedMouseHandler and Qt for Embedded Linux Pointer Handlingも参照できます.
QT_ONSCREEN_PAINT:定義されている場合は、コントロールを画面に表示するために使用できます.他のコントロールが同じ領域にない場合、デバイスが応答する領域は、スクリーンデバイス駆動の変化に伴って変化しません.この環境変数を設定することは、コントロール内のアプリケーションでQt::WA_を設定することに相当します.PaintOnScreen.
QWS_SW_CURSOR:定義されている場合、ソフトウェアマウスのカーソルは常に使用可能になります.(ハードウェアアクセラレータドライブを使用してハードウェアカーソルをサポートしても)
QWS_DISPLAY:表示形式とframebufferを指定します.例:export QWS_DISPLAY=[:]...[:]
QWS_SIZE:スクリーン上の埋め込みlinux qtウィンドウのサイズを指定します.export QWS_SIZE=x
QWS_MOUSE_PROTO:タッチデバイスを指定します.export QWS_MOUSE_PROTO=[:],パラメータはMouseMan,IntelliMouse,Microsoft,VR 41 xx,LinuxTP,Yopy.Tslib and keys./dev/mouseはマウスデバイス、/dev/ts for touch panelsを指す.
QWS_KEYBOARDは入力デバイスに入力デバイスと駆動を指定します.例:export QWS_KEYBOARD=[:].パラメータは、SL 5000、Yopy、VR 41 xx、TTY、USB and keys、標準デバイスを指定できます.例:/dev/tty 0.
4、組み込みlinuxでqtプログラムを実行する
任意の組み込みlinuxアプリケーションは、QLPplicationオブジェクトQLPplication::GuiServerのフォーマットを構築することによって、サービスサーバアプリケーションとして構築できます.または-qwsコマンドラインオプションを使用します.本明細書では、The Virtual Framebufferまたは埋め込みlinuxのVNCプロトコル、またはLinux framebufferが正しく構成されていると仮定する.サービスプロセスが実行されていません.使用できる表示方法は次のとおりです.

  
  
  
  
  1. Using a Single Display 

単一表示では、この表示方式を実行し、Linux consoleを変更し、実行するアプリケーションを選択します.インストール中に環境変数が使用可能であることが要求されます.指定したハードウェアデバイスドライバが正常に動作する必要があります.例:

  
  
  
  
  1. cd path/to/QtEmbedded/demos/textedit  
  2. ./textedit -qws  
  3. * Using Multiple Displays 

linuxはマルチデバイス表示もサポートしています.2つの方法で完成できます.マルチサービスプログラムを実行する場合は、ディスプレイの駆動(および数)を各プログラムに指定する必要があります.-displayコマンドラインまたはQWS_を使用DISPLAYが指定します.例:

  
  
  
  
  1. ./myfirstserverapplication -qws -display "transformed:rot90:1"  
  2. ./mysecondserverapplication -qws -display "QVFb:2" 

クライアントプログラムを開始するときに、表示デバイスを指定する必要があります.例:./myclientapplication -display "QVFb:2".プログラムが実行されると、あるクライアントプログラムをある表示から別の表示に移動することはできません.マルチディスプレイで駆動する一方、アプリケーションは2つの異なるタイプのディスプレイ間を容易に切り替えることができます.マルチスクリーン表示-displayコマンドラインパラメータで指定するか、QWS_を設定できます.DISPLAY環境変数:myserverapplication -qws -display "Multi: QVFb:0   QVFb:1:offset=0,0 VNC:offset=640,0 :2"

  
  
  
  
  1. * Command Line Options 

コマンドラインオプション
5、qtの埋め込みlinuxへの応用を移植する
移植プロセスとx 11プラットフォームへの移植の差は大きくなく,汎用的な移植プロセスを遵守している.次に、フォントライブラリのマイグレーション、環境変数の設定、およびFramebufferのサポートも含まれます.
フォントライブラリのサポート:qtの/lib/fontsディレクトリの下にあります.プログラムが実行されるとこのフォルダの下に呼び出されるため、フォントライブラリをこのディレクトリにコピーする必要があります.
環境変数の設定:通常、デフォルトの環境変数とは異なり、QWS_を設定する必要があります.MOUSE_PROTO, QWS_KEYBOARDおよびQWS_マウス、キーボード、およびディスプレイ管理を指定するDISPLAY../configureの場合、これらのデバイスを駆動できるようにするには、-qt-kbd-and-qt-mouse-を追加する必要があります.ただし、特定のデバイスを指定する必要があるため、環境変数を設定することで完了する必要があります.
framebufferのサポート:特別なニーズがない場合は、ターゲットデバイスでframebufferを使用できるようにする必要があります.Linux framebufferは標準設定の場合に使用可能です.
6、組み込みlinuxqt表示管理
表示が必要な場合、デフォルトの動作は、各埋め込みlinuxのクライアントが必要な表示の色調をメモリに格納し、サービス側が関連するデータを内蔵からディスプレイに送ることです.サービス側は、copyメモリの内容をディスプレイに表示するためにディスプレイで駆動します.ディスプレイの駆動は、サービス側アプリケーションのロード時に実行され、qtのプラグインシステムを使用します.一般的な方法は、使用可能なドライバです.ドライバを指定します.サブドライブとマルチドライブ.
Available Driversで使用可能なドライバ
埋め込みlinuxのqtが提供する駆動はLinux framebuffer,the virtual framebuffer,transformed screens,VNC servers and multi screensである.実行configureオプションを使用して、使用可能なドライバをリストします.デフォルトの構成では、加速しないLinux framebuffer driver(/dev/fb 0)が開きます.他のデバイスドライバは、以下のコマンドラインにより、イネーブルまたは禁止することもできます.例:./configure -qt-gfx-transformed
Specifying a Driverドライバを指定
環境変数QWS_を設定DISPLAYはデバイスを指定します.例えば、フォーマットは以下の通りです:export QWS_DISPLAY=「[:]...[:]」で使用できるパラメータは、LinuxFb、QVFb、VNC、Transformed、Multi and keys identifying custom driversです.パラメータは、同じ駆動の画面を分解し、多く表示できるようにします.ドライバを指定するには、次の表を使用します.環境変数のQWS_DISPLAYは-displayでも設定できます.例えば:myApplication-display"[:]......[:]
Subdrivers and Multiple Driversサブドライブとマルチドライブ
VNC,Transformed,およびMulti screen driversは,サブ駆動に依存する.一般的な文法は:export QWS_DISPLAY=「[:][:]...[:]」サブドライバについては、各サブドライバ間にスペースを付けることが重要であり、表示装置の前に各ドライバと表示装置を分離するために加算される.マルチスクリーンドライバは、export QWSのような複数のサブデバイスドライバを持つことができることに注意してください.DISPLAY="Multi:QVFb:0 QVFb:offset=640,0:1:2"VNC screen driverは、スクリーンドライバが指定されていない場合、デフォルトでは仮想スクリーンドライバです.この場合、VNCドライバには、*size=*depth=*mmHeight=のパラメータを指定する追加のパラメータがあります.
* mmWidth= .例:export QWS_DISPLAY="VNC:size=720x480:depth=32".例えば、VNCスクリーンドライバを実行してLinux framebuffer driverの場合:export QWS_DISPLAY="VNC:LinuxFb"
7、入力デバイスのキーボードとマウスの設定と管理
Qt for Embedded Linuxアプリケーションを実行すると、1つのサービスとしても別のサービスに接続しても、実行を開始すると、マウスドライバがサービスされたアプリケーションにロードされ、qtのplugin systemが使用されます.qtを構成するときに、サポートされているマウスおよびキーボードデバイスをオプションで選択し、使用可能なデバイスをテストします.
パス./configure-helpは使用可能なデバイスを表示し、デフォルトではPCのマウスドライバを設定します.タッチスクリーンなどのデバイスを自分で追加する場合は、QWS CalibratedMouseHandler subclassを作成して検証機能を完了する必要があります.提供されるpcのマウスが機能すると、Qt for Embedded Linuxは、/dev/psauxまたは/dev/ttySでサポートされているマウスデバイスを自動的に検出します.複数のタイプが検出されると、複数の同時サポートがサポートされます.なお、Qt for Embedded Linuxではタッチパネルの自動検出装置はサポートされていないため、どちらを使用するかを指定する必要があります.
環境変数QWS_を設定するにはMOUSE_PROTO、例:export QWS_MOUSE_PROTO=[:],パラメータはMouseMan,IntelliMouse,Microsoft,VR 41 xx,LinuxTP,Yopy,Tslib and keys,driver specific optionsが標準デバイスであり,例えばdev/mouse,タッチスクリーンは/dev/tsである.マルチマウスは以下の方法で指定できます.

  
  
  
  
  1. export QWS_MOUSE_PROTO="[:]  
  2.         [:]  
  3.         [:]" 

Vr 41 xxドライバには、クリック時間を定義するためにpress=の2つのオプションパラメータがあります(デフォルトは750).filter=フィルタ長を指定します.ノイズを考慮するために使用されます.例:

  
  
  
  
  1. export QWS_MOUSE_PROTO="Vr41xx:press=500:/dev/misc/ts" 

The Tslib Mouse DriverはQWS CalibratedMouseHandlerを継承するクラスであり、マウスイベントが発生したときに、同じタッチスクリーンを使用するライブラリのチェックとフィルタリング機能を提供する.マウスを使用するには、コンパイルする必要があるオプションは-qt-mouse-tslibです.また、tslibのヘッダファイルとライブラリもbuildの環境変数に指定します.tslibのソースコードはhttp://tslib.berlios.de.ダウンロードします.-Lと-Iでライブラリとヘッダファイルの場所を指定します.例:./configure  -L -I . マウスを使用できるように、tslibはターゲットマシンに正しくインストールする必要があります.ts.confプロファイルの提供と必要な環境変数の設定が含まれます.ts.confは2行を含む:内容は:module_raw input
module linearは、make Qt for Embedded Linuxでtslibマウスハンドルを特定し、環境変数QWSを設定します.MOUSE_PROTO .問題が発生する可能性があるのは、デバイスファイルとファイル権限の両方です.デバイスファイルを正しく使用できるように、最初のステップでは、デバイスファイルが出力されているかどうかをテストします.例えば、指定したマウスデバイスドライバが:QWS_である場合MOUSE_PROTO=IntelliMouse:/dev/input/mouse 0、そしてデバイスの出力をチェックし、コンソールで:cat/dev/input/mouse 0|hexdumpを叩くことで、マウスを移動した後、コンソールで出力が見える場合は、デバイスを正しく使用できることを示します.そうでない場合は、デバイスを再接続します.
デバイスの読み書き権限については、一般に、デバイスに少なくとも読み取り権限が必要です.例えば:QWS_MOUSE_PROTO=IntelliMouse:/dev/input/mouse 0の場合、デバイスの権限はchmod a+rw/dev/input/mouse 0に設定する必要があります.デバイスファイルシンボルが別のファイルに接続されている場合は、関連ファイルのプロパティを変更する必要があります.
セクション:http://mobile.51cto.com/symbian-272161_2.htm