{{{#!vorlage Warnung Die Verwendung dieses Howto geschieht auf eigene Gefahr. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich zusätzlich an den Verfasser des Howtos. }}} {{{#!vorlage Hinweis Diese Howto-Anleitung wurde zuletzt von [user:Limag:] am 22.12.2018 unter '''Ubuntu 18.04.1 LTS''' erfolgreich getestet. Diese Howto-Anleitung wurde zuletzt von [user:pygospa:] am 21.09.2020 unter '''Ubuntu 20.04.1 LTS''' erfolgreich getestet. }}} {{{#!vorlage Wissen [:Shell: Shellbefehle] [:Pakete_installieren: Installation von Programmen] [:Editor: Editor öffnen] [:mit Root-Rechten arbeiten:] }}} = Problembeschreibung = [[Bild(xbox-one, align=right)]] Der Microsoft XBox ONE Controller wird von Linux nur automatisch erkannt, wenn er mit einem USB-Kabel mit dem PC verbunden wird. Der Controller kann aber auch '''wireless''' verwendet werden, er stellt ein Bluetooth-Gerät dar. Hat der PC einen Bluetooth-Host-Adapter, kann auf den (im Bild sichtbaren) USB-Adapter von Microsoft verzichtet werden! Der Microsoft USB-Adapter wird in diesem Howto daher '''nicht''' verwendet. Auch der Kerneltreiber `xpad` und der Userspace-Treiber `xboxdrv` werden '''nicht''' verwendet. Die Signalkette sieht vereinfacht so aus: '''XBoxOne Controller -> Bluetooth -> Treiber `joydev` -> `/dev/input/js0` -> [https://store.steampowered.com/ Steam] {en}''' 1. Der XBox Controller ist per Bluetooth gekoppelt 1. Der Kerneltreiber `joydev` übernimmt die Verarbeitung und legt für jeden erkannten Controller ein Device an (`/dev/input/jsX`). Der Treiber ist bereits in Ubuntu. 1. Programme wie '''Steam''' oder auch der Joysticktest '''jstest-gtk''' verarbeiten die Daten aus dem Device = Anleitung = == Bluetooth == Zuerst passen wir den Bluetooth-Stack an, [bug:1750146:Enhanced Retransmission Mode (ERTM) muss deaktiviert sein] {en}, um es temporär zu tun gibt man als Superuser ein: {{{#!vorlage Befehl # echo 1 > /sys/module/bluetooth/parameters/disable_ertm }}} Für die dauerhafte Deaktivierung installiert man folgendes Paket. {{{#!vorlage Paketinstallation sysfsutils }}} Danach kann man in der Datei `/etc/sysfs.conf` folgende Zeile anhängen: `module/bluetooth/parameters/disable_ertm = 1` Damit die Änderungen wirksam werden, wird im Anschluss der `sysfsutils` Dienst neu gestartet: {{{#!vorlage Befehl sudo service sysfsutils restart }}} Nun sind wir bereit für die Verbindung. Es hat sich bewährt, das Verbinden von Bluetooth-Devices an der Kommandozeile durchzuführen, man erkennt dann in welchem Schritt es scheitert. Über das Tool `bluetoothctl` ist dies komfortabel möglich. Hat man eventuell schon mal versucht den Controller über eine Bluetooth-GUI zu verbinden, dann dort den Controller '''vor''' dem Aufruf von `bluetoothctl` löschen! Um den Controller in den Paring-Mode zu versetzen schaltet man ihn ein und drückt 3 Sekunden den Pairing-Button (an der Vorderseite, neben der USB-Buchse). Das weiße Licht am Controller blinkt jetzt in einem anderen Rhythmus. An einer [:Shell:] geben wir `bluetoothctl` ein. Daraufhin ändert sich der Prompt, man ist in der Bluetooth-Shell. Folgende Befehle sind für eine Kopplung nötig. {{{#!vorlage Befehl $ bluetoothctl [bluetooth]# power off [bluetooth]# power on [bluetooth]# scan on //you get messages like: [NEW] Device EC:83:50:B0:C6:DE Xbox Wireless Controller [bluetooth]# trust EC:83:50:B0:C6:DE [bluetooth]# pair EC:83:50:B0:C6:DE [bluetooth]# connect EC:83:50:B0:C6:DE }}} {{{#!vorlage Hinweis Die oben angegebene MAC `EC:83:50:B0:C6:DE` ist durch die des eigenen Controllers zu ersetzen! Eine MAC bezeichnet eindeutig ein Gerät und wird bei dessen Herstellung vergeben. }}} Hat das Verbinden funktioniert, schaltet die weiße Lampe am Controller auf Dauerlicht. Gerade im Befehl `connect` kommt es immer wieder zu Problemen, eventuell hilft hier das Aus- Einschalten des Controllers (blinkenden Button 5 Sekunden drücken). == Test == Mit dem Programm `jstest-gtk` lässt sich die Funktion überprüfen. {{{#!vorlage Paketinstallation jstest-gtk }}} Übersicht\\ [[Bild(jstest1)]] Details\\ [[Bild(jtest2)]] == Steam == Auf dem Rechner ist '''Steam Build Dec. 12 2018''' installiert. Steam erkannte den Controller selbstständig, es war kein Eingriff notwendig. = Links = * [:Howto:] {Übersicht} - Übersicht aller Howto-Artikel #tag: Howto