How to use wireless Xbox One controllers on Linux with XOW
If you own an Xbox One wireless USB dongle, you’ll be happy to know that it is now possible to run the device on Linux. Thanks to the XOW project, the device allows for wireless connectivity on Linux with any Xbox One controller.
To use the XOW driver, you must have an Xbox One S or Xbox One original wireless controller, the Xbox wireless dongle, and a reasonably modern Linux operating system. XOW is under substantial development. This driver may not work correctly (or at all) in some cases. Use it at your own risk!
Note: Need to emulate an Xbox controller on Windows 10? Here’s how.
Downloading XOW
The XOW driver is very new to Linux and has not been in development for a very long time. As a result, it has not made it into the Linux kernel or in any mainstream Linux OS software repository. Instead, if you want to use XOW, you must download it from the project’s GitHub.
Interacting with GitHub requires the Git program. To install Git, open up a terminal window by pressing Ctrl + Alt + T or Ctrl + Shift + T on the keyboard. Then, follow the command-line instructions outlined below.
Ubuntu
sudo apt install git
Debian
sudo apt-get install git
Arch Linux
sudo pacman -S git
Fedora
sudo dnf install git
OpenSUSE
sudo zypper install git
Generic Linux
The Git tool is available on nearly every Linux distribution and is one of the primary tools that all developers on the platform use. If you are using an OS not on this list open up a terminal, search for “git” and install it the way you typically install programs. Or, download Git from the web.
After setting up the Git tool on your Linux PC, XOW is ready to download. Using the git clone command, grab the latest release of the software.
git clone https://github.com/medusalix/xow.git
Move your terminal window into the “xow” folder using the CD command. Then, run the cat command to take a look at the included README.md file, as it contains information on the code you just downloaded to your PC.
Note: close cat with Ctrl + C.
cd xow cat README.md
Dependencies
The code for XOW is downloaded into your Linux PC. The next step in the process is to install the primary dependency for XOW, Libusb. To install Libusb, follow the installation instructions below that correspond with your Linux operating system.
Ubuntu
sudo apt install libusb-1.0-0-dev libusb-1.0-0
Debian
sudo apt-get install libusb-1.0-0-dev libusb-1.0-0
Arch Linux
sudo pacman -S libusb
Fedora
sudo dnf install libusb libusb-devel
OpenSUSE
sudo zypper install libusb-1.0 libusb-1_0-devel
Generic Linux
If you’re building XOW from scratch on a Linux PC that is not covered in this guide, you will need to install Libusb manually. For more information, click here.
Building XOW
To build XOW, you must use the command-line. The reason the terminal is required is that XOW is a CLI application, and there is no known way of compiling it with a GUI app. Follow the step-by-step instructions below to build XOW on your system.
Step 1: Move into the xow
folder located in your home directory (~) using the CD command below.
cd ~/xow
Step 2: Run the make command to compile the source code.
make BUILD=RELEASE
Step 3: Run the ls command in the xow
folder and determine if the “xow” binary is there.
ls | grep xow
Step 4: Assuming the build is successful, you will see “xow” in the xow folder. Now, install this binary on your Linux PC with the make install command.
sudo make install
Activating XOW
The XOW Xbox wireless dongle driver for Linux functions with the systemd init system. For this reason, it must be enabled via systemd to function correctly. To enable the XOW wireless driver on your Linux PC, do the following.
First, use the systemctl enable command to allow XOW to automatically startup with root privileges each time your system boots up.
sudo systemctl enable xow.service
Then, use the systemctl start command to tell systemd to instantly start up the XOW service so that users on the system can use it.
sudo systemctl start xow.service
With XOW enabled within systemd, your Linux PC will have Xbox wireless dongle support.
Turn off XOW
Want to turn off Xbox wireless dongle support on your Linux PC temporarily, or permanently? You must make use of the systemd init system.
To turn off the XOW driver with systemd temporarily, make use of the systemctl stop command.
sudo systemctl stop xow.service
Want to shut off XOW permanently? Make use of the systemctl disable command.
sudo systemctl disable xow.service
Using XOW
To use XOW, plug in your USB Xbox One wireless dongle into the USB port on your Linux PC. Then, press the pair button on the Xbox One controller, and pair it to the dongle.
Want more information when pairing your device? Open up a terminal and run the “xow” binary file with the commands below, before trying to pair a controller.
cd ~/xow sudo ./xow
It works perfect.
I managed to install Xow. When running sudo ./xow, I get this error:
2020-07-29 13:34:04 INFO – xow v0.5-15-g5d11422 ©Severin v. W.
2020-07-29 13:34:04 INFO – Waiting for device…
2020-07-29 13:34:04 DEBUG – Opening device…
terminate called after throwing an instance of ‘UsbException’
what(): Error setting configuration: LIBUSB_ERROR_BUSY
Aborted
What to do? Thank you!
Great. And the result works perfectly. The only addition I had to make (excuse the pun) was to add g++. Many thanks