2011年2月9日水曜日

NetWalker PC-T1スタイラスペンで右クリック

NetWalkerのフォーラムで、スタイラスペンでの右クリックできるかという質問があがってました。読んでみると、設定ファイルをいじることで可能になるということです。ただし、タッチパネルのドライバevtouchには、その設定をするとドラッグができなくなるバグがあり修正パッチをあてないといけないということです。

PC-T1用のドライバのバージョンは、
$ dpkg  -s  xserver-xorg-input-evtouch
として確認したところ、0.8.8-29-tsm5ということらしいです。
http://gr.archive.canonical.com/dists/jaunty-sendai/public/binary-armel/Packages
にも記載があります。ドラッグができなくなるバグの修正パッチより新しいので、もしかして設定ファイルの変更のみで大丈夫かもしれないと、試して見たところ、残念ながらドラッグができなくなりました。

設定ファイル50-Sharp.fdiは、/usr/share/hal/fdi/policy/20thirdparty/
にありましたが、こちらのページを参考にして、/etc/hal/fdi/policyにコピーして修正を加えました。
50-Sharp.fdiの中は、フォーラムにあるとおりにしています。

ドラッグができなくなってしまったので、とりあえず
/etc/hal/fdi/policy/50-Sharp.fdi
をホームフォルダに移動してもとにもどしました。

コンパイルしなおさないといけないようですので、ソースファイルを手に入れます。
ここにevtouchのソースファイルやdebパッケージがあるようす。

wgetで、以下3つのファイルを取得しました。
xf86-input-evtouch_0.8.8.orig.tar.gz
xf86-input-evtouch_0.8.8-29-tsm5.tar.gz
xf86-input-evtouch_0.8.8-29-tsm5.dsc

例のごとく、ソースファイルを展開します。
$ dpkg-source -x  xf86-input-evtouch_0.8.8-29-tsm5.dsc

まずは、環境が整っているか確認のために、ビルドしてみました。
$ cd  xf86-input-evtouch_0.8.8-29
で、展開されてできたフォルダに移動したのち、
$ dpkg-buildpackage -rfakeroot
とします。やはり足りないパッケージがあったりして、止まります。

私の現在の環境では、
xserver-xorg-dev
libgconf2-dev
quilt
uudecode
がなく、そのつど止まりました。
uudecodeは、sharutilsというパッケージにあるようです。
足りないパッケージをapt-getでインストールしていき、無事完了しました。

これをインストールしても、現状と変わらないので、例の修正パッチをあてようと思ったのですが、パッチのあてかたがわかりません。フォーラムで紹介されているパッチファイルを眺めるとちょっとした修正なので、ソースファイルを直接エディタで修正してしまいました。

修正ののち、ビルドを試みると、その途中で過去のパッチを削除したり当てたりと複雑な手続きをしているらしく、ソースファイルを修正したことが影響して手続きが止まってしまうようです。パッケージに含まれるパッチにない修正が加わったということで、問題なのだろうことは想像できます。

パッケージのビルドが無理なら、ドライバファイルだけでもできればいいということで、
$ ./configure
として、
$ make
とやったところ、evtouch_drv.soが.lib/に出来上がりました。
 
ソースファイル修正のあとに、dpkg-buildpackageを行いビルドを試みて失敗しているので、一部のパッチが削除されているのではないかと不安になり、やりなおしました。

新しいevtouch_drv.soが手に入りました。このあとどうすればよいのかわかりません。ここをみて、単純にコピーすればよいのかと考え、
/usr/lib/xorg/modules/input
の中にevtouch_drv.soがあることを確認して、それをコピーしてバックアップしたのちに、新しいevtouch_drv.soを上書きしました。makeしたフォルダの中で、
$ sudo cp .lib/evtouch_drv.so /usr/lib/xorg/modules/input
を行っただけです。

さらに長押しで右クリックの動作ができるようにした設定ファイル50-Sharp.fdiを/etc/hal/fdi/policyにコピーしました。再起動したところ、(再起動させずに反映させる方法をしらないので)無事に、長押しで右クリックもでき、ドラッグも行えました。

ソースに手を加えたうえで、パッケージにできる方がいらっしゃると皆さんが簡単に利用できるようになりますね。

2011/02/11 追記
その後、NetWalkerユーザーフォーラムで、ztoさんがタッチの開始が遅くなる不具合などを改善したものをパッケージ化してくれたので、そちらを利用させてもらっています。