[ TOP | Recently ]

2008-02-25 umsとタッチパネル

SA5SX04A のタッチパネルは普通にUSB Mouseに見えるのだが、NetBSDでは(ソース見た限りその他の*BSDでも)attachでコケる。
uhidev0 at uhub2 port 1 configuration 1 interface 0
uhidev0: DIALOGUE INC PenMount USB, rev 1.00/a4.b4, addr 3, iclass 3/1
ums0 at uhidev0
ums0: X report 0x0002 not supported
相対座標マウスしかサポートしてないからのようだ。タッチパネルなので絶対座標が返る(HIO_RELATIVEが付かない)。
どうでもいいが、ums_match() は成功するのに ums_attach() で弾くのはどう考えてもバグだろう。
少くともmatchで弾くようにしないと、uhidにfallbackしてくれない…

kernel config から ums* を削って uhid* で認識させて usbhidctl するとこんな感じ。

# usbhidctl -f 0 -v -r
Report descriptor:
Input   size=6 count=1 Const page=Digitizer usage=Touch_Screen, logical range 0..63
Collection page=Generic_Desktop usage=Mouse
Collection page=0x0000 usage=0x0000
Input   size=1 count=1 page=Button usage=Button_1, logical range 0..1
Input   size=1 count=1 page=Button usage=Button_2, logical range 0..1
Input   size=16 count=1 page=Generic_Desktop usage=X, logical range 0..1023, physical range 0..32767
Input   size=16 count=1 page=Generic_Desktop usage=Y, logical range 0..1023, physical range 0..32767
Feature size=8 count=1 page=Generic_Desktop usage=0x00ff, logical range 0..1023, physical range 0..32767
Feature size=8 count=1 page=Generic_Desktop usage=0x00ff, logical range 0..1023, physical range 0..32767
Feature size=8 count=1 page=Generic_Desktop usage=0x00ff, logical range 0..1023, physical range 0..32767
Feature size=8 count=1 page=Generic_Desktop usage=0x00ff, logical range 0..1023, physical range 0..32767
Feature size=8 count=1 page=Generic_Desktop usage=0x00ff, logical range 0..1023, physical range 0..32767
End collection
End collection
Total   input size 5 bytes
Total  output size 0 bytes
Total feature size 5 bytes
usage=0x00ffって何だろうとか思いつつ放置して、umsをタッチパネルに対応させる      ↓
Xorgを動かすが、タッチパネル無反応(想定外)
     ↓
Xorgのwsmouse対応は、絶対座標に対応してないことが判明
     ↓
Xorgを修正      ↓
動イター。でも座標ずれまくりんぐ(想定の範囲内)
     ↓
umsにtpcalibを入れる      ↓
動イター(いまここ)


EOF