Eddie-
I seemingly have resolution to my joystick issue and thought I'd share
the "fix" (or "hack" ... whichever you prefer) with the TS community
just in case someone else runs into this.
1. Clearly joydev.o needs to be built. This is straight forward by
enabling the option in the kernel config and rebuilding the modules. No
patches needed to joydev.c.
2. drivers/usb/hid-core.c needs to be patched then hid.o needs to be
rebuilt and loaded into the running kernel. I've attached my patch.
NOTE: it is very specific to the joystick I am using but it seems as
though a generic patch may be able to be built for users of USB HID
devices by CH PRODUCTS [1]. One of my colleagues and I were looking at
this and he did some "fancy googling" and came across this:
http://216.239.51.104/search?q=cache:AQRAy5KvSwcJ:osdir.com/ml/linux.usb.devel/2002-04/msg00047.html+2.4.17+Patches+for+CH+Pro+Pedals+USB&hl=en&ct=clnk&cd=1&gl=us&client=firefox-a
... same vendor, similar problem. Neither of us are USB experts and
couldn't say exactly why the approach from the above link would work but
we tried a derivative of it anyway, and it did work for us [2].
NOTE: I did not apply the patch to joydev.c as indicated in the above
link only a modification to hid-core.c and the joystick is working.
Attached is my patch. And an md5 checksum of my built hid.o is as
follows:
150da91a11660edbfab940e43125bf23 hid.o
Thanks for the effort and help on this.
Best,
Tom.
[1] - Such a patch is beyond the scope of what I have time to deal with
right now.
[2] - You will know the special treatment of the device kicked in by
seeing the following kernel message (i.e. via `dmesg', reading
`/proc/kmsg', etc.) after the joystick is plugged in:
hid_init_reports: usb_set_idle()=-911
On Tue, 2007-07-03 at 15:27 -0400, Tom Panzarella wrote:
> Hi All,
>
> I'm trying to get a pretty standard (3 Axis 2 button) USB joystick to
> work on a 7300 for purposes of teloperating a robot. The joystick itself
> is produced by CH Products (USB vendor id = 0x068e, product id =
> 0x00a6): http://www.chproducts.com. This joystick works fine on my
> Ubuntu (Dapper) laptop.
>
> I have my 7300 configured to the point where when I plug in the
> joystick, the device file, /dev/input/js0, gets created and my code
> which interfaces w/ the joystick runs (allegedly successfully), i.e.
> calling select(...) , FD_ISSET(...), and subsequently read(...) all show
> that the joystick file descriptor is ready to be read from w/o blocking
> and the read() returns successfully. The problem is, even when moving
> the joystick around and/or pushing buttons, I'm getting no changed data
> (i.e. 0, 0, 0 on all 3 axes and "button up" on all buttons). Similar
> behavior can be inferred by `cat /dev/input/js0' and moving the joystick
> around. The exact same system and code using a Logitech Rumble Pad 2
> works fine.
>
> I was wondering if anyone had some wisdom to share on getting USB
> joysticks working on the 7300 (or maybe it's just a Linux 2.4 thing???).
> Any help is greatly appreciated.
>
> Details of my setup are below:
>
> * I built the joydev.o kernel module using the gcc-3.3.4-glibc-2.3.2
> cross tool. `uname -a' on the 7300:
>
> Linux ts7000 2.4.26-ts11 #35 Thu Jul 6 15:44:29 MST 2006 armv4l
> GNU/Linux
>
> ... and `cat /proc/version':
>
> Linux version 2.4.26-ts11 (gcc version 3.3.4) #35 Thu
> Jul 6 15:44:29 MST 2006
>
> * output of `modinfo joydev.o'
>
> filename: /lib/modules/2.4.26-ts11/kernel/drivers/input/joydev.o
> description: "Joystick device driver"
> author: "Vojtech Pavlik <>"
> license: "GPL"
>
> * output of `lsmod' (after doing `insmod joydev')
>
> Module Size Used by Not tainted
> joydev 5272 0
> ftdi_sio 19308 0 (unused)
> usbserial 18824 0 [ftdi_sio]
> af_packet 9456 0 (unused)
> open_eth 4448 0 (unused)
> tsuart-73 1316 0 (unused)
> tsuart0 8664 0 [tsuart-73]
> keybdev 1772 0 (unused)
> hid 13520 0 (unused)
> input 3320 0 [joydev keybdev hid]
> usb-ohci-ep93xx 632 0 (unused)
> usb-ohci 15360 0 [usb-ohci-ep93xx]
> usbcore 55728 1 [ftdi_sio usbserial hid usb-ohci]
> pcipool 1888 1 [usb-ohci-ep93xx usb-ohci]
> ts7300fb 3496 63
> fbcon-cfb16 3528 0 [ts7300fb]
> fbgen 2944 0 [ts7300fb]
> sdcard0 9840 1
>
> * When I plug in the joystick, `dmesg' shows:
>
> hub.c: new USB device not_pci-1, assigned address 4
> input: USB HID v1.00 Joystick [CH PRODUCTS CH 3 AXIS 2 INPUT CONTROL] on
> usb1:4.0
>
> (that last line is all on one line in dmesg).
>
> NOTE: When I plug in the Logitech Rumble Pad 2 (the one that is working
> on the 7300), dmesg shows:
>
> hub.c: new USB device not_pci-1, assigned address 2
> input: USB HID v1.10 Joystick [Logitech Logitech RumblePad 2 USB] on
> usb1:2.0
>
> ... notice that the HID version is 1.10 rather 1.0 ... not sure how this
> would impact things, but it is a difference.
>
> * `cat /proc/bus/usb/devices'
>
> T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 3
> B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
> D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
> P: Vendor=0000 ProdID=0000 Rev= 0.00
> S: Product=USB OHCI Root Hub
> S: SerialNumber=e0020000
> C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
> I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
> E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
> T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 4 Spd=1.5 MxCh= 0
> D: Ver= 1.01 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
> P: Vendor=068e ProdID=00a6 Rev= 0.00
> S: Manufacturer=CH PRODUCTS
> S: Product=CH 3 AXIS 2 INPUT CONTROL
> C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr= 32mA
> I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=hid
> E: Ad=81(I) Atr=03(Int.) MxPS= 7 Ivl=10ms
>
> * `ls -l /dev/input/js0'
>
> cr--r--r-- 1 root root 13, 0 Dec 31 1969 /dev/input/js0
>
> ... further `/etc/devfs/perms' has the following:
>
> REGISTER ^js[^/]*$ PERMISSIONS root.root 0444
> REGISTER ^input/js PERMISSIONS root.root 0444
>
> NOTE: I'm running the process as root but just in case permissions may
> be an issue I've included this output. This `ls' output is the same for
> both the working an non-working joysticks.
>
> Thanks,
>
> Tom.
>
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
--
Tom Panzarella
Chief Technology Officer
Freedom Sciences, LLC
The Navy Yard - Quarters M2
4601 South Broad Street
Philadelphia, PA 19112
office: 215.467.4270
mobile: 215.341.1754
http://www.freedomsciences.com
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
hid-core.c.patch
Description: Text Data
|