Wie ich mehrere Xbox-Controller über Bluetooth verbinde

Artikel Bild
Wer zwei oder mehr Xbox-Controller über Bluetooth verbindet stellt schnell fest, dass sie in Spielen nur als ein Gerät erkannt werden. In diesem Artikel erfahrt ihr, wie man Linux davon überzeugen kann, tatsächlich mehrere Gamecontroller verbunden zu haben.

Zwei oder mehr Xbox-Controller lassen sich in Linux (in meinem Fall: Manjaro) problemlos über Bluetooth koppeln. Schaut ihr aber in den Einstellungen unter »Gamecontroller« (KDE) nach, seht ihr immer nur ein Gerät. Auch Spiele erkennen nur einen Gamecontroller, der auf die Eingaben von beiden physischen Geräten reagiert. Die gute Nachricht: Mit einem (etwas aufwendigen) Trick funktioniert es trotzdem.

1. VM einrichten

Zunächst benötigt ihr auf eurem System eine virtuelle Maschine mit Windows 10 oder 11. Ob Windows 8 oder 8.1 auch funktionieren, habe ich nicht getestet.

Wichtig ist, dass Windows auf den Bluetooth-Controller und die USB-Ports eures Systems zugreifen kann. In Oracle VirtualBox braucht ihr dafür das Extension Pack. Und zwar sowohl für euer Host-System (also euer Linux), als auch für den Windows-Client selbst (Anleitung).

2. Firmware-Update durchführen

Startet eure Windows-VM, ladet über den Microsoft Store die App "Xbox Zubehör" herunter und startet sie. Ihr müsst keine Dialoge ausfüllen oder beantworten. Auch die eigentliche "Xbox App", die Windows euch anbietet, benötigt ihr nicht.

Verbindet nun den ersten Xbox-Controller über USB. Die App sollte euch automatisch anbieten, ein Firmware-Update auszuführen. Bestätigt das Update. Nach Abschluss könnt ihr die weiteren Controller nacheinander verbinden und ebenfalls updaten.

Es ist möglich, dass euer Controller nicht erkannt wird. Prüft in diesem Fall, ob die virtuelle Maschine auf eure USB-Devices zugreifen kann. Im Fall von VirtualBox klickt man in diesem Fall rechts unten auf den USB-Stecker und wählt den richtigen USB-Controller aus. Manchmal sind die Bezeichnungen nicht ganz eindeutig. In diesem Fall müsst ihr etwas rumprobieren, bis ihr das richtige Device findet.

3. Controller in Windows pairen

Trennt zunächst allfällig noch bestehenden Bluetooth-Verbindungen zu den Controllern in eurem Linux-System.

Nun müsst ihr eurer Virtuellen Maschine Zugriff auf euren Bluetooth-Controller geben. In meinem Fall heisst das richtige Device "Intel Corp. 0002". Auch hier müsst ihr also allenfalls etwas ausprobieren.

Koppelt anschliessend einen Controller in Windows. Am einfachsten klickt ihr dazu auf den Start-Button links unten und schreibt "Bluetooth". "Bluetooth- und andere Geräteeinstellungen" wird euch angeboten, ein Klick darauf und ihr könnt im sich neu öffnenden Fenster euren Bluetooth-Controller hinzufügen.

Möglicherweise müsst ihr jetzt ein paar Minuten warten, bis Windows sich alle benötigten Treiber geholt hat. Ihr erhaltet keine Benachrichtigung, wenn der Vorgang abgeschlossen ist. Öffnet mit der gleichen Methode wie oben "USB-Gamecontroller einrichten" und wartet, bis euer Controller angezeigt wird. Dort könnt ihr auch einen kleinen Funktionstest machen.

4. Ersten Controller in Linux pairen

Trennt nun die Bluetooth-Verbindung aus Schritt 2 wieder von eurer Virtuellen Maschine, damit Linux wieder uneingeschränkt Zugriff darauf hat.

Geht in eure Linux-Umgebung und koppelt den Controller über Bluetooth. In den "Gamecontroller"-Einstellungen solltet ihr nun einen funktionsfähigen Controller finden.

5. Weitere Controller verbinden

Führt die Schritte 3 und 4 nun für jeden weiteren Controller einzeln nochmals aus:

  1. in Windows pairen
  2. warten, bis der Controller in Windows voll funktionsfähig ist
  3. VM von Bluetooth trennen
  4. Controller in Linux koppeln

Fertig!

Jeder so gekoppelte Controller wird nun als eigenständiges Gerät erkannt und eurem Couch-Gamingabend mit 'Rocket League' oder 'It takes two' steht nichts mehr im Weg!

Gemäss mehreren Quellen können über diesen Weg "nur" maximal 4 Controller verbunden werden. Ich konnte jedoch nicht testen, ob das heute wirklich noch stimmt.

Das Schwarmwissen ist gefragt

Ja, dieses Vorgehen funktioniert und ich freue mich riesig darüber, nach vielen Stunden erfolglosem Tüfteln einen Workaround gefunden zu haben. Aber ich habe noch so viele offene Fragen:

  • Warum funktioniert das nicht "ad-hoc"?
  • gibt es einen einfacheren Weg?
  • hat man das Problem mit allen Controllern oder nur mit XBox-Geräten?
  • Kennt jemand einen Workaround für Android-Geräte (in meinem Fall: Nvidia Shield), bei denen ich das Problem bis heute habe?

Diskutiert gerne hier oder im Fediverse mit, danke für euren Beitrag!

Quellen:
https://www.oracle.com/virtualization/technologies/vm/downloads/virtualbox-downloads.html#extpack
https://www.virtualbox.org/manual/ch04.html


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.