linux-image-2.6.20-16 fails to detect twin usb gamepad

Bug #140608 reported by rorzer on 2007-09-18
14
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Medium
Unassigned
Hardy
Undecided
Steve Conklin
Intrepid
Undecided
Unassigned
linux-source-2.6.20 (Ubuntu)
Undecided
Unassigned
Hardy
Undecided
Unassigned
Intrepid
Undecided
Unassigned

Bug Description

Binary package hint: linux-source-2.6.20

This bug is very similar to bug #106622 reported by Paul Zaremba, but affects a different device.

I have a Personal Communications Systems, Inc. (Vendor ID 0x0810) Twin USB Gamepad (Product ID 0x0002).

As detailed in Paul's bug report, the two controllers were muxed together as one. Adding the vendor and product IDs to drivers/usb/input/hid-core.c, and setting the "multi input" quirk produced the correct behaviour.

Unfortunately I'm a bit over my head here, and I don't know how to write a patch. Have I provided enough information?

Sorry if this is a duplicate of Paul's bug, I wasn't sure. It's the same basic problem, but with a different product.

Thanks,

Rory

PS, here's the output of lsusb -v:

Bus 003 Device 003: ID 0810:0002 Personal Communication Systems, Inc.
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 1.00
  bDeviceClass 0 (Defined at Interface level)
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 8
  idVendor 0x0810 Personal Communication Systems, Inc.
  idProduct 0x0002
  bcdDevice 1.06
  iManufacturer 0
  iProduct 2 Twin USB Gamepad
  iSerial 0
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 34
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0x80
      (Bus Powered)
    MaxPower 200mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 1
      bInterfaceClass 3 Human Interface Devices
      bInterfaceSubClass 0 No Subclass
      bInterfaceProtocol 0 None
      iInterface 0
        HID Device Descriptor:
          bLength 9
          bDescriptorType 33
          bcdHID 1.10
          bCountryCode 33 US
          bNumDescriptors 1
          bDescriptorType 34 Report
          wDescriptorLength 202
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 3
          Transfer Type Interrupt
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0008 1x 8 bytes
        bInterval 10
Device Status: 0x0000
  (Bus Powered)

Albert Santoni (gamegod) wrote :

I have a similar "twin controller" pair of gamepads and they appear to be working fine in Gutsy. The output fro my lsusb -v is:

Bus 004 Device 003: ID 0810:0001 Personal Communication Systems, Inc.
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 1.00
  bDeviceClass 0 (Defined at Interface level)
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 8
  idVendor 0x0810 Personal Communication Systems, Inc.
  idProduct 0x0001
  bcdDevice 1.06
  iManufacturer 0
  iProduct 2 Twin USB Joystick
  iSerial 0
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 34
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0x80
      (Bus Powered)
    MaxPower 500mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 1
      bInterfaceClass 3 Human Interface Devices
      bInterfaceSubClass 0 No Subclass
      bInterfaceProtocol 0 None
      iInterface 0
        HID Device Descriptor:
          bLength 9
          bDescriptorType 33
          bcdHID 1.10
          bCountryCode 33 US
          bNumDescriptors 1
          bDescriptorType 34 Report
          wDescriptorLength 202
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 3
          Transfer Type Interrupt
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0008 1x 8 bytes
        bInterval 10
Device Status: 0x0000
  (Bus Powered)

Beginning with the Hardy Heron 8.04 development cycle, all open Ubuntu kernel bugs need to be reported against the "linux" kernel package. We are automatically migrating this bug to the new "linux" package. However, development has already began for the upcoming Intrepid Ibex 8.10 release. It would be helpful if you could test the upcoming release and verify if this is still an issue - http://www.ubuntu.com/testing . If the issue still exists, please update this report by changing the Status of the "linux" task from "Incomplete" to "New". We appreciate your patience and understanding as we make this transition. Thanks!

The Ubuntu Kernel Team is planning to move to the 2.6.27 kernel for the upcoming Intrepid Ibex 8.10 release. As a result, the kernel team would appreciate it if you could please test this newer 2.6.27 Ubuntu kernel. There are one of two ways you should be able to test:

1) If you are comfortable installing packages on your own, the linux-image-2.6.27-* package is currently available for you to install and test.

--or--

2) The upcoming Alpha5 for Intrepid Ibex 8.10 will contain this newer 2.6.27 Ubuntu kernel. Alpha5 is set to be released Thursday Sept 4. Please watch http://www.ubuntu.com/testing for Alpha5 to be announced. You should then be able to test via a LiveCD.

