I've spent the day attempting to understand why it's fully operational in my Ubuntu 10.10 kernel 2.6.35-28 installation, but not in my Puppy 5.20 kernel 2.6.33.2 installation. I've documented everything here in this code section with the top part being Ubuntu and the bottom half Puppy:
Code: Select all
Ubuntu 10.10
------------
SDL 1.2.14
$ uname -a
Linux ese 2.6.35-28-generic #50-Ubuntu SMP Fri Mar 18 19:00:26 UTC 2011 i686 GNU/Linux
$ tail -f /var/log/messages
Apr 27 16:32:14 ese kernel: [ 1932.048061] usb 2-2: new low speed USB device using uhci_hcd and address 3
Apr 27 16:32:14 ese kernel: [ 1932.256581] input: Jess Tech Dual Analog Pad as /devices/pci0000:00/0000:00:1f.2/usb2/2-2/2-2:1.0/input/input5
Apr 27 16:32:14 ese kernel: [ 1932.257409] generic-usb 0003:0F30:0112.0002: input,hidraw0: USB HID v1.10 Joystick [Jess Tech Dual Analog Pad] on usb-0000:00:1f.2-2/input0
$ cat /proc/bus/input/devices
I: Bus=0003 Vendor=0f30 Product=0112 Version=0110
N: Name="Jess Tech Dual Analog Pad"
P: Phys=usb-0000:00:1f.2-2/input0
S: Sysfs=/devices/pci0000:00/0000:00:1f.2/usb2/2-2/2-2:1.0/input/input5
U: Uniq=
H: Handlers=event3 js0
B: EV=1b
B: KEY=fff 0 0 0 0 0 0 0 0 0
B: ABS=30027
B: MSC=10
$ ./testjoystick 0
There are 1 joysticks attached
Joystick 0: Jess Tech Dual Analog Pad
axes: 4
balls: 0
hats: 1
buttons: 12
Watching joystick 0: (Jess Tech Dual Analog Pad)
Joystick has 4 axes, 1 hats, 0 balls, and 12 buttons
$ ls /lib/modules/2.6.35-28-generic/kernel/drivers/input/joystick
a3d.ko gamecon.ko iforce spaceball.ko twidjoy.ko
adi.ko gf2k.ko interact.ko spaceorb.ko walkera0701.ko
analog.ko grip.ko joydump.ko stinger.ko warrior.ko
cobra.ko grip_mp.ko magellan.ko tmdc.ko xpad.ko
db9.ko guillemot.ko sidewinder.ko turbografx.ko zhenhua.ko
$ lsmod > prejoy.txt
[Plugged in joystick here and waited for a moment]
$ lsmod > postjoy.txt
$ diff prejoy.txt postjoy.txt
1a2,4
> joydev 8767 0
> usbhid 36882 0
> hid 67742 1 usbhid
Puppy 5.20
----------
SDL 1.2.14
# uname -a
Linux ese 2.6.33.2 #1 SMP Thu May 27 10:56:32 EST 2010 i686 GNU/Linux
# tail -f /var/log/messages
Apr 28 14:48:36 ese user.info kernel: usb 2-2: new low speed USB device using uhci_hcd and address 3
Apr 28 14:48:37 ese user.info kernel: input: Jess Tech Dual Analog Pad as /devices/pci0000:00/0000:00:1f.2/usb2/2-2/2-2:1.0/input/input6
Apr 28 14:48:37 ese user.info kernel: generic-usb 0003:0F30:0112.0002: input: USB HID v1.10 Joystick [Jess Tech Dual Analog Pad] on usb-0000:00:1f.2-2/input0
# cat /proc/bus/input/devices
I: Bus=0003 Vendor=0f30 Product=0112 Version=0110
N: Name="Jess Tech Dual Analog Pad"
P: Phys=usb-0000:00:1f.2-2/input0
S: Sysfs=/devices/pci0000:00/0000:00:1f.2/usb2/2-2/2-2:1.0/input/input6
U: Uniq=
H: Handlers=event2 js0
B: EV=1b
B: KEY=fff 0 0 0 0 0 0 0 0 0
B: ABS=30027
B: MSC=10
# ./testjoystick 0
There are 1 joysticks attached
Joystick 0: Jess Tech Dual Analog Pad
axes: 1
balls: 0
hats: 0
buttons: 12
Watching joystick 0: (Jess Tech Dual Analog Pad)
Joystick has 1 axes, 0 hats, 0 balls, and 12 buttons
# ls /lib/modules/2.6.33.2/kernel/drivers/input/joystick
a3d.ko gamecon.ko iforce spaceball.ko twidjoy.ko
adi.ko gf2k.ko interact.ko spaceorb.ko warrior.ko
analog.ko grip.ko joydump.ko stinger.ko xpad.ko
cobra.ko grip_mp.ko magellan.ko tmdc.ko
db9.ko guillemot.ko sidewinder.ko turbografx.ko
# lsmod > prejoy.txt
[Plugged in joystick here and waited for a moment]
# lsmod > postjoy.txt
# diff prejoy.txt postjoy.txt
1a2
> joydev 6492 0
There's one difference I should note about Ubuntu and Puppy: if the joystick is plugged in already when Ubuntu boots then it's available at /dev/input/js0 (this can be tested using "cat /dev/input/js0" and pressing all the controls) but on Puppy it only appears at /dev/input/js0 if it's [re]plugged in later.
I've dumped the joystick modules in /lib/modules/2.6.xx.xx/kernel/drivers/input/joystick but I don't think these apply do they? The extra ones with Ubuntu are walkera0701 and zhenhua and I found these to be something to do with radio-controllers.
I think that as this is handled by usbhid then perhaps it requires supporting there. As it works in Ubuntu with kernel 2.6.35-28 I imagine that somebody has officially updated the kernel source to support this device. I'm guessing that using a newer kernel in Puppy will solve this problem.
Any thoughts and suggestions would be most welcome.