Xbox Controller на Linux
Надоел проводной геймпад
Я играю с сыном в Minecraft Dungeons и Lego-игры (сейчас это The Lego Movie Videogame). Сетап у нас такой:
- транслируем через Steam Link с моего компьютера на телевизор в большой комнате.
- играем с помощью проводных геймпадов.
Так как мы недавно переехали, то расположение PC vs TV стало неудобным (а пады надо подключать к компьютеру). Поэтому я решил сделать сыну сюрприз и себе подарок — купил два новых Xbox Wireless Controller.
Радостные мы принесли их домой, и я обнаружил, что пады просто не коннектятся нормально по bluetooth на Linux (у меня Pop!_OS 24.04).
Bluetooth не хочет работать
Симптомы:
- Пейринг происходит, но коннект не проходит, и отваливается с ошибкой “le-connection-abort-by-local”
- Когда переводишь пад в режим пейринга (зажимаешь маленькую кнопку сверху пада) и пытаешься подключить его, то наблюдаешь бесконечные коннект / дисконнект.
- Даже когда пейринг прошёл — центральная кнопка, которая подсвечивает статус подключения, всё равно медленно “моргает” и не становится стабильно-светящейся.
Что не помогло
Естественно, первое, на что я наткнулся, — это xpadneo.
- Я сделал всё, что было указано в инструкциях, сбилдил, установил через DKMS.
- Внёс исправления в Bluetooth-конфиг
- Ребутнулся, удалил устройство из paired/trusted, перепейрил - не помогло
- Попробовал через bluetoothctl: pair по мак-адресу, но проблема повторялась.
Я пошёл искать дальше. Вторая попытка заключалась в том, чтобы отключить ERTM (Enhanced ReTransmission Mode).
- Я сделал всё, что необходимо, и отключил. Но и это не помогло.
Что помогло
Решение я нашёл в wiki Debian, где были перечислены все предыдущие решения, что я пытался использовать, плюс ещё одно, а именно — добавить в конфиг Bluetooth следующие параметры:
[General]Privacy = deviceJustWorksRepairing = alwaysClass = 0x000100FastConnectable = trueК нашей радости, именно эти строки решили проблему, и мы смогли нормально поиграть в тот вечер. Не знаю точно, помог ли комплекс решений, или достаточно было бы только последних изменений, но wiki мне крайне помогла, надеюсь поможет и вам.