Please let us know immediately if this newer 2.6.27 kernel resolves the bug reported here or if the issue remains. More importantly, please open a new bug report for each new bug/regression introduced by the 2.6.27 kernel and tag the bug report with 'linux-2.6.27'. Also, please specifically note if the issue does or does not appear in the 2.6.26 kernel. Thanks again, we really appreicate your help and feedback.

linux-2.6.27 doesn't fix this issue.

On Fri, Aug 29, 2008 at 9:06 PM, Leann Ogasawara <email address hidden> wrote:

> The Ubuntu Kernel Team is planning to move to the 2.6.27 kernel for the
> upcoming Intrepid Ibex 8.10 release. As a result, the kernel team would
> appreciate it if you could please test this newer 2.6.27 Ubuntu kernel.
> There are one of two ways you should be able to test:
>
> 1) If you are comfortable installing packages on your own, the linux-
> image-2.6.27-* package is currently available for you to install and
> test.
>
> --or--
>
> 2) The upcoming Alpha5 for Intrepid Ibex 8.10 will contain this newer
> 2.6.27 Ubuntu kernel. Alpha5 is set to be released Thursday Sept 4.
> Please watch http://www.ubuntu.com/testing for Alpha5 to be announced.
> You should then be able to test via a LiveCD.
>
> Please let us know immediately if this newer 2.6.27 kernel resolves the
> bug reported here or if the issue remains. More importantly, please
> open a new bug report for each new bug/regression introduced by the
> 2.6.27 kernel and tag the bug report with 'linux-2.6.27'. Also, please
> specifically note if the issue does or does not appear in the 2.6.26
> kernel. Thanks again, we really appreicate your help and feedback.
>
> ** Tags added: cft-2.6.27
>
> --
> linux-image-2.6.20-16 fails to detect twin usb gamepad
> https://bugs.launchpad.net/bugs/140608
> You received this bug notification because you are a direct subscriber
> of the bug.
>

Changed in linux:
assignee: nobody → ubuntu-kernel-team
importance: Undecided → Medium
status: Incomplete → Triaged
Steve Conklin (sconklin) on 2008-11-14
Changed in linux:
assignee: ubuntu-kernel-team → sconklin
status: Triaged → In Progress
assignee: nobody → sconklin
status: New → In Progress
Steve Conklin (sconklin) wrote :

SRU Justification

Impact: PCS, Inc. Dual USB gamepad is not usable

Patch Description: added quirk to USB HID list

Patch: http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-intrepid.git;a=commit;h=f9995d841f44e04fd521061017ce46bf412717df

Test Case: This was tested by an owner of this device, patch is based on his fix.

Changed in linux-source-2.6.20:
assignee: nobody → sconklin
status: New → In Progress
status: In Progress → Fix Committed
Tim Gardner (timg-tpi) on 2008-11-19
Changed in linux-source-2.6.20:
status: New → Invalid
Changed in linux:
status: In Progress → Fix Committed
Changed in linux-source-2.6.20:
status: Fix Committed → Invalid
assignee: sconklin → nobody
Changed in linux:
assignee: nobody → sconklin
status: New → In Progress
Changed in linux-source-2.6.20:
status: Won't Fix → Invalid
Martin Pitt (pitti) wrote :

Accepted linux into intrepid-proposed, please test and give feedback here. Please see https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

rorzer (rorzer) wrote :

Not fixed in 2.6.27-8-generic from intrepid-proposed.

Is there something I can put in /etc/modprobe.d/options to see if setting
the quirks mode will get the dual gamepad working?

Thanks,

Rory

On Fri, Nov 21, 2008 at 10:29 PM, Martin Pitt <email address hidden>wrote:

> Accepted linux into intrepid-proposed, please test and give feedback
> here. Please see https://wiki.ubuntu.com/Testing/EnableProposed for
> documentation how to enable and use -proposed. Thank you in advance!
>
> ** Tags added: verification-needed
>
> --
> linux-image-2.6.20-16 fails to detect twin usb gamepad
> https://bugs.launchpad.net/bugs/140608
> You received this bug notification because you are a direct subscriber
> of the bug.
>

On Fri, Nov 21, 2008 at 07:42:29PM -0000, rorzer wrote:
> Not fixed in 2.6.27-8-generic from intrepid-proposed.
>
> Is there something I can put in /etc/modprobe.d/options to see if setting
> the quirks mode will get the dual gamepad working?

I have the feeling that the patch for this was in the -10.20 update
which has been uploaded to -proposed but had not hit the archives.
When that one is offered to you by update manager it would be worth
testing that one and reporting back.

