<!doctype linuxdoctr system>
<!-- LinuxDoc file was created by hand and emacs
 Fri Dec 10 17:45:29 GMT 1999 -->
<article>
<title>Linux Touch Screen HOWTO
</title>
<author>(c) 2002 by Christoph Baumann, cgb@debian.org
</author>
<date><!--v3.0, 2002-07-06-->v3.0 2002年7月6日
</date>

<trans>芳賀靖史, <tt>yasufumi.haga@nifty.com</tt>
<tdate>2002年8月2日
<abstract>
<!--This document describes how to set up a touch screen input device under 
XFree86. As the author had only the opportunity to work with devices
from EloTouch(R) and MicroTouch(R) this HOWTO is rather specific for these
devices. The examples given in this HOWTO concentrate on devices
connected via the serial port i.e. /dev/ttyS0 or /dev/ttyS1.
(Information about USB devices would be appreciated!)
The GNU Free Documentation License applies to this document.-->
この文書はXFree86の下で、タッチスクリーンという入力デバイスをセットアップ
する方法を解説したものです。著者が経験したのは、 EloTouch(R) 社と MicroTouch(R) 社
から出ているデバイスを使った仕事だけですから、この HOWTO は
どちらかといえば、これらのデバイスに関して特化したものになっています。
この HOWTO に載せている事例はシリアルポート、つまり /dev/ttyS0 あるいは
/dev/ttyS1 を通じて接続してあるデバイスに限定しています。
（USB デバイスについての情報をお待ちしています！）。
本文書のライセンスには、"The GNU Free Documentation License" を適用します。
</abstract>
<toc>

<sect><!--How to configure the device-->デバイスの設定方法
<p>
<!--
Touch screen devices are configured in the Xinput section in the XF86Config
file (mostly /etc/X11/XF86Config or /etc/XF86Config).
At first verify that the device driver modules exist. They are located in
/usr/X11R6/lib/modules/ (the modules for the above mentioned devices are 
xf86Elo.so and xf86MuTouch.so). Now have a look into XF86Config.
There should be a section looking like this:
-->
タッチスクリーンデバイスは、 XF86Config ファイル（たいていは /etc/X11/XF86Config か
あるいは /etc/XF86Config です）にある Xinput セクションで設定します。
まず最初に、デバイスドライバモジュールが存在することを確認してください。
そのモジュールは /usr/X11R6/lib/modules/ にあります（先に触れたデバイス用の
モジュールは xf86Elo.so と xf86MuTouch.so です）。
では、XF86Config を調べてみましょう。次のようなセクションがあるはずです。
</p>

<p><verb>
Section "Files"
...
ModulePath "/usr/X11R6/lib/modules"
...
EndSection
</verb></p>
<p>
<!--
To get the module loaded by the X server there has to be a section like this:
-->
X サーバーにそのモジュールをロードさせるには、次のようなセクションが必要です。
</p>
<p><verb>
Section "Module"
Load "xf86Elo.so"
EndSection
</verb></p>
<p>
<!--
Now the more tricky part. X needs to know some parameters about the device.
The section for this looks like this (see &dquot;man XF86Config&dquot; for more details):
-->
さあ、ここはもう少し微妙な部分です。X はそのデバイスに関するパラメータを
いくつか知っている必要があります。このためのセクションは次のようになります
（詳細は "man XF86Config" を見て下さい）。
</p>

<!--以下の例で、
"the entry for a MicroTouch device would be SubSection "MicrotouchFinger" は
「MicroTouch デバイス用のエントリは "MicrotouchFinger" サブセクションになります。」と
訳しました。
"for a device at serial port 2" は「シリアルポート 2 のデバイス用」と訳しました。
"could be any unambiguous name" は「他と重複しなければどのような名前でも良い。」と訳しました。
"not supported with MuTouch" は「MuTouch ではサポートしていない」と訳しました。
"activates the device on startup" は「起動時にデバイスを作動させる」と訳しました。
-->

<p><verb>
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
</verb></p>

<p>
<!--
The values for the entries MinimumXPosition etc. are of course specific
for the setup of the hardware (i.e. depend on the position of the touch
screen relative to the monitor). The values determine where the points (0,0)
and (xmax,ymax) on your monitor (xmax and ymax depend on the resolution
chosen for the Xserver, such as 1024x768) are mapped on the touch screen.
The device driver reads these values and interpolishes the other coordinates.
For illustration:
-->
MinimumXPosition やその他のエントリで用いている値は、もちろんこのハードウェア
をセットアップするのに特有のものです（つまり使っているモニターと
タッチスクリーンの相対的な位置によって変わるわけです）。これらの値は
モニター上のポイント(0,0) と (xmax,ymax) が、タッチスクリーン上のどこに
マップされるかを決めるものです（xmax と ymax は、1024x768 といったような、
 Xserver 用に選んだ解像度によって変わります）。デバイスドライバはこれら
の値を読み込んで、他の座標を設定します。
<!-- interpolish という単語が辞書には載ってませんでした。実際はどういう意味なんでしょう？-->
</p>

<p>
<!-- 原文の "touch screen area" と "visible monitor area" は
それぞれ下図のように訳しました-->
<verb>
 -------------タッチスクリーン領域---------------
 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
 ------------------------------------------------
</verb></p>

<p>
<!--
This mapping can be done by trial and error or by reading the raw output
of the device (needs some serial port programming, see &dquot;The Linux Serial 
Programming HOWTO&dquot;). For the types EloTouch and MicroTouch exists a
rudimentary calibration tool (written by the author of this document,
it can be found at 
<url
url=&dquot;ftp://metalab.unc.edu/pub/linux/X11/xutils/touchcal-0.1.tar.gz&dquot;
name=&dquot;ftp://metalab.unc.edu/pub/linux/X11/xutils/touchcal-0.1.tar.gz&dquot;>).
-->
このマッピング作業は試行錯誤で行なうか、あるいはデバイスの出力をそのままの状態で
読み込めばできます（後者の場合はある種のシリアルポートプログラミングが必要です。
"The Linux Serial Programming HOWTO"を見て下さい）。（訳注：
邦訳は、<url url="http://www.linux.or.jp/JF/JFdocs/Serial-Programming-HOWTO.html" 
name="Serial-Programming-HOWTO"> です。）
EloTouch と MicroTouch のタイプについては、基本的な測定ツールが存在します
（これはこの文書の著者が作ったもので、以下のサイトで見つかります。
<url
url="ftp://metalab.unc.edu/pub/linux/X11/xutils/touchcal-0.1.tar.gz"
name="ftp://metalab.unc.edu/pub/linux/X11/xutils/touchcal-0.1.tar.gz">）。
</p>

<sect><!--Activating the device-->デバイスの起動
<p>
<!--
After starting X, type in an Xterminal the command 
-->
X を起動したら、端末エミュレータで次のコマンドをタイプして下さい。
<p><tt>xsetpointer &lt;devicename&gt;</tt></p>
<p>
<!--
where<tt>&lt;devicename&gt;</tt> is the name defined in XF86Config  
with the line
<tt>DeviceName &dquot;.....&dquot;</tt>, in this example it would be TouchScreen.
-->
ここで、<tt>&lt;devicename&gt;</tt> は XF86Config 内で 
<tt>DeviceName "....."</tt> という行で定義してある名前です。この例では、
TouchScreen になります。
</p>
<p><!--To get the device working on startup use the AlwaysCore option in
the touch screen section (see above)
-->
起動時にデバイスを作動させるには、タッチスクリーンのセクションで AlwaysCore 
オプションを使って下さい（上記参照）。
</p>

<sect><!--Using touch screen and mouse in parallel-->タッチスクリーンとマウスの併行使用
<p>
<!--
To use the touch screen and a mouse in parallel you need to enter the
mouse specs in the Xinput-section. This definitions should be the same
as in the Pointer-section. The following example is for a
PS/2-mouse:
-->
タッチスクリーンとマウスを併行して使うには、Xinput のセクションでマウスの
仕様を記述する必要があります。この定義は Pointer のセクションの定義と同じ
になるはずです。以下の例は PS/2 マウス用のものです。

<!--以下の例の "could also be /dev/psaux" は 「/dev/psaux でも良い」と訳しました。-->
<verb>
Section "Xinput" 
   SubSection "Mouse" 
      Protocol "PS/2" 
      Port "/dev/mouse" #/dev/psaux でも良い
      DeviceName "Mouse" 
      AlwaysCore 
   EndSubSection
...
EndSection 
</verb>
<!--
Several people pointed this out, especially the usage of the
AlwaysCore option. Thanks to them all.
-->
何人かがこの部分、特に AlwaysCore オプションの使い方を指摘してくれました。
その人たちみんなに感謝します。
</p>

<sect><!--Configuration under XFree86 4-->XFree86 バージョン 4 での設定
<p>
<!--
(from Lee Monamy)
-->
（Lee Monamy が教えてくれました）
</p>
<p>
<!--
Example XF86Config-4 for an ELO touch screen:
-->
ELO タッチスクリーン用の、XF86Config-4設定例

<verb>
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
</verb>

<!--
Noteable differences between this and the version 3 config are that you
specify a Device, *not* a Port, otherwise you get an error.
Also, AlwaysCore from v3 has been replaced with SendCoreEvents.
-->
この設定とバージョン 3 の設定で注目すべき違いは、デバイスを指定するという
ことです。ポート「ではないんです」。そうしないとエラーが起きます。
また バージョン 3 の AlwaysCore は SendCoreEvents に置き換わりました。
</p>

<p>
<!--
You must also add to the ServerLayout section, despite that X might
say:
&dquot;(II) XINPUT: Adding extended input device &dquot;TOUCHSCREEN&dquot; (type:
Elographics Touch Screen)&dquot;
-->
また、X で次のようなメッセージが出ても、ServerLayout のセクションに
追加しなければなりません。<newline>
"(II) XINPUT: Adding extended input device "TOUCHSCREEN" (type:
Elographics Touch Screen)"

