You are not logged in.
I've spent nearly a week poring over documentation and forums, tried multiple driver stacks, and even two distros (Arch and Ubuntu), with limited success, so I'm reaching out for help.
I run Arch Linux ("pacman -Syu" less than a week ago, so pretty current), and my wife runs Ubuntu 24.04. Both of us have Microsoft-branded XBox controllers connected via Bluetooth and working perfectly with native Linux and with Steam (Proton) games for Windows. Both of our controllers are wearing out, so I'm trying to upgrade us to new ones with Hall Effect sticks and triggers. I first tried the Flydigi Apex 4, which identifies to the o.s. as a Vader 3 and is probably just upgraded hardware running similar firmware. When I couldn't get that working, I ordered the Machenike G5 Pro because it's officially supported by the kernel xpad driver as of kernel 6.10 (and my kernel is 6.10.3). The problems I'm having are almost the same for both brands of controller, so I'm convinced it's something in my system setup and not a case of controller DoA. So I'll describe the G5 Pro here -- it's less than half the price, so other things equal that's the one I'll keep.
Symptoms:
* Wired connection in XBox PC mode detects as an XBox 360 and works correctly.
* Bluetooth in XBox PC mode detects and Just Works on Ubuntu but refuses to reconnect automatically (I've tried different settings in the /etc/bluetooth/ config files). You have to manually reconnect it every time, although this can be done -- usually -- from the GUI Bluetooth manager.
* Bluetooth in XBox PC mode detects on Arch only if I initiate discovery and scan from bluetoothctl and *then* right-click on the device in bluez-manager to "Connect" and "Trust" or do the same from the bluetoothctl shell. As with Ubuntu, it won't auto-reconnect and in general the connection is more "fragile" and sometimes won't even manually reconnect without restarting the Bluetooth service from systemd.
* The included 2.4 GHz dongle instantly detects on USB for both Arch and Ubuntu, appears as a joystick from udev, but refuses to connect to the controller hardware (the controller lights blink for a while until it powers down). I'd have blamed a bad controller, but I reproduced this exact problem with both Machenike and Flydigi devices. This is true regardless of controller mode.
* I've reproduced the problem on Arch with the standard xpad driver (which is supposed to Just Work with this exact controller model), with hid-xpadneo, and with xboxdrv. I have been meticulous in assuring only one of those modules is loaded at a time. I've also tried loading the kernel module before and after attempting to connect the controller (I would think "before" is the right way, but I tried "after" for lack of any better ideas and to see if it gave me anything useful in an error message).
* For Bluetooth in Switch Pro mode -- which is how I'd *actually* like to use the controller, so I get the motion gyros -- there's no pairing with either Arch or Ubuntu. Scanning from bluetoothctl or from the GUI manager, with the gamepad in Switch Pro mode, there is no indication the device exists at all.
* The system logs (via journalctl) have all the expected info when things work, but for the times the gamepad isn't seen by the system, the logs are devoid of any mention.
* During attempted auto-reconnect with Bluetooth, bluetoothctl scanning and monitoring seem unaware the device exists unless I put the device back into pairing mode.
Since this exact model is supported officially by my kernel, and since the Microsoft XBox Elite works perfectly on this same computer, and since I've reproduced the problem with similar hardware type but from different manufacturers, I can only conclude there's something I am doing wrong in my settings.
Tried so far (among many other things):
* Unpaired, re-paired, and re-trusted the controller from bluetoothctl without using the GUI.
* Set up udev rules based on various forum posts and from the Arch Wiki.
* Applied some USB quirks to /sys/modules/usbcore/quirks and the corresponding GRUB settings, as recommended on a Reddit post for the Machenike G5 Pro (topic was getting rumble to work). Two variants of this had no apparent effect.
* Changed Bluetooth settings (and restarted service) with different values for fast reconnect, bonded, discovery and pairing timeouts, etc.
Specific points of confusion:
* I'm fairly comfortable with setting up udev rules in USB or PCI, but I'm confused about how to specify the target device for Bluetooth. Specifically, I'm not sure how to map the Bluetooth MAC address to equivalent USB or PCI vendor and product IDs, etc.
* My reading of the bluez config documentation hasn't cleared my confusion about what some of the settings mean. Prior to this gamepad adventure I was doing fine with all my Bluetooth settings at Arch defaults.
* The Arch Wiki provides a Python script for sending authorization data to certain gamepad models, and I suspect I may need to do that, but I have no idea how to figure out what data to send to this model. Also, I would think that the kernel driver would take care of that, since this hardware is officially supported.
* How can the dongle that came with the gamepad fail to connect to it, with two different manufacturers' products? With mice or other peripherals I've never seen that problem before.
Obviously, I'm doing something wrong here, but I'm at a loss as to what.
Offline