-apw

I see from here:
https://lists.ubuntu.com/archives/intrepid-changes/2008-November/009508.html
That 2.6.27-10.20 was accepted into intrepid-proposed on the 21/9/08. It's
not showing up in synaptic yet, how long does this normally take?

Rory

On Mon, Nov 24, 2008 at 1:02 AM, Andy Whitcroft <email address hidden> wrote:

> On Fri, Nov 21, 2008 at 07:42:29PM -0000, rorzer wrote:
> > Not fixed in 2.6.27-8-generic from intrepid-proposed.
> >
> > Is there something I can put in /etc/modprobe.d/options to see if setting
> > the quirks mode will get the dual gamepad working?
>
> I have the feeling that the patch for this was in the -10.20 update
> which has been uploaded to -proposed but had not hit the archives.
> When that one is offered to you by update manager it would be worth
> testing that one and reporting back.
>
> -apw
>
> --
> linux-image-2.6.20-16 fails to detect twin usb gamepad
> https://bugs.launchpad.net/bugs/140608
> You received this bug notification because you are a direct subscriber
> of the bug.
>

On Wed, Nov 26, 2008 at 12:48:15AM -0000, rorzer wrote:
> I see from here:
> https://lists.ubuntu.com/archives/intrepid-changes/2008-November/009508.html
> That 2.6.27-10.20 was accepted into intrepid-proposed on the 21/9/08. It's
> not showing up in synaptic yet, how long does this normally take?

I cirtainly got it this morning. The kernel is complex as an upload
because of the linux-meta package. Until this is uploaded the new
kernel can be in the archives and available for install but not offered
in update-manager. Let me know if you don't have it now.

It's not showing up in the update-manager, and I can't find it by searching
for "linux" in synaptic. It seems it's not uploaded yet. I'm using the nz
servers, so it may not have propogated that far yet.

On Wed, Nov 26, 2008 at 10:31 PM, Andy Whitcroft <email address hidden> wrote:

> On Wed, Nov 26, 2008 at 12:48:15AM -0000, rorzer wrote:
> > I see from here:
> >
> https://lists.ubuntu.com/archives/intrepid-changes/2008-November/009508.html
> > That 2.6.27-10.20 was accepted into intrepid-proposed on the 21/9/08.
> It's
> > not showing up in synaptic yet, how long does this normally take?
>
> I cirtainly got it this morning. The kernel is complex as an upload
> because of the linux-meta package. Until this is uploaded the new
> kernel can be in the archives and available for install but not offered
> in update-manager. Let me know if you don't have it now.
>
> --
> linux-image-2.6.20-16 fails to detect twin usb gamepad
> https://bugs.launchpad.net/bugs/140608
> You received this bug notification because you are a direct subscriber
> of the bug.
>

Martin Pitt (pitti) wrote :

Accepted linux into hardy-proposed, please test and give feedback here. Please see https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Ryan Williams (rlwilliams111) wrote :

I recently purchased a generic Twin USB gamepad. I am running Ubuntu 8.10. At first, the gamepad wasn't recognized at all. I eventually fixed this using jscalibrator. After I got the gamepad to be recognized, I rand across the problem that is listed in this bug report. After searching forums and comments on launchpad, I ran into the suggestion to add the hid-quirks patch. The only problem was that I couldn't figure out how to add this patch. To many, this might seem quite obvious. Maybe this is just the case of a semi-newbie trying to find perfect step-by-step directions for something that is simple enough that many more experienced user assume as common knowledge. Anyway, I am including a step by step reference for people, like me, who aren't familiar with adding patches to devices and need a little more explanation. Here is the process that I went through to get the controllers to be recognized correctly.

1. Go to this web page: http://georgia.ubuntuforums.org/showthread.php?t=338457&page=1
   This page gives a lot of good tips on getting the gamepad to be recognized. After following most of the tips on the page, my controller was still only recognized as one gamepad as opposed to two separate twin pads. This is where the hid-quirks patch comes in.

2. I should mention that before adding patch, I installed 3 HID libraries (python-hid, libhid0, inputlirc) through Synaptic. This may or may not have been part of the fix. Regardless, it was still necessary to add the hid-quirks patch.

3. download the patch. the file name is hid_quirks.c and many pages have a download for it. It might be best to make sure the the version of the patch is suitable for your kernel version. I just downloaded a version that looked like it was from a trusted web page and hoped for the best.

4. open a terminal and find your kernel version number by typing: uname -a

