2008-02-25 umsとタッチパネル
SA5SX04A のタッチパネルは普通にUSB Mouseに見えるのだが、NetBSDでは(ソース見た限りその他の*BSDでも)attachでコケる。
どうでもいいが、ums_match() は成功するのに ums_attach() で弾くのはどう考えてもバグだろう。
少くともmatchで弾くようにしないと、uhidにfallbackしてくれない…
kernel config から ums* を削って uhid* で認識させて usbhidctl するとこんな感じ。
Xorgを動かすが、タッチパネル無反応(想定外)
↓
Xorgのwsmouse対応は、絶対座標に対応してないことが判明
↓
Xorgを修正 ↓
動イター。でも座標ずれまくりんぐ(想定の範囲内)
↓
umsにtpcalibを入れる ↓
動イター(いまここ)
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 bytesusage=0x00ffって何だろうとか思いつつ放置して、umsをタッチパネルに対応させる ↓
Xorgを動かすが、タッチパネル無反応(想定外)
↓
Xorgのwsmouse対応は、絶対座標に対応してないことが判明
↓
Xorgを修正 ↓
動イター。でも座標ずれまくりんぐ(想定の範囲内)
↓
umsにtpcalibを入れる ↓
動イター(いまここ)
EOF