Searching the forum and wiki wasn’t able to help with me so I thought I’d post a solution here. Please correct me if there is a better place to add this information so that others might easily find it.
I plugged in my Xbox Wireless Adapter and was unable to get it to connect to my controller. The pairing light would not turn on when I pressed the pair button.
After some searching, it seemed the most recommended solution was to use https://github.com/medusalix/xone.
To run the script I needed to install dkms, and unpack the firmware update I need to install cabextract.
When running the script, a number of errors occurred.
Error! Bad return status for module build on kernel: 6.12.4-1-MANJARO (x86_64)
...
/var/lib/dkms/xone/v0.3-57-g29ec357/build/bus/bus.c:126:18: error: initialization of ‘int (*)(struct device *, const struct device_driver *)’ from incompatible pointer type ‘int (*)(struct device *, struct device_driver *)’ [-Wincompatible-pointer-types]
126 | .match = gip_bus_match,
| ^~~~~~~~~~~~~
/var/lib/dkms/xone/v0.3-57-g29ec357/build/bus/bus.c:126:18: note: (near initialization for ‘gip_bus_type.match’)
make[2]: *** [scripts/Makefile.build:229: /var/lib/dkms/xone/v0.3-57-g29ec357/build/bus/bus.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/var/lib/dkms/xone/v0.3-57-g29ec357/build/driver/headset.c: In function ‘gip_headset_pcm_hw_params’:
/var/lib/dkms/xone/v0.3-57-g29ec357/build/driver/headset.c:93:16: error: implicit declaration of function ‘snd_pcm_lib_alloc_vmalloc_buffer’ [-Wimplicit-function-declaration]
93 | return snd_pcm_lib_alloc_vmalloc_buffer(sub,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/xone/v0.3-57-g29ec357/build/driver/headset.c: In function ‘gip_headset_pcm_hw_free’:
/var/lib/dkms/xone/v0.3-57-g29ec357/build/driver/headset.c:99:16: error: implicit declaration of function ‘snd_pcm_lib_free_vmalloc_buffer’; did you mean ‘snd_pcm_lib_malloc_pages’? [-Wimplicit-function-declaration]
99 | return snd_pcm_lib_free_vmalloc_buffer(sub);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| snd_pcm_lib_malloc_pages
/var/lib/dkms/xone/v0.3-57-g29ec357/build/driver/headset.c: At top level:
/var/lib/dkms/xone/v0.3-57-g29ec357/build/driver/headset.c:160:17: error: ‘snd_pcm_lib_get_vmalloc_page’ undeclared here (not in a function); did you mean ‘snd_pcm_lib_malloc_pages’?
160 | .page = snd_pcm_lib_get_vmalloc_page,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| snd_pcm_lib_malloc_pages
make[2]: *** [scripts/Makefile.build:229: /var/lib/dkms/xone/v0.3-57-g29ec357/build/driver/headset.o] Error 1
make[1]: *** [/usr/lib/modules/6.12.4-1-MANJARO/build/Makefile:1936: /var/lib/dkms/xone/v0.3-57-g29ec357/build] Error 2
make: *** [Makefile:224: __sub-make] Error 2
Needless to say, this install didn’t fix my issue. I ran lsbusb
and lsusb -t
and found that the driver being used for the “Microsoft Corp. Xbox Wireless Adapter for Windows” was mt76x2u, which I saw as something the install script or firmware update script had set aside to be added to the modprobe blacklist so I assumed the driver was not installed/working properly.
After finding no mention of these errors anywhere, I joined the xone discord and found a pinned post referencing issues with Arch and kernel 6.11. I followed a reference to an open PR to fix the issue, and eventually saw the suggestion to just run the submitter’s branch for 6.12.
Running the install and firmware script no longer generates any errors and lsusb -t
now shows Driver=xone-dongle. However,
git clone https://github.com/tskaar/xone -b fix-6.12
cd xone
sudo ./install.sh
cd install
chmod 777 firmware.sh
sudo ./firmware.sh
Using this branch, I was able to install the dongle. Note, the “xone-get-firmware.sh” script, even in the original documentation, was renamed “firmware.sh” and relocated to the install subdirectory. The firmware script was not executable without using chmod.