Display MoreHi Guys,
I would like to thank the community by signing up here and describing my solution to the problem. Here is the problem I had:
- New Microsoft XBox Controller Model 1914
- Pairing failed all the time
- The connection kept switching between on and off to the controller
- The XBox icon has been flashing continuously
My system:
- LibreElec (official) 10.0.4 (kernel: Linux 5.10.161)
- New XBox controller model 1914 with latest firmware; Previously I updated the controller on a Windows PC with the XBox accessory software.
- TP Link USB Bluetooth Stick UB400
My steps to the solution:
1. Switch OFF the controller
2. Disable ERTM
Codeecho 'options bluetooth disable_ertm=Y' > /storage/.config/modprobe.d/bluetooth-disable-ertm.conf
2.1 After that a file "bluetooth-disable-ertm.conf" should be created in the directory and have the entry 'options bluetooth disable_ertm=Y'.
3. The problem is in the Kodi 18 switching to libinput. It handles keyboards and mice but doesn't handle joysticks so you need to tell the libinput to ignore this device by assigning the LIBINPUT_IGNORE_DEVICE flag to it. I don't know if it was solved in Kodi 19, that's why I did this step.
3.1 Create a file "99-gamepad.rules" in "/storage/.config/udev.rules.d/".
3.2 Insert the following lines:
CodeSUBSYSTEM=="input", ATTRS{name}=="Xbox Wireless Controller", KERNEL=="event*", MODE="0666", ENV{LIBINPUT_IGNORE_DEVICE}="1" SUBSYSTEM=="input", ATTRS{name}=="Xbox Wireless Controller", KERNEL=="event*", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
3.3 If your controller is not "Xbox Wireless Controller" then replace it with the controller name you see with bluetoothctl -> devices.
4. Reboot the system
5. Open bluetoothctl via console: "bluetoothctl"
5.1 Check devices: Type "device" - You will get a list with all available Bluetooth devices. Search for the XBox controller.
5.2 If the XBox controller is present, delete it from the list: "remove AA:BB:CC:DD:EE:FF" (Replace the MAC address with the address of the controller)
5.3 Turn on the controller and hold the connection button on the top until the controller starts blinking faster.
5.4 Search for the controller in the console with "scan on".
5.5 Wait until you see the XBox controller on the screen.
5.6 End the search with "scan off
5.7 Trust the controller with "trust AA:BB:CC:DD:EE:FF"
5.8 After that, try to pair the controller with "pair AA:BB:CC:DD:EE:FF". The step can take a little longer and you must not get an error in the console. Furthermore the controller should still be in pairing mode. If you get an error just start again at step 5.1.
5.9 After a while it will ask you if you want to allow the connection. Acknowledge this with "yes".
6. now the XBox icon should light up permanently on the controller and the controller should be connected.
6.1 Now switch to the view in Kodi and press a button on the controller. A message should appear that a new controller has been found and that you can set it up now. Confirm it with "Yes". Otherwise you can also set up the controller again under System/Input/Controller.
6.2 In my case, the controller was displayed in the menu as "Kodi Standard Controller". I simply assigned the buttons and the sticks by following the menu entries.
Now the controller should be completely set up and you can use it to operate the menu. After a restart, the controller should connect again as soon as you turn it on. If this does not work, check step 2 again.
If there are any suggestions for improvement or if I am talking complete nonsense or if you have any questions, please let me know.
Thanks
Hellsgore
Followed this and had success!
I'm somewhat of a beginner to doing things in the terminal as well as ssh so i wanted to make a post to make things easier for others. In my situation I didn't know how to open a visual app to enter the multi lines of code.
so...for steps 3-3.3 i used this command. ...also keep an eye on your current directory.
I CD'd into root "/storage/.config/udev.rules.d/" then ran this;
echo -e 'SUBSYSTEM=="input", ATTRS{name}=="Xbox Wireless Controller", KERNEL=="event*", MODE="0666", ENV{LIBINPUT_IGNORE_DEVICE}="1"\nSUBSYSTEM=="input", ATTRS{name}=="Xbox Wireless Controller", KERNEL=="event*", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"' > 99-gamepad.rules
after that follow the rest of Hellsgore's guide. I had to go through the button binding process before the controller actually worked.
Thanks Hellsgore !