タッチスクリーンデバイスは、 XF86Config ファイル(たいていは /etc/X11/XF86Config か あるいは /etc/XF86Config です)にある Xinput セクションで設定します。 まず最初に、デバイスドライバモジュールが存在することを確認してください。 そのモジュールは /usr/X11R6/lib/modules/ にあります(先に触れたデバイス用の モジュールは xf86Elo.so と xf86MuTouch.so です)。 では、XF86Config を調べてみましょう。次のようなセクションがあるはずです。
Section "Files" ... ModulePath "/usr/X11R6/lib/modules" ... EndSection
X サーバーにそのモジュールをロードさせるには、次のようなセクションが必要です。
Section "Module" Load "xf86Elo.so" EndSection
さあ、ここはもう少し微妙な部分です。X はそのデバイスに関するパラメータを いくつか知っている必要があります。このためのセクションは次のようになります (詳細は "man XF86Config" を見て下さい)。
Section "Xinput" SubSection "Elographics" #MicroTouch デバイス用のエントリは "MicrotouchFinger" サブセクションになります。 Port "/dev/ttyS1" # シリアルポート 2 のデバイス用 DeviceName "TouchScreen" #他と重複しなければどのような名前でも良い。 MinimumXPosition 300 MaximumXPosition 3700 MinimumYPosition 300 MaximumYPosition 3700 UntouchDelay 10 #MuTouch ではサポートしていない ReportDelay 10 #MuTouch ではサポートしていない AlwaysCore #起動時にデバイスを作動させる EndSubSection EndSection
MinimumXPosition やその他のエントリで用いている値は、もちろんこのハードウェア をセットアップするのに特有のものです(つまり使っているモニターと タッチスクリーンの相対的な位置によって変わるわけです)。これらの値は モニター上のポイント(0,0) と (xmax,ymax) が、タッチスクリーン上のどこに マップされるかを決めるものです(xmax と ymax は、1024x768 といったような、 Xserver 用に選んだ解像度によって変わります)。デバイスドライバはこれら の値を読み込んで、他の座標を設定します。
-------------タッチスクリーン領域--------------- I I I ########目に見えるモニター領域############ I I #x # I I # (0,0) # I I # (MinimumXPosition,MinimumYPosition) # I I # # I I # # I I # # I I # # I I # # I I # # I I # # I I # (MaximumXPosition,MaximumYPosition)# I I # (xmax,ymax)# I I # x# I I ########################################## I I I ------------------------------------------------
このマッピング作業は試行錯誤で行なうか、あるいはデバイスの出力をそのままの状態で 読み込めばできます(後者の場合はある種のシリアルポートプログラミングが必要です。 "The Linux Serial Programming HOWTO"を見て下さい)。(訳注: 邦訳は、 Serial-Programming-HOWTO です。) EloTouch と MicroTouch のタイプについては、基本的な測定ツールが存在します (これはこの文書の著者が作ったもので、以下のサイトで見つかります。 ftp://metalab.unc.edu/pub/linux/X11/xutils/touchcal-0.1.tar.gz)。