ts-7000
[Top] [All Lists]

Re: [ts-7000] Re: USB Joystick and TS7300

To:
Subject: Re: [ts-7000] Re: USB Joystick and TS7300
From: Tom Panzarella <>
Date: Thu, 4 Oct 2007 15:18:06 -0400
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/
 

Attachment: hid-core.c.patch
Description: Binary data

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU