{"id":51708,"date":"2026-07-29T09:54:53","date_gmt":"2026-07-29T09:54:53","guid":{"rendered":"https:\/\/ubuntuhandbook.org\/?p=51708"},"modified":"2026-07-29T09:54:53","modified_gmt":"2026-07-29T09:54:53","slug":"install-driver-for-xbox-one-controllers-in-ubuntu-26-04","status":"publish","type":"post","link":"https:\/\/ubuntuhandbook.org\/index.php\/2026\/07\/install-driver-for-xbox-one-controllers-in-ubuntu-26-04\/","title":{"rendered":"Install Driver for XBox One Controllers in Ubuntu 26.04"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/xbox-icon-250x250.webp\" alt=\"\" width=\"250\" height=\"250\" class=\"alignleft size-thumbnail wp-image-51713\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/xbox-icon-250x250.webp 250w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/xbox-icon-300x300.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/xbox-icon-700x700.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/xbox-icon-768x768.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/xbox-icon.webp 1200w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><\/p>\n<p>Got a Xbox One controller? It works in Linux out-of-the-box, but only for basic use and you need to connect through a USB cable.<\/p>\n<p>If you want to use your Xbox One controller in Linux wirelessly through bluetooth or wireless adapter, and want more features for better experience, then you need to install a third-party driver.<\/p>\n<p><!--more--><\/p>\n<p>And in this tutorial I&#8217;m going to show you two free open-source choices:<\/p>\n<ul>\n<li><b>xpadneo<\/b> &#8211; supports Xbox One controllers through Bluetooth.<\/li>\n<li><b>Xone<\/b> &#8211; that supports connecting via USB or Wireless Adapter.<\/li>\n<\/ul>\n<h3>Option 1: xpadneo<\/h3>\n<p>Xpadneo is a free open-source (GPL-3.0) Linux Driver for Xbox One Wireless Controller.<\/p>\n<p>It supports <b>Xbox One<\/b>, <b>Xbox Series X|S<\/b>, or <b>Xbox Elite 2<\/b> controllers on Linux via <b>Bluetooth<\/b>.<\/p>\n<p>Xpadneo features include:<\/p>\n<ul>\n<li><b>Connect via Bluetooth<\/b>.<\/li>\n<li><b>Trigger force feedback<\/b> &#8211; pressure-dependent vibration on both triggers.<\/li>\n<li><b>Battery reporting.<\/b><\/li>\n<li><b>Low Latency.<\/b><\/li>\n<\/ul>\n<p>To install xpadneo driver in Ubuntu, press <code>Ctrl+Alt+T<\/code> on keyboard to open up a terminal window, and run the commands below one by one.<\/p>\n<p>1. First, run command to install dkms, kernel headers, and bluz:<\/p>\n<pre>sudo apt install git dkms linux-headers-$(uname -r) bluez<\/pre>\n<p>You may run <code>sudo apt update<\/code> first to refresh cache, if the command above does not work.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-51709\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/apt-dkmsbluz-700x485.webp\" alt=\"\" width=\"610\" height=\"423\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/apt-dkmsbluz-700x485.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/apt-dkmsbluz-300x208.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/apt-dkmsbluz.webp 736w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>2. Next, run command to clone the source code from github:<\/p>\n<pre>git clone https:\/\/github.com\/atar-axis\/xpadneo.git<\/pre>\n<p>3. After that, navigate to the source folder, and run the installer script to build and install the driver as kernel model:<\/p>\n<pre>cd xpadneo &amp;&amp; sudo .\/install.sh<\/pre>\n<p><i>Tips: the source folder also contain <code>uninstall.sh<\/code>, which is useful in case you want to uninstall the driver afterwards.<\/i><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-51710\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/xpadneo-install-700x537.webp\" alt=\"\" width=\"610\" height=\"468\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/xpadneo-install-700x537.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/xpadneo-install-300x230.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/xpadneo-install.webp 702w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>After installed the driver, <b>restart your computer<\/b>. It will automatically load the driver at the next boot.<\/p>\n<p>4. To connect your Xbox controller over Bluetooth, press and hold the small connect button on top of the XBox controller (next to the USB port) until the Xbox logo starts flashing rapidly.<\/p>\n<p>Then, run commands below in Ubuntu terminal to connect:<\/p>\n<ul>\n<li>First, run command to start the bluethooth CLI utility:\n<pre>sudo bluetoothctl<\/pre>\n<\/li>\n<li>Next, run <code>scan on<\/code> to searching for nearby Bluetooth devices. It will print something look like &#8220;<i>[NEW] Device C8:3F:26:XX:XX:XX Xbox Wireless Controller<\/i>&#8221; once it found your controller.\n<pre>scan on<\/pre>\n<\/li>\n<li>Then, run <code>scan off<\/code> to stop searching.<\/li>\n<li>And, run the command below to start pairing (replace the ID accordingly):\n<pre>pair C8:3F:26:XX:XX:XX<\/pre>\n<\/li>\n<li>Finally, the run commands below one by one to trust and connect the device (also replace ID with yours):\n<pre>trust C8:3F:26:XX:XX:XX<\/pre>\n<pre>connect C8:3F:26:XX:XX:XX<\/pre>\n<\/li>\n<\/ul>\n<p>If everything goes well, it will output &#8220;Connection successful&#8221;. After that, run <code>exit<\/code> to quit the utility.<\/p>\n<p>Now, you can start any game and the controller should be detected automatically. For steam games, go to Settings -&gt; Controller -&gt; General Controller Settings and make sure &#8220;Xbox Configuration Support&#8221; is enabled. <\/p>\n<p>See <a href=\"https:\/\/xpadneo.net\/\" target=\"_blank\" rel=\"noopener\">xpadneo.net<\/a> for more about Xpadneo kernel driver.<\/p>\n<h3>Option 2: Xone<\/h3>\n<p>If you want to connect your controller through Wireless Adapter, or with USB wired as well as full experience, then try <a href=\"https:\/\/github.com\/medusalix\/xone\" target=\"_blank\" rel=\"noopener\">Xone<\/a>.<\/p>\n<p>Xone supports <b>Xbox One<\/b>, <b>Xbox Series X|S<\/b>, <b>Xbox Adaptive controllers<\/b>, as well as headsets connected through either USB or wireless dongle. It features:<\/p>\n<ul class=\"wp-block-list rb-checked-list\">\n<li><b>Connect via USB or Wireless Adapter<\/b>.<\/li>\n<li><b>Input and force feedback (rumble)<\/b><\/li>\n<li><b>Battery reporting.<\/b><\/li>\n<li><b>LED Control<\/b>.<\/li>\n<li><b>Audio capture\/playback.<\/b><\/li>\n<li><b>Lowest Latency.<\/b><\/li>\n<\/ul>\n<p>To install Xone, offpen terminal (Ctrl+Alt+T) and run the commands below one by one:<\/p>\n<p>&nbsp;<\/p>\n<p><b>NOTE: Xone is sadly in maintenance mode now, that will receive only occasional minor fixes! Installing it will replace the built-in <code>xpad<\/code> driver useful for Xbox \/ Xbox 360 peripherals.<\/b><\/p>\n<p>1. First, run command to install the kernel header, dkms, curl etc tools:<\/p>\n<pre>sudo apt install linux-headers-$(uname -r) dkms curl cabextract git<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-51711\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/apt-xonedeps-700x487.webp\" alt=\"\" width=\"610\" height=\"424\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/apt-xonedeps-700x487.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/apt-xonedeps-300x209.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/apt-xonedeps.webp 768w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>2. Then, clone the source code by running the command below:<\/p>\n<pre>git clone https:\/\/github.com\/medusalix\/xone<\/pre>\n<p>3. Next, navigate to the source folder and run the installer script to build the kernel model:<\/p>\n<pre>cd xone &amp;&amp; sudo .\/install.sh --release<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-51712\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/install-xone-700x487.webp\" alt=\"\" width=\"610\" height=\"424\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/install-xone-700x487.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/install-xone-300x209.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/07\/install-xone.webp 768w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><br \/>\n4. And, download the firmware for the wireless dongle<\/p>\n<pre>sudo xone-get-firmware.sh<\/pre>\n<p>Finally, connect your controller either via USB or wireless adapter (see the <a href=\"https:\/\/support.xbox.com\/en-US\/help\/hardware-network\/controller\/connect-xbox-wireless-controller-to-pc\" target=\"_blank\" rel=\"noopener\">official guide<\/a> if you don&#8217;t know how), and enjoy.<\/p>\n<h3>Uninstall:<\/h3>\n<p>Both Xpadneo and Xone kernel models include an uninstall script in the source folder. If you have already removed the source from your file manager, simply re-run the <code>git clone<\/code> command above to re-download.<\/p>\n<p>For Xpadneo, you may then run the command below to navigate to the source folder and run the uninstall script:<\/p>\n<pre>cd xpadneo &amp;&amp; sudo .\/uninstall.sh<\/pre>\n<p>Or run the command below instead after grabbed the xone source:<\/p>\n<pre>cd xone &amp;&amp; sudo .\/uninstall.sh<\/pre>\n<p>Finally, remove the source folders to clean up.<\/p>","protected":false},"excerpt":{"rendered":"<p>Got a Xbox One controller? It works in Linux out-of-the-box, but only for basic use and you need to connect through a USB cable. If you want to use your Xbox One controller in Linux wirelessly through bluetooth or wireless adapter, and want more features for better experience, then you need to install a third-party [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":51713,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[1189,2091],"class_list":["post-51708","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-howtos","tag-game","tag-hardware"],"_links":{"self":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/51708","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/comments?post=51708"}],"version-history":[{"count":0,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/51708\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media\/51713"}],"wp:attachment":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media?parent=51708"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/categories?post=51708"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/tags?post=51708"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}