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:
- in Windows pairen
- warten, bis der Controller in Windows voll funktionsfähig ist
- VM von Bluetooth trennen
- 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
Vorab bekenne ich: Von Spielen und/oder solchen XBox Controllern habe ich quasi "Null Ahnung", und Windows werde ich mir vermutlich auch keines installieren. Trotzdem finde ich die Fragestellung durchaus interessant.
Eine "drahtlose" Logitech Tastatur verwende ich gelegentlich, wobei ich mir jetzt beim Schreiben plötzlich gar nicht mehr so sicher bin, ob die überhaupt "Bluetooth" verwendet - Tut sie offenbar gar nicht! ;)
Wie auch immer: Da gab es ebenfalls das Problem des "Pairings", mit Firmware Updates sowie ggf. mit der Einbindung eventuell weiterer angeschaffter Logitech "Drahtlos-USB-Schiepel"/ "Unifying Receiver".
Bluetooth kommt mir ein bisschen vor wie Druckertreiber: Ich als Laie würde meinen, das sei doch längst fertig erfunden :D