Linux et XBox One Wireless Controller


Installation d’un manette de jeux XBox One sous Linux:

  • Linux: Ubuntu 16.04 LTS
  • Manette XBox One: XBox One Wireless Controller Winter Forces

Outils de configuration

Je recommande l’installation de jstest pour tester configurer votre manette:

sudo apt-get install jstest-gtk

Installation avec cable USB

Il suffit de connecter le cable USB/microUSB entre votre manette et votre PC.
Ubuntu reconnaît automatiquement la manette de jeu, mais malheureusement la manette ne fonctionne pas !!!
La manette de jeu est plus récente que le driver installé (xpad).
La solution consiste à installer la dernière version du drivers (kernel module):

sudo git clone https://github.com/paroj/xpad.git /usr/src/xpad-0.4
sudo dkms install -m xpad -v 0.4

Le mieux est de recharger le driver et de déconnecter/reconnecter la manette de jeu:

sudo modprobe -r xpad
sudo modprobe  xpad

Tout doit fonctionner normalement: le bouton XBox de votre manette doit s’allumer.
Attention: Si le module refuse de se charger il faudra désactiver le secure boot au niveau de votre BIOS.

Voilà ce que doit donner la commande dmesg:

[  510.311819] usb 1-3: new full-speed USB device number 10 using xhci_hcd
[  510.498112] usb 1-3: New USB device found, idVendor=045e, idProduct=02ea
[  510.498127] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  510.498137] usb 1-3: Product: Controller
[  510.498144] usb 1-3: Manufacturer: Microsoft
[  510.498151] usb 1-3: SerialNumber: XXXXXXXXXXXXXXXXXXXXXXXXXXXX
[  510.500326] input: Microsoft X-Box One S pad as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/input/input24

Installation via Bluetooth

Pour l’installation bluetooth il suffit de rajouter la ligne suivante dans /etc/rc.local (avant le exit 0)

echo 1 > /sys/module/bluetooth/parameters/disable_ertm

Ensuite on reboot ou on lance la commande en tant que root.
On peut ensuite appairer notre manette comme n’importe quel composant bluetooth.
Coté manette on l’allume et ensuite on appuie sur le bouton d’appairage situé derrière la manette.

Une fois la manette appairée il suffira de la rallumer pour quelle soit automatiquement reconnue.

Voilà ce que doit donner la commande dmesg:

[   20.251086] Bluetooth: RFCOMM TTY layer initialized
[   20.251089] Bluetooth: RFCOMM socket layer initialized
[   20.251092] Bluetooth: RFCOMM ver 1.11
[  169.608876] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[  169.608880] Bluetooth: HIDP socket layer initialized
[  169.609294] hid-generic 0005:045E:02E0.000B: unknown main item tag 0x0
[  169.609358] input: Xbox Wireless Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.0/bluetooth/hci0/hci0:70/0005:045E:02E0.000B/input/input24
[  169.609453] hid-generic 0005:045E:02E0.000B: input,hidraw10: BLUETOOTH HID v9.03 Gamepad [Xbox Wireless Controller] on 00:1a:7d:da:71:14

Désactivation de la manette sous X-Window

Par défaut le stick de la manette est reconnu par X-Window comme périphérique de pointage.
Voici le code qui permet de désactiver la manette sous X-Window. Vous pourrez toujours utiliser la manette dans vos jeux.

xinput set-int-prop `xinput --list | grep Xbox | cut -f2 | cut -d= -f2` "Device Enabled" 8 0

Serveur VNC de BrickPi

Pour changer la résolution du serveur VNC de BrickPi il suffit d’éditer le fichier

/etc/systemd/system/vncserver@.service

Ci dessous je change la résolution en 1920×180:
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=pi
PAMName=login
PIDFile=/home/pi/.vnc/%H:%i.pid
WorkingDirectory=/home/pi
ExecStartPre=-/usr/bin/vncserver -kill :%i
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1920×1080 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target

Ensuite on redémarre et voilà le travail:

root@brickpi:/home/pi# systemctl restart vncserver@1.service