The original message had my hid-core.c kernel patch attached. I've
attached it again to this email so you can use it. Verbal details are
in the email chain below. You should follow them carefully as you may
have to "special case" your device (since I have no idea which
joystick you are using) like I did with our CH PRODUCTS. The code in
the patch also has a comment describing how to get the correct vendor
and product ids. For the issue we were having (which may or may not
be the same issue you are having) this patch has, thus far, proven
robust.
Thanks,
Tom.
On Oct 4, 2007, at 2:58 PM, pattykirsch wrote:
> I'm having a similar problem (on a 7200) and your link appears to be
> dead, could you provide some more details? Thanks.
>
> Patty
>
> --- In Tom Panzarella <>
> wrote:
>>
>> 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
<*> 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: Binary data
|