Don't want to see articles from a certain category? When logged in, go to your User Settings and adjust your feed in the Content Preferences section where you can block tags!
We do often include affiliate links to earn us some pennies. See more here.

Xbox One wireless dongle and controller on Linux? Yes it's a thing, people use it and the xow project is making it better and easier than ever. With the release of xow 0.4 they have a new website instead of just GitHub.

Actual updates to the driver includes some really nice quality of life improvements. The dongle LED turns off when all controllers are disconnected, there's deadzones for stick and triggers and shutdown actually turns the dongle and controllers off. A little tweak also made it in with pairing properly stopping after a controller is paired successfully. Sounds like with all these changes, that xow should now handle Xbox One controller wireless play on Linux rather nicely.

These bug fixes also made it into this release:

  • Rumble magnitude overflow (thanks to Valve for the report/fix)
  • Erroneous connection handling
  • Controller model 1537 pairing
  • Buggy firmware loading/resuming
  • Poor connection reliability
  • Malfunction after system suspend

See the release on GitHub and check their official site.

Awesome project, another showcase of how great people working in the Linux community can be to get hardware like this working well. xow seems to now support almost all of the different Xbox One controller varieties too—nice! Their install instructions are so lovely and simple too.

Article taken from GamingOnLinux.com.
Tags: Drivers, Update
13 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
The comments on this article are closed.
15 comments
Page: 1/2»
  Go to:

M@GOid Mar 20, 2020
I have a Xbone S controller and the bluetooth dongle I use sucks, the ultra common "0a12:0001 Cambridge Silicon Radio", sold in a variety of models. While the DS4 connects more or less okay, the MS controller only connect fast on the pairing configuration. Later it takes all the time of the world to connect, when it does it. Funny enough, when the DS4 is also connected, the Xbone controller connects faster, go figure...

I noticed that the Intel bluetooth adapter from my laptop works flawless with it and the DS4, but I play on a desktop. Also I want a USB dongle.

Does anyone here have the TP-Link UB400/UB4A USB Bluetooth dongle? What is the output of the "lsusb" command in the terminal for it?
Mohandevir Mar 20, 2020
Still hoping for the Steam Controller 2.0... Probably in vain, unfortunately. I can't stand dual stick controllers. I'm so clumsy with that.
Purple Library Guy Mar 20, 2020
QuoteRumble magnitude overflow (thanks to Valve for the report/fix)
Oh my god, the rumble keeps getting louder and louder . . . it won't stop! The magnitude is overflowing, captain!


Last edited by Purple Library Guy on 20 March 2020 at 7:03 pm UTC
legluondunet Mar 20, 2020
Quoting: MohandevirStill hoping for the Steam Controller 2.0... Probably in vain, unfortunately. I can't stand dual stick controllers. I'm so clumsy with that.

Yes, me too, I think this controller deserved better.


Last edited by legluondunet on 21 March 2020 at 11:43 am UTC
SteveFox1620 Mar 21, 2020
I had been using BT. Thanks for the update on this. It's working great for me.
MArKiTo Mar 21, 2020
I'm on Ubuntu 18.04 and trying to get this to work.
I cloned the Git repo in my home folder. Then I'm following installation instructions. I suppose I have to go into the xow directory I cloned from Git and type:
make BUILD=RELEASE

Then I got the following error:
g++  -Wall -Wpedantic -std=c++11 -MMD -O3 -DCHANNEL=1 -DVERSION=\"v0.4\" -c -o xow.o xow.cpp
In file included from xow.cpp:20:0:
dongle/usb.h:28:10: fatal error: libusb-1.0/libusb.h: No such file or directory
 #include <libusb-1.0/libusb.h>
          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Makefile:30: recipe for target 'xow.o' failed
make: *** [xow.o] Error 1


libusb library is installed on my machine, so I don't understand. Can someone help/explain/give me a hint to get past this error please?
nibiron Mar 21, 2020
Quoting: MArKiToI'm on Ubuntu 18.04 and trying to get this to work.
I cloned the Git repo in my home folder. Then I'm following installation instructions. I suppose I have to go into the xow directory I cloned from Git and type:
make BUILD=RELEASE

Then I got the following error:
g++  -Wall -Wpedantic -std=c++11 -MMD -O3 -DCHANNEL=1 -DVERSION=\"v0.4\" -c -o xow.o xow.cpp
In file included from xow.cpp:20:0:
dongle/usb.h:28:10: fatal error: libusb-1.0/libusb.h: No such file or directory
 #include <libusb-1.0/libusb.h>
          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Makefile:30: recipe for target 'xow.o' failed
make: *** [xow.o] Error 1


libusb library is installed on my machine, so I don't understand. Can someone help/explain/give me a hint to get past this error please?

Hi MArKiTo! Try this: "sudo apt-get install libusb-1.0-0-dev" or similar install command and then "make BUILD=RELEASE"


Last edited by nibiron on 21 March 2020 at 5:29 pm UTC
MArKiTo Mar 21, 2020
Thanks Nibiron,
The install was successful now. Unfortunately, the device won't connect :(

I see this when running ./xow
2020-03-21 19:14:07 INFO  - xow v0.4 ©Severin v. W.
2020-03-21 19:14:07 INFO  - Dongle plugged in
2020-03-21 19:14:07 INFO  - Wireless address: 62:45:b5:08:02:b3
2020-03-21 19:14:07 INFO  - Dongle initialized
2020-03-21 19:14:08 ERROR - Error in bulk read: LIBUSB_ERROR_NO_DEVICE
2020-03-21 19:14:08 ERROR - Error in bulk read: LIBUSB_ERROR_NO_DEVICE


My controller is compatible according to the list on Github:
1537 2013 Original controller Working

I see other people for whom it works well, so I don't understand why it fails on my machine.
The light on the controller flashes quickly after pressing the connect button. I also press it on the dongle. Quite quickly the controller disables itself.
TheSHEEEP Mar 21, 2020
View PC info
  • Supporter Plus
Quoting: Purple Library Guy
QuoteRumble magnitude overflow (thanks to Valve for the report/fix)
Oh my god, the rumble keeps getting louder and louder . . . it won't stop! The magnitude is overflowing, captain!
Creak Mar 22, 2020
I'm always a bit puzzled about controllers on Linux.. Why do they all need a user-space driver to be installed (except for the PS4 controller)? Can't it be included in the kernel and call it a day?

Other than that, I just paired my PS4 controllers using a basic Bluetooth dongle and it was recognized out-of-the-box on Fedora 31, no tinkering with config files, nothing to install, nothing to compile, no need to launch Steam to make it work, it "just works".

Only flaw: it has some lag. But I wonder if that is coming from my machine or my Bluetooth dongle. Do you know a good Bluetooth dongle I could buy?

Note on the Steam Controllers: I have 2 Steam Controllers at home, hoping I would find them useful one day, but honestly, after testing with my PS4 controllers (and even despite the lag), I really don't see what's good in them. They only work if you launch Steam (or, once again, a user-space application), and even with that very few games actually work. I tried with a few games like Alien: Isolation, Overcooked 2, Team Fortress, and it's always a bit clunky.. it feels like it's just some kind of not so good keyboard emulation (I had to boost the "mouse" sensibility to the max in Alien: Isolation for instance in order to have something playable, eventually K+M was so much more enjoyable).


Last edited by Creak on 22 March 2020 at 7:05 pm UTC
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.