Linux Touch Screen HOWTO (c) 2002 by Christoph Baumann, cgb@debian.org v3.0 2002年7月6日 芳賀靖史, yasufumi.haga@nifty.com 2002年8月2日 この文書はXFree86の下で、タッチスクリーンという入力デバイスをセット アップする方法を解説したものです。著者が経験したのは、 EloTouch(R) 社 と MicroTouch(R) 社から出ているデバイスを使った仕事だけですから、この HOWTO はどちらかといえば、これらのデバイスに関して特化したものになって います。この HOWTO に載せている事例はシリアルポート、つまり /dev/ttyS0 あるいは /dev/ttyS1 を通じて接続してあるデバイスに限定しています。 (USB デバイスについての情報をお待ちしています!)。本文書のライセンス には、"The GNU Free Documentation License" を適用します。 ______________________________________________________________________ 目次 1. デバイスの設定方法 2. デバイスの起動 3. タッチスクリーンとマウスの併行使用 4. XFree86 バージョン 4 での設定 4.1 もう一つの設定例 4.2 補足 5. 富士通 LifeBook のタッチスクリーン 6. お奨めの読み物 7. 日本語訳について ______________________________________________________________________ 1. デバイスの設定方法 タッチスクリーンデバイスは、 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 )。 2. デバイスの起動 X を起動したら、端末エミュレータで次のコマンドをタイプして下さい。 xsetpointer ここで、 は XF86Config 内で DeviceName "....." という行で 定義してある名前です。この例では、 TouchScreen になります。 起動時にデバイスを作動させるには、タッチスクリーンのセクションで AlwaysCore オプションを使って下さい(上記参照)。 3. タッチスクリーンとマウスの併行使用 タッチスクリーンとマウスを併行して使うには、Xinput のセクションでマウ スの仕様を記述する必要があります。この定義は Pointer のセクションの定 義と同じになるはずです。以下の例は PS/2 マウス用のものです。 Section "Xinput" SubSection "Mouse" Protocol "PS/2" Port "/dev/mouse" #/dev/psaux でも良い DeviceName "Mouse" AlwaysCore EndSubSection ... EndSection 何人かがこの部分、特に AlwaysCore オプションの使い方を指摘してくれまし た。その人たちみんなに感謝します。 4. XFree86 バージョン 4 での設定 (Lee Monamy が教えてくれました) ELO タッチスクリーン用の、XF86Config-4設定例 Section "InputDevice" Identifier "ELO touchscreen" Driver "elographics" Option "Device" "/dev/ttyS0" Option "MinimumXPosition" "300" Option "MaximumXPosition" "3700" Option "MinimumYPosition" "300" Option "MaximumYPosition" "3700" Option "UntouchDelay" "10" Option "ReportDelay" "10" Option "SendCoreEvents" "yes" EndSection この設定とバージョン 3 の設定で注目すべき違いは、デバイスを指定すると いうことです。ポート「ではないんです」。そうしないとエラーが起きます。 また バージョン 3 の AlwaysCore は SendCoreEvents に置き換わりました。 また、X で次のようなメッセージが出ても、ServerLayout のセクションに追 加しなければなりません。 "(II) XINPUT: Adding extended input device "TOUCHSCREEN" (type: Elographics Touch Screen)" Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "Generic Keyboard" ... InputDevice "ELO touchscreen" EndSection 4.1. もう一つの設定例 これは Dirk Mueller が教えてくれました。(Microtouch SMT3 シリーズ用で す) Section "InputDevice" Identifier "MicroTouchFinger" Driver "mutouch" Option "Type" "finger" Option "Device" "/dev/ttyS0" Option "ScreenNo" "0" Option "MinimumXPosition" "0" Option "MaximumXPosition" "16383" Option "MinimumYPosition" "0" Option "MaximumYPosition" "16383" EndSection "Type" オプションは "finger" でもいいし、"stylus" でもかまいません。 Microtouch 社は 3M-Touch 社が買収したので、情報は次のサイトにありま す。 http://www.3M.com/3MTouchSystems/downloads/legacy.jhtml#Linux 4.2. 補足 Wong Yeow Sen によれば、XFree86 のバージョン 4.2 で設定オプション名が 変わりました(少なくとも RedHat 7.3 ではそうです)。自分の測定値が解析 されないようなら、次の方法を試してみて下さい。 ... Option "MinX" "100" Option "MaxX" "4000" Option "MinY" "100" Option "MaxY" "4000" ... 5. 富士通 LifeBook のタッチスクリーン (Joerg Hau が教えてくれました) これらのデバイスに関する情報はここで見つかります。 "... Harald Hoyer が書いた、富士通 Lifebook 用タッチパネルドライバ B112/B142/B2130: http://parzelle.de/Linux/Lifebook/ 残念なことに、これは XFree 3.x 専 用だし、この情報は今では「変化無し」です(死んでるかな?) Kenan Esau が書いた Lifebook シリーズ B のタッチスクリーンドライバで す。これは Harald のドライバを XFree 4.x 向けに改造したものです。 http://stlx01.stz-softwaretechnik.de/~ke/lifebook/lifebook.html . 私 [Joerg Hau] は自分の富士通 LifeBook B142で、Keran のドライバを使っ てきました(http://www.mysunrise.ch/users/joerg.hau/linux/b142.htm に説明してあ ります)が、見事に動作しています。 ..." 6. お奨めの読み物 o XF86Config のマニュアルページ o http://www.elotouch.com/Support/linux.asp o http://www.microtouch.com/mthtml/05a1_drivers.htm o http://www.hof-berlin.de/tablet/tablet.html (この URL を送ってくれた Christer Olofsson に感謝します) o タッチスクリーンに付いてきたマニュアル :-) 7. 日本語訳について 日本語訳は2002年8月2日に芳賀靖史(yasufumi.haga@nifty.com)が作成しまし た。 チェックしていただいた JF の皆さんに感謝します。