5. move the hid_quirks.c file to /usr/src/*YourKernelFolder*/drivers/hid/usbhid
    *YourKernelFolder* should be replaced with the folder name that contains your kernel version.

6. Reboot if necessary.

7. Both controllers should be recognized appropriately after completing these steps.

I want to mention that this is the first solution that I've posted for any problems with Ubuntu. Normally, if I have a problem, I search the forums and Google and try to find the answers or I ask a friend. I have come across very few things so far that I haven't been able to fix by these methods. When I came across this problem, none of the answers that anyone was giving seemed to explain the process well enough.

I would like feedback on this fix. I'm sure it could be more clear or maybe I missed a step. Let me know how this works for people. Thanks.

Ryan

@rorzer or @Ryan, would either of you be able to test and confirm this bug is fixed with the kernel in hardy-proposed? See Martin's comment above on how to enable -proposed. I unfortunately do not have the hardware to test with. We'd definitely appreciate any feedback before blindly pushing out a fix for Hardy without any verification.

@Ryan, it shouldn't be necessary for you to patch your own kernel, as the kernel in hardy-proposed, and intrepid-proposed, will already contain the patch. If you could test those kernels and let us know your results that would be great. Thanks.

Launchpad Janitor (janitor) wrote :
Download full text (12.0 KiB)

This bug was fixed in the package linux - 2.6.24-23.46

---------------
linux (2.6.24-23.46) hardy-proposed; urgency=low

  [Alessio Igor Bogani]

  * rt: Updated PREEMPT_RT support to rt21
    - LP: #302138

  [Amit Kucheria]

  * SAUCE: Update lpia patches from moblin tree
    - LP: #291457

  [Andy Whitcroft]

  * SAUCE: replace gfs2_bitfit with upstream version to prevent oops
    - LP: #276641

  [Colin Ian King]

  * isdn: Do not validate ISDN net device address prior to interface-up
    - LP: #237306
  * hwmon: (coretemp) Add Penryn CPU to coretemp
    - LP: #235119
  * USB: add support for Motorola ROKR Z6 cellphone in mass storage mode
    - LP: #263217
  * md: fix an occasional deadlock in raid5
    - LP: #208551

  [Stefan Bader]

  * SAUCE: buildenv: Show CVE entries in printchanges
  * SAUCE: buildenv: Send git-ubuntu-log informational message to stderr
  * Xen: dma: avoid unnecessarily SWIOTLB bounce buffering
    - LP: #247148
  * Update openvz patchset to apply to latest stable tree.
    - LP: #301634
  * XEN: Fix FTBS with stable updates
    - LP: #301634

  [Steve Conklin]

  * Add HID quirk for dual USB gamepad
    - LP: #140608

  [Tim Gardner]

  * Enable CONFIG_AX25_DAMA_SLAVE=y
    - LP: #257684
  * SAUCE: Correctly blacklist Thinkpad r40e in ACPI
    - LP: #278794
  * SAUCE: ALPS touchpad for Dell Latitude E6500/E6400
    - LP: #270643

  [Upstream Kernel Changes]

  * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ
    handler"
    - LP: #217659
  * KVM: VMX: Clear CR4.VMXE in hardware_disable
    - LP: #268981
  * iov_iter_advance() fix
    - LP: #231746
  * Fix off-by-one error in iov_iter_advance()
    - LP: #231746
  * USB: serial: ch341: New VID/PID for CH341 USB-serial
    - LP: #272485
  * x86: Fix 32-bit x86 MSI-X allocation leakage
    - LP: #273103
  * b43legacy: Fix failure in rate-adjustment mechanism
    - LP: #273143
  * x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap.
    - LP: #276334
  * openvz: merge missed fixes from vanilla 2.6.24 openvz branch
    - LP: #298059
  * openvz: some autofs related fixes
    - LP: #298059
  * openvz: fix ve stop deadlock after nfs connect
    - LP: #298059
  * openvz: fix netlink and rtnl inside container
    - LP: #298059
  * openvz: fix wrong size of ub0_percpu
    - LP: #298059
  * openvz: fix OOPS while stopping VE started before binfmt_misc.ko loaded
    - LP: #298059
  * x86-64: Fix "bytes left to copy" return value for copy_from_user()
  * NET: Fix race in dev_close(). (Bug 9750)
    - LP: #301608
  * IPV6: Fix IPsec datagram fragmentation
    - LP: #301608
  * IPV6: dst_entry leak in ip4ip6_err.
    - LP: #301608
  * IPV4: Remove IP_TOS setting privilege checks.
    - LP: #301608
  * IPCONFIG: The kernel gets no IP from some DHCP servers
    - LP: #301608
  * IPCOMP: Disable BH on output when using shared tfm
    - LP: #301608
  * IRQ_NOPROBE helper functions
    - LP: #301608
  * MIPS: Mark all but i8259 interrupts as no-probe.
    - LP: #301608
  * ub: fix up the conversion to sg_init_table()
    - LP: #301608
  * x86: adjust enable_NMI_through_LVT0()
    - LP: #301608
  * SCSI ips: handle scsi_add_host() failure, and other err cl...