</p>
<p>
<verb>
Section "ServerLayout"
        Identifier      "Default Layout"
        Screen  "Default Screen"
        InputDevice "Generic Keyboard"
...
        InputDevice "ELO touchscreen"
EndSection
</verb>
</p>

<sect1><!--Another configuration example-->もう一つの設定例
<p>
<!--from Dirk Mueller -->これは Dirk Mueller が教えてくれました。
<!--(for Microtouch SMT3 Series):-->（Microtouch SMT3 シリーズ用です）
</p>
<p>
<verb>
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
</verb>
</p>
<p>
<!--
Option &dquot;Type&dquot; can be &dquot;finger&dquot; or &dquot;stylus&dquot;
Since Microtouch was bought by 3M-Touch, the resources are on
<url
url=&dquot;http://www.3M.com/3MTouchSystems/downloads/legacy.jhtml#Linux&dquot;
name=&dquot;http://www.3M.com/3MTouchSystems/downloads/legacy.jhtml#Linux&dquot;>
-->
"Type" オプションは "finger" でもいいし、"stylus" でもかまいません。
Microtouch 社は 3M-Touch 社が買収したので、情報は次のサイトにあります。
<url
url="http://www.3M.com/3MTouchSystems/downloads/legacy.jhtml#Linux"
name="http://www.3M.com/3MTouchSystems/downloads/legacy.jhtml#Linux">
</p>

<sect1><!--Addendum-->補足
<p>
<!--
According to Wong Yeow Sen the configuration option names have changed
in XFree86 4.2 (at least with Red Hat 7.3). If it seems your
calibration values aren't parsed try the following:
-->
Wong Yeow Sen によれば、XFree86 のバージョン 4.2 で設定オプション名が
変わりました（少なくとも RedHat 7.3 ではそうです）。自分の測定値が
解析されないようなら、次の方法を試してみて下さい。
</p>
<p>
<verb>
...
        Option  "MinX"      "100"
        Option  "MaxX"      "4000"
        Option  "MinY"      "100"
        Option  "MaxY"      "4000"
