Hey all-
I've tried asking around for help, but maybe I haven't been doing it in
the right place. I'm really stuck and could use a hand!
I have a USB touchscreen (by Nextwindow) which I'm trying to get to
work with Linux. Plugged in under Windows it gets detected as a HID-
compliant mouse and works without any special drivers. Plugged in under
Linux, three device entries are created under /sys/bus/usb/devices, one
for the Mouse, one for "Comms" and one for "Keyboard" - so it appears as
a multi-device adapter. I'm only interested in mouse functionality.
I'm trying to understand how this all hangs together, any help would be
appreciated.
OS: Fedore Core 3
Kernel: kernel2.6.10-1.770_14.rhfc3.at (ATrpms patches to stock FC3
kernel)
Four udev devices are created when I plug in the device:
Mouse:
/dev/input/event2
/dev/input/js0
Keyboard:
/dev/usbhid0
/dev/input/event3
Comparing to when I plug in a USB microsoft intellimouse, I get two
devices:
/dev/input/mouse0
/dev/input/event4
Now if I try to read the raw device output via gpm (using the "event"
device created for the microsoft mouse):
#gpm -D -m /dev/input/event4 -Rraw
I get:
*** info [startup.c(95)]: Started gpm successfully. Entered daemon mode.
*** debug [console.c(125)]: Screen size: 80 - 25
*** debug [gpm.c(159)]: x 10, y 20
...to standard out which stays like that until I move the mouse. Once I
move the mouse I endlessly get:
*** err [gpm.c(89)]: Error in read()ing first: No such file or directory
*** debug [gpm.c(533)]: selected 1 times
...to standard error.
The *identical* thing happens if I try to read the raw output from the
"event" device created by the touchscreen:
# gpm -D -m /dev/input/event2 -Rraw
...with the looping error messages not appearing until I touch the
screen somewhere. So there's definitely a form of interaction going on.
It seems that Linux is creating a "/dev/input/js0" (joystick) device for
the "mouse" portion of the touchscreen, instead of
creating /dev/input/mouse0 like it knows to do with the Intellimouse.
I can't get any useful feedback from trying to directly talk to the js0
device, even using the "joystick mouse" setting under gpm.
Surely its a matter of telling hotplug's input.agent (or similar) to
recognize the screen as a mouse instead of a joystick?
Is the correct file to modify:
/lib/modules/<kernel version>/modules.inputmap
(?)
and if so is there a reference for how to determine the correct values?
Thanks heaps for any help!
Steve Castellotti
PS: Technical details
USB Chipset (lspci -v):
00:1d.0 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M)
USB UHCI Controller #1 (rev 01) (prog-if 00 [UHCI])
Subsystem: Dell: Unknown device 0160
Flags: bus master, medium devsel, latency 0, IRQ 11
I/O ports at ff80 [size=32]
00:1d.1 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M)
USB UHCI Controller #2 (rev 01) (prog-if 00 [UHCI])
Subsystem: Dell: Unknown device 0160
Flags: bus master, medium devsel, latency 0, IRQ 10
I/O ports at ff60 [size=32]
--------------
Diff to /proc/bus/usb/devices after device insertion:
B: Alloc=110/900 us (12%), #Int= 2, #Iso= 0
T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 11 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0000 ProdID=ffff Rev= 1.00
S: Manufacturer=Nextwindow
S: Product=Nextwindow Touchscreen
C:* #Ifs= 3 Cfg#= 1 Atr=a0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=02 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 5 Ivl=10ms
I: If#= 1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
E: Ad=82(I) Atr=03(Int.) MxPS= 64 Ivl=10ms
I: If#= 2 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=01 Driver=usbhid
E: Ad=83(I) Atr=03(Int.) MxPS= 8 Ivl=10ms
-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7393&alloc_id=16281&op=click
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel