Skip to content

Linux Kernel Driver for Xbox / Xbox 360 Controllers developed to work in harmony with XONE

Notifications You must be signed in to change notification settings

forkymcforkface/xpad-noone

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ko-fi

Updated Xpad Linux Kernel Driver

Driver for the Xbox/ Xbox 360/ Xbox 360 Wireless Controllers

This driver includes the latest changes in the upstream linux kernel and additionally carries the following staging changes:

  • support for more compatible devices
  • support for xbox360 class controllers, that need initialisation

Xbox One Controllers

Xbox One Controller support has been removed to allow for compatibility with xone. The kernel module and DKMS package are now named xpad-noone. The USB driver also registers as xpad-noone, enabling clean coexistence with xone. (Stock xpad can remain blacklisted by xone.)

Connecting via Bluetooth
If you get past the pairing issues, the controller will operate in the generic-HID bluetooth profile.
The xpad driver will not be used.

Installing

sudo modprobe -r xpad xpad-noone || true
sudo git clone https://github.com/forkymcforkface/xpad-noone.git /usr/src/xpad-noone-1.0
sudo dkms install -m xpad-noone -v 1.0
echo 'xpad-noone' | sudo tee /etc/modules-load.d/xpad-noone.conf
sudo modprobe xpad-noone

Updating

cd /usr/src/xpad-noone-1.0
sudo git fetch
sudo git checkout origin/master
sudo dkms remove -m xpad-noone -v 1.0 --all
sudo dkms install -m xpad-noone -v 1.0

Removing

sudo modprobe -r xpad-noone || true
sudo dkms remove -m xpad-noone -v 1.0 --all
sudo rm -rf /usr/src/xpad-noone-1.0
sudo rm -f /etc/modules-load.d/xpad-noone.conf

Usage

This driver creates three devices for each attached gamepad

  1. /dev/input/jsN
    • example jstest /dev/input/js0
  2. /sys/class/leds/xpadN/brightness
    • example echo COMMAND > /sys/class/leds/xpad0/brightness where COMMAND is one of
      • 0: off
      • 1: all blink, then previous setting
      • 2: 1/top-left blink, then on
      • 3: 2/top-right blink, then on
      • 4: 3/bottom-left blink, then on
      • 5: 4/bottom-right blink, then on
      • 6: 1/top-left on
      • 7: 2/top-right on
      • 8: 3/bottom-left on
      • 9: 4/bottom-right on
      • 10: rotate
      • 11: blink, based on previous setting
      • 12: slow blink, based on previous setting
      • 13: rotate with two lights
      • 14: persistent slow all blink
      • 15: blink once, then previous setting
  3. the generic event device
    • example fftest /dev/input/by-id/usb-*360*event*

Debugging

As a regular unpriveledged user

Setup console to display kernel log.
dmesg --level=debug --follow

Open a new console and access the device with jstest.
jstest /dev/input/jsX

Interact with the device and observe that data packets recieved from device are printed to kernel log.

[ 3968.772128] xpad-dbg: 00000000: 20 00 b5 0e 00 00 00 00 00 00 0c 03 04 fd 6c 01 40 fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 3968.772135] xpad-dbg: 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 3968.804137] xpad-dbg: 00000000: 20 00 b6 0e 00 00 00 00 00 00 0c 03 04 fd 6c 01 fc fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 3968.804145] xpad-dbg: 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 3969.152120] xpad-dbg: 00000000: 20 00 b7 0e 00 00 00 00 00 00 0c 03 04 fd 6c 01 b8 fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 3969.152129] xpad-dbg: 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Save dmesg buffer and attach to bug report, don't forget to describe button sequences in bug report.
dmesg --level=debug > dmesg.txt

Ctrl+C to close interactive console sessions when finished.

Sending Upstream

  1. git format-patch --cover-letter upstream..master
  2. git send-email --to xxx *.patch

About

Linux Kernel Driver for Xbox / Xbox 360 Controllers developed to work in harmony with XONE

Topics

Resources

Stars

Watchers

Forks

Languages

  • C 99.4%
  • Other 0.6%