จุดมุ่งหมาย: ฉันมีไวท์บอร์ดซึ่งเลียนแบบเป็นเมาส์ ดังนั้นเมื่อคุณคลิกและลากบนไวท์บอร์ดมันควรเลื่อนเคอร์เซอร์ ฉันต้องการให้ไวท์บอร์ดใช้งานได้ใน Ubuntu มันทำงานบน windows ข้อมูลอุปกรณ์: ผลลัพธ์cat /proc/bus/input
ที่มีข้อมูลอุปกรณ์
I: Bus=0003 Vendor=4623 Product=011a Version=0111
N: Name="Hite Board-XXXXXXXX"
P: Phys=usb-0000:00:14.0-1/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/
U: Uniq=
H: Handlers=mouse2 event13
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0
B: ABS=260800000000003
abhishek@vaio:~$ lsusb -d 4623:011a -v
Bus 001 Device 012: ID 4623:011a
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x4623
idProduct 0x011a
bcdDevice 0.01
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 73
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 150mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 429
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 8
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 6
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 33 US
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 91
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
เนื่องจากbInterfaceProtocol
เป็น none, linux จึงไม่รู้จักว่าเป็นอุปกรณ์ป้อนข้อมูลด้วยเมาส์
อะไรคือวิธีที่ดีที่สุดในการทำวิศวกรรมย้อนกลับจากหน้าต่างเพื่อให้ทำงานใน Linux ได้
อุปกรณ์ในตัวจัดการอุปกรณ์ windows:
แก้ไข 1:
abhishek@vaio:~/dev_work/whiteboard/pyusbwhiteboard$ usb-devices | grep -A5 'Vendor=4623 ProdID=011a' | grep Driver
I: If#= 0 Alt= 0 #EPs= 2 Cls=03(HID ) Sub=00 Prot=00 Driver=usbfs
I: If#= 1 Alt= 0 #EPs= 2 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
เอาต์พุต dmesg: http://codepad.org/fFtwryw6
@SamProtsenko เพิ่มแล้วโปรดตรวจสอบ
—
Abhishek Bhatia
ตกลงดังนั้นไดรเวอร์อยู่ในสถานที่และคุณจะต้องบอก Linux (ส่วนผู้ใช้พื้นที่) ว่าอุปกรณ์ของคุณเป็นเมาส์ ฉันไม่ได้พบว่าตัวเองอยู่ในสถานการณ์เช่นนี้ แต่ถ้าฉันเป็นคุณฉันพยายามที่จะระบุว่าใน xorg.conf (ค้นหาโดย
—
Sam Protsenko
InputClass
, MatchVendor
, MatchProduct
คำหลัก) หรือพยายามที่จะใช้แทนbInterfaceProtocol
และbInterfaceSubclass
ใช้กฎ udev
จากเอาต์พุต dmesg ที่คุณให้ดูเหมือนว่าจะรับรู้เป็นหน้าจอสัมผัสแทนที่จะเป็น (แค่) เมาส์ (
—
JanC
hid-multitouch
โหลดไดรเวอร์)?
@Janc คุณถูกต้อง
—
Abhishek Bhatia
usb-devices | grep -A5 'Vendor=4623 ProdID=011a' | grep Driver
คืออะไร:dmesg
ยังพยายามที่จะตัดการเชื่อมต่อและการเชื่อมต่ออุปกรณ์ของคุณอีกครั้งเรียกใช้แล้ว มันพูดว่าอะไร?