...
</verb>
</p>


<sect><!--Touch Screens on Fujitsu LifeBooks-->富士通 LifeBook のタッチスクリーン
<p><!--(from Joerg Hau)-->（Joerg Hau が教えてくれました）</p>
<p><!--Information about these devices can be found here:-->これらのデバイスに関する情報はここで見つかります。</p>
<p>"...</p>
<p>
<!--
Harald Hoyer's Linux Touch Panel Drivers for the Fujitsu Lifebooks
B112/B142/B2130, 
<url url=&dquot;http://parzelle.de/Linux/Lifebook/&dquot;
name=&dquot;http://parzelle.de/Linux/Lifebook/&dquot;>. Unfortunately,
this is XFree 3.x only and it seems that this information is now
&dquot;static&dquot; (dead?).
-->
Harald Hoyer が書いた、富士通 Lifebook 用タッチパネルドライバ B112/B142/B2130：
<url url="http://parzelle.de/Linux/Lifebook/"
name="http://parzelle.de/Linux/Lifebook/">
残念なことに、これは XFree 3.x 専用だし、この情報は今では「変化無し」です
（死んでるかな？）
</p>

<p>
<!--
Kenan Esau's Lifebook Series B Touchscreen driver, which is the
adaptation of Harald's driver to XFree 4.x.
<url
url=&dquot;http://stlx01.stz-softwaretechnik.de/~ke/lifebook/lifebook.html&dquot;
name=&dquot;http://stlx01.stz-softwaretechnik.de/~ke/lifebook/lifebook.html&dquot;>.
-->
Kenan Esau が書いた Lifebook シリーズ B のタッチスクリーンドライバです。これは
Harald のドライバを XFree 4.x 向けに改造したものです。
<url
url="http://stlx01.stz-softwaretechnik.de/~ke/lifebook/lifebook.html"
name="http://stlx01.stz-softwaretechnik.de/~ke/lifebook/lifebook.html">.
</p>

<p>
<!--
I [Joerg Hau] have used Kenan's driver on my Fujitsu LifeBook B142 
(described at
<url url=&dquot;http://www.mysunrise.ch/users/joerg.hau/linux/b142.htm&dquot;
name=&dquot;http://www.mysunrise.ch/users/joerg.hau/linux/b142.htm&dquot;>), 
and it works like a charm.
-->
私 [Joerg Hau] は自分の富士通 LifeBook B142で、Keran のドライバを
使ってきました（<url url="http://www.mysunrise.ch/users/joerg.hau/linux/b142.htm"
name="http://www.mysunrise.ch/users/joerg.hau/linux/b142.htm"> に説明してあります）
が、見事に動作しています。
</p>

<p>..."</p>

<sect><!--Suggested reading-->お奨めの読み物
<p>
<itemize>
<item><!--Manpage for XF86Config-->XF86Config のマニュアルページ
<item><url url="http://www.elotouch.com/support/linux.asp"
name="http://www.elotouch.com/Support/linux.asp">
<item><url url="http://www.microtouch.com/mthtml/05a1_drivers.htm"
name="http://www.microtouch.com/mthtml/05a1_drivers.htm">
<item><url url="http://www.hof-berlin.de/tablet/tablet.html"
name="http://www.hof-berlin.de/tablet/tablet.html"> <!--(Thanks to
Christer Olofsson for sending me this URL)-->（この URL を送ってくれた
Christer Olofsson に感謝します）
<item><!--The manual shipped with your touch screen :-)-->タッチスクリーンに
付いてきたマニュアル :-)
</itemize>

<sect>日本語訳について
<p>
日本語訳は2002年8月2日に芳賀靖史(yasufumi.haga@nifty.com)が作成しました。
<p>
チェックしていただいた JF の皆さんに感謝します。
</article>