Changed in linux:
status: Fix Committed → Fix Released
rorzer (rorzer) wrote :

Hi Leann,

Unfortunately I'm not running hardy, would it work if I installed the
Hardy-proposed kernel and booted into Intrepid?

On Fri, Jan 9, 2009 at 8:00 AM, Leann Ogasawara <
<email address hidden>> wrote:

> @rorzer or @Ryan, would either of you be able to test and confirm this
> bug is fixed with the kernel in hardy-proposed? See Martin's comment
> above on how to enable -proposed. I unfortunately do not have the
> hardware to test with. We'd definitely appreciate any feedback before
> blindly pushing out a fix for Hardy without any verification.
>
> @Ryan, it shouldn't be necessary for you to patch your own kernel, as
> the kernel in hardy-proposed, and intrepid-proposed, will already
> contain the patch. If you could test those kernels and let us know your
> results that would be great. Thanks.
>
> --
> linux-image-2.6.20-16 fails to detect twin usb gamepad
> https://bugs.launchpad.net/bugs/140608
> You received this bug notification because you are a direct subscriber
> of the bug.
>

rorzer (rorzer) wrote :

Also, I can confirm that under 2.6.27-10.20 and 2.6.27-11.23 from
Intrepid-proposed, I do get two devices show up:

Jan 10 13:23:07 lappy-rory kernel: [ 462.020139] usb 3-1: new low speed USB
device using uhci_hcd and address 2
Jan 10 13:23:07 lappy-rory kernel: [ 462.191778] usb 3-1: configuration #1
chosen from 1 choice
Jan 10 13:23:07 lappy-rory kernel: [ 462.301717] usbcore: registered new
interface driver hiddev
Jan 10 13:23:07 lappy-rory kernel: [ 462.342400] input: Twin USB Gamepad
as /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input9
Jan 10 13:23:07 lappy-rory kernel: [ 462.349357] input: Twin USB Gamepad
as /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input10
Jan 10 13:23:07 lappy-rory kernel: [ 462.354645] input: Twin USB Gamepad
as /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input11
Jan 10 13:23:07 lappy-rory kernel: [ 462.360787] input: Twin USB Gamepad
as /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input12
Jan 10 13:23:07 lappy-rory kernel: [ 462.364253] input,hidraw0: USB HID
v1.10 Joystick [Twin USB Gamepad ] on usb-0000:00:1d.2-1
Jan 10 13:23:07 lappy-rory kernel: [ 462.364297] usbcore: registered new
interface driver usbhid
Jan 10 13:23:07 lappy-rory kernel: [ 462.364304] usbhid: v2.6:USB HID core
driver

roryg@lappy-rory:~$ ls -l /dev/input/js*
crw-rw---- 1 root plugdev 13, 0 2009-01-10 13:23 /dev/input/js0
crw-rw---- 1 root plugdev 13, 1 2009-01-10 13:23 /dev/input/js1

However, I still do not have the desired functionality. Using jscalibrator
to test the gamepads, one pad doesn't register at all on either
/dev/input/js0 or /dev/input/js1. The other pad works on both, but the
direction buttons control the wrong axes.

The output of lsusb -v is attached

Steve Conklin (sconklin) on 2010-01-29
Changed in linux (Ubuntu):
status: In Progress → Incomplete
assignee: Steve Conklin (sconklin) → nobody
Fail2Ban (failtoban) on 2010-02-20
tags: added: kernel-bug
Alex Valavanis (valavanisalex) wrote :

Intrepid Ibex reached end-of-life on 30 April 2010 so I am closing the
report. The bug has been fixed in newer releases of Ubuntu.

Changed in linux (Ubuntu Intrepid):
assignee: Steve Conklin (sconklin) → nobody
status: Fix Committed → Invalid
tags: removed: verification-needed
madbiologist (me-again) on 2012-12-29
Changed in linux (Ubuntu):
status: Incomplete → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments