Linux kernel 版本(uname -a) :
2.6.32-24-generic-pae #42-Ubuntu SMP
Xorg 版本(Xorg -version) :
X.Org X Server 1.7.6
Release Date: 2010-03-17
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.24-27-server i686 Ubuntu
裝置名稱 (lsusb) :
Bus 005 Device 002: ID 0408:3000 Quanta Computer, Inc.
裝置明細 (lshal) :
udi = '/org/freedesktop/Hal/devices/usb_device_408_3000_noserial_if0_hiddev'
hiddev.application_pages = {'Unknown page 0xd0004'} (string list)
hiddev.device = '/dev/usb/hiddev0' (string)
hiddev.product = 'Acer T230H' (string)
info.capabilities = {'hiddev'} (string list)
info.category = 'hiddev' (string)
info.parent = '/org/freedesktop/Hal/devices/usb_device_408_3000_noserial_if0' (string)
info.product = 'Acer T230H' (string)
info.subsystem = 'usb' (string)
info.udi = '/org/freedesktop/Hal/devices/usb_device_408_3000_noserial_if0_hiddev' (string)
linux.device_file = '/dev/usb/hiddev0' (string)
linux.hotplug_type = 2 (0x2) (int)
linux.subsystem = 'usb' (string)
linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/usb/hiddev0' (string)
這裡我們可以看到 '/dev/usb/hiddev0' 與 'Acer T230H' 這兩個會用到的資訊, 照別人說的建立一個檔案 /etc/udev/rules.d/99-touchscreen.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="0408", ATTRS{idProduct}=="3000", SYMLINK+="usb/quanta_touch"
SUBSYSTEM=="input", KERNEL=="event*", ATTRS{idVendor}=="0408", ATTRS{idProduct}=="3000", SYMLINK+="input/quanta_touch"
看到 0408 與 3000 跟先前看到的裝置名稱 (lsusb)是一樣的, 看來有機會成功? 這一步會在 /dev/usb 目錄產生一個 link : quanta_touch -> hiddev0 (但不知是否必要, 改天再來試)
最重要的驅動 hidtouch
記得把 hid-device-dump 也抓回來, 都裝起來
dump 一下裝置
hidDeviceDump /dev/usb/quanta_touch 13
這裡 13 是很重要的, 看下圖
每次的觸控都是 13 個東西吐出來, XY座標在第5(10030),6(10031)個欄位, 這裡(X, Y)就是 (1433, 552), 但Acer 的 T230H 是支援兩點的, 因此可以同時吐兩個座標出來
再來就是新增 /etc/X11/xorg.conf 這個檔案了
Section "InputDevice"
Identifier "Acer T230H"
Driver "hidtouch"
Option "SendCoreEvents" "true"
Option "ReportingMode" "Raw"
Option "Device" "/dev/usb/quanta_touch"
Option "PacketCount" "13"
Option "OpcodePressure" "852034"
Option "OpcodeX" "65584"
Option "OpcodeY" "65585"
Option "CalibrationModel" "1"
Option "CornerTopLeftX" "0"
Option "CornerTopLeftY" "0"
Option "CornerTopRightX" "1920" # 1920 for 23"
Option "CornerTopRightY" "0"
Option "CornerBottomLeftX" "0"
Option "CornerBottomLeftY" "1080" # 1080 for 23"
Option "CornerBottomRightX" "1920" # 1920 for 23"
Option "CornerBottomRightY" "1080" # 1080 for 23"
Option "CornerScreenWidth" "1920" # 1920 for 23"
Option "CornerScreenHeight" "1080" # 1080 for 23"
EndSection
Section "ServerLayout"
Identifier "Touchscreen"
InputDevice "Acer T230H" "SendCoreEvents"
EndSection
看到了嗎 "PacketCount"是"13"而
"OpcodeX" "65584"
"OpcodeY" "65585"
分別就是XY座標(10030)(10031)的兩個欄位 (別問我怎麼換算的, 我也不會)
看來相當有希望吧? 可是我重開機, 不會動, 就是不會動啊...
是哪裡錯了嗎? 檢查好幾遍都沒錯啊, 只好開始K文件了
看到
2. What's new
=============
This release fix the compilation problem, for the time being.
There was 2 notable new features in v10.05.18 :
- supporting screen rotation (only in 'four corner' calibration mode) whatever
the screen orientation (left, right, inverted, and normal), touching the screen
will place the cursor at the correct location.
- compatible with some multitouch device (THIS DOES NOT MEANS THAT THIS DRIVER
WILL SEND MULTITOUCH EVENT !) : when a device sends for each supported pointer
the same group of report, it is possible to take into account only the first
group.
Add the following to your xorg.conf, in the hidtouch section (in this sample
we suppose that the subgroup has 6 report) :
---8<------8<------8<------8<---
Option "PacketManagement_HasSubgroup" "1"
Option "PacketManagement_SubgroupPacketCount" "6"
Option "PacketManagement_Strategy" "0"
---8<------8<------8<------8<---
難不成要加這三行?加就加 (/etc/X11/xorg.conf), 結果真的會動了, 好感動...雖然只有單點
雖然會動是會動, 但常常冒出第二點, 看來要試試能不能支援兩點了.
沒有留言:
張貼留言