Third Party Xbox One controller not working

Bug #1507318 reported by Aron Schatz
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Expired
Medium
Unassigned

Bug Description

Using Kernel 3.19.0 (x86-64) on Kubuntu 15.04, the Afterglow Prismatic Xbox One controller isn't detected by the xpad module. This is probably due to the vender and device id not being in the xpad module config. Is there a way to generically add controllers so all third party controllers work? This is a licensed Xbox One controller.

Please see output below. The controller should act like a standard Xbox One controller out of the box.

cat /proc/version_signature
Ubuntu 3.19.0-30.34-generic 3.19.8-ckt6

lsusb -vv output:

Bus 005 Device 009: ID 0e6f:0139 Logic3
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.00
  bDeviceClass 255 Vendor Specific Class
  bDeviceSubClass 71
  bDeviceProtocol 208
  bMaxPacketSize0 64
  idVendor 0x0e6f Logic3
  idProduct 0x0139
  bcdDevice 6.20
  iManufacturer 1 Performance Designed Products
  iProduct 2 Afterglow Wired Controller for Xbox One
  iSerial 3 0000C7A13E6A15E5
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 64
    bNumInterfaces 2
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower 500mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 2
      bInterfaceClass 255 Vendor Specific Class
      bInterfaceSubClass 71
      bInterfaceProtocol 208
      iInterface 0
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 3
          Transfer Type Interrupt
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 4
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x01 EP 1 OUT
        bmAttributes 3
          Transfer Type Interrupt
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 4
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 1
      bAlternateSetting 0
      bNumEndpoints 0
      bInterfaceClass 255 Vendor Specific Class
      bInterfaceSubClass 71
      bInterfaceProtocol 208
      iInterface 0
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 1
      bAlternateSetting 1
      bNumEndpoints 2
      bInterfaceClass 255 Vendor Specific Class
      bInterfaceSubClass 71
      bInterfaceProtocol 208
      iInterface 0
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x02 EP 2 OUT
        bmAttributes 1
          Transfer Type Isochronous
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x00e0 1x 224 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x83 EP 3 IN
        bmAttributes 1
          Transfer Type Isochronous
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0080 1x 128 bytes
        bInterval 1
Device Status: 0x0002
  (Bus Powered)
  Remote Wakeup Enabled

dmesg output:

[742828.614745] usb 5-1.5: USB disconnect, device number 8
[742831.119560] usb 5-1.5: new full-speed USB device number 9 using ehci-pci
[742831.214020] usb 5-1.5: New USB device found, idVendor=0e6f, idProduct=0139
[742831.214022] usb 5-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[742831.214023] usb 5-1.5: Product: Afterglow Wired Controller for Xbox One
[742831.214024] usb 5-1.5: Manufacturer: Performance Designed Products
[742831.214025] usb 5-1.5: SerialNumber: 0000C7A13E6A15E5

I'm happy to provide any additional information needed.
---
ApportVersion: 2.19.1-0ubuntu2
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC1: ubuntu 2499 F.... pulseaudio
 /dev/snd/controlC0: ubuntu 2499 F.... pulseaudio
CasperVersion: 1.365
CurrentDesktop: Unity
DistroRelease: Ubuntu 15.10
LiveMediaBuild: Ubuntu 15.10 "Wily Werewolf" - Alpha amd64 (20151017.1)
MachineType: System manufacturer System Product Name
Package: linux (not installed)
ProcEnviron:
 TERM=xterm-256color
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcFB: 0 nouveaufb
ProcKernelCmdLine: BOOT_IMAGE=/casper/vmlinuz.efi file=/cdrom/preseed/username.seed boot=casper quiet splash --- cdrom-detect/try-usb=true noprompt
ProcVersionSignature: Ubuntu 4.2.0-16.19-generic 4.2.3
RelatedPackageVersions:
 linux-restricted-modules-4.2.0-16-generic N/A
 linux-backports-modules-4.2.0-16-generic N/A
 linux-firmware 1.149
Tags: wily
UdevLog: Error: [Errno 2] No such file or directory: '/var/log/udev'
Uname: Linux 4.2.0-16-generic x86_64
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo
_MarkForUpload: True
dmi.bios.date: 05/08/2012
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 0301
dmi.board.asset.tag: To be filled by O.E.M.
dmi.board.name: P8Z77-V PRO/THUNDERBOLT
dmi.board.vendor: ASUSTeK COMPUTER INC.
dmi.board.version: Rev 1.xx
dmi.chassis.asset.tag: Asset-1234567890
dmi.chassis.type: 3
dmi.chassis.vendor: Chassis Manufacture
dmi.chassis.version: Chassis Version
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr0301:bd05/08/2012:svnSystemmanufacturer:pnSystemProductName:pvrSystemVersion:rvnASUSTeKCOMPUTERINC.:rnP8Z77-VPRO/THUNDERBOLT:rvrRev1.xx:cvnChassisManufacture:ct3:cvrChassisVersion:
dmi.product.name: System Product Name
dmi.product.version: System Version
dmi.sys.vendor: System manufacturer

Revision history for this message
Brad Figg (brad-figg) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 1507318

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Revision history for this message
Aron Schatz (aronschatz) wrote :

The command didn't work...

aronschatz@ASE3770k:~$ apport-collect 1507318
kf5.kiconthemes: "Theme tree: (Breeze)"
dpkg-query: no packages found matching linux
Traceback (most recent call last):
  File "/usr/share/apport/apport-kde", line 530, in <module>
    sys.exit(UserInterface.run_argv())
  File "/usr/lib/python2.7/dist-packages/apport/ui.py", line 653, in run_argv
    return self.run_update_report()
  File "/usr/lib/python2.7/dist-packages/apport/ui.py", line 569, in run_update_report
    response = self.ui_present_report_details(allowed_to_report)
  File "/usr/share/apport/apport-kde", line 367, in ui_present_report_details
    desktop_info)
  File "/usr/share/apport/apport-kde", line 184, in __init__
    self.ui.ui_update_view(self)
  File "/usr/share/apport/apport-kde", line 358, in ui_update_view
    QTreeWidgetItem(keyitem, [str(line)])
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 21: ordinal not in range(128)
Segmentation fault (core dumped)

However, I've set the bug to confirmed as said.

Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
penalvch (penalvch) wrote :

Aron Schatz, thank you for reporting this and helping make Ubuntu better.

Could you please test for this via http://cdimage.ubuntu.com/daily-live/current/ and advise to the results? If it's reproducible, please run the apport-collect in the live environment.

Also, it looks like apport crashed as per:
Segmentation fault (core dumped)

 Hence, please advise if a crash file popped up in the folder:
/var/crash

Changed in linux (Ubuntu):
importance: Undecided → Low
status: Confirmed → Incomplete
Revision history for this message
Aron Schatz (aronschatz) wrote : AlsaInfo.txt

apport information

tags: added: apport-collected wily
description: updated
Revision history for this message
Aron Schatz (aronschatz) wrote : CRDA.txt

apport information

Revision history for this message
Aron Schatz (aronschatz) wrote : CurrentDmesg.txt

apport information

Revision history for this message
Aron Schatz (aronschatz) wrote : IwConfig.txt

apport information

Revision history for this message
Aron Schatz (aronschatz) wrote : JournalErrors.txt

apport information

Revision history for this message
Aron Schatz (aronschatz) wrote : Lspci.txt

apport information

Revision history for this message
Aron Schatz (aronschatz) wrote : Lsusb.txt

apport information

Revision history for this message
Aron Schatz (aronschatz) wrote : ProcCpuinfo.txt

apport information

Revision history for this message
Aron Schatz (aronschatz) wrote : ProcInterrupts.txt

apport information

Revision history for this message
Aron Schatz (aronschatz) wrote : ProcModules.txt

apport information

Revision history for this message
Aron Schatz (aronschatz) wrote : PulseList.txt

apport information

Revision history for this message
Aron Schatz (aronschatz) wrote : RfKill.txt

apport information

Revision history for this message
Aron Schatz (aronschatz) wrote : UdevDb.txt

apport information

Revision history for this message
Aron Schatz (aronschatz) wrote : WifiSyslog.txt

apport information

Revision history for this message
Aron Schatz (aronschatz) wrote :

This controller still doesn't work using the daily built image. The command ran successfully and the results were sent. This bug still exists.

penalvch (penalvch)
tags: added: bios-outdated-2104
Revision history for this message
Aron Schatz (aronschatz) wrote :

BIOS updated. See command output.

2104
08/13/2013

No change. This controller still doesn't work.

I believe all that needs to be done is add the deviceid and vendorid into the xpad configuration file when it is built and say the controller is an Xbox One controller.

I understand the want to make sure it isn't some hardware or software issue, however, this bug is about a controller not working when others do just fine. Updating a motherboard BIOS may cause problems for system stability (later BIOS images may be buggier for some reason).

I've marked this as confirmed.

Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
Aron Schatz (aronschatz) wrote :

I've checked out the xpad git source and did a dkms with the needed changes and the controller works. Here's the diff...

128d127
< { 0x0e6f, 0x0139, "Afterglow Prismatic Wired Controller", 0, XTYPE_XBOXONE },
303d301
< XPAD_XBOXONE_VENDOR(0x0e6f), /* 0x0e6f X-Box One controllers */

This is to xpad.c. I'm also attaching the fixed xpad.c file. I'll contact the xpad git team with this info.

Adding this information made the controller work just fine.

penalvch (penalvch)
tags: added: latest-bios-2104
removed: bios-outdated-2104
Revision history for this message
penalvch (penalvch) wrote :

Aron Schatz, could you please advise the URL source of the git repository you used?

Changed in linux (Ubuntu):
importance: Low → Medium
status: Confirmed → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for linux (Ubuntu) because there has been no activity for 60 days.]

Changed in linux (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.