Steam Controller Detection Issues

I have an 8-bitdo ultimate controller, which I use for gaming.

I have successfully used it in the past, but I stopped being recognized by Steam.

The controller is detected by the OS, as I can see in the controller setting, and it detected inputs correctly. However, when I check the steam settings, it is not detected.

I have tried updating the Xone DKMS modules and tried switching to the AUR repository version.

Does anyone have any Idea what might be going on?

here is my garuda-inxi output:

System:
Kernel: 6.8.2-zen2-1-zen arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
clocksource: tsc avail: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=5953ee72-6d49-44d7-ada1-f2f27dd488a7 rw rootflags=subvol=@
quiet quiet rd.udev.log_priority=3 vt.global_cursor_default=0 loglevel=3
mitigations=off ibt=off
Desktop: KDE Plasma v: 6.0.2 tk: Qt v: N/A info: frameworks v: 6.0.0
wm: kwin_x11 vt: 2 dm: SDDM Distro: Garuda base: Arch Linux
Machine:
Type: Desktop Mobo: ASUSTeK model: ROG STRIX Z390-E GAMING v: Rev 1.xx
serial: <superuser required> part-nu: ASUS_MB_CNL uuid: <superuser required>
UEFI: American Megatrends v: 1105 date: 06/06/2019
CPU:
Info: model: Intel Core i7-9700K bits: 64 type: MCP arch: Coffee Lake
gen: core 9 level: v3 note: check built: 2018 process: Intel 14nm family: 6
model-id: 0x9E (158) stepping: 0xD (13) microcode: 0xFC
Topology: cpus: 1x cores: 8 smt: <unsupported> cache: L1: 512 KiB
desc: d-8x32 KiB; i-8x32 KiB L2: 2 MiB desc: 8x256 KiB L3: 12 MiB
desc: 1x12 MiB
Speed (MHz): avg: 4600 high: 4603 min/max: 800/4900 scaling:
driver: intel_pstate governor: performance cores: 1: 4603 2: 4598 3: 4600
4: 4600 5: 4601 6: 4601 7: 4602 8: 4600 bogomips: 57600
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: NVIDIA TU106 [GeForce RTX 2070 Rev. A] vendor: ASUSTeK
driver: nvidia v: 550.67 alternate: nouveau,nvidia_drm non-free: 545.xx+
status: current (as of 2024-02; EOL~2026-12-xx) arch: Turing code: TUxxx
process: TSMC 12nm FF built: 2018-2022 pcie: gen: 1 speed: 2.5 GT/s
lanes: 16 ports: active: none off: DP-1,HDMI-A-1
empty: DP-2,DP-3,Unknown-2 bus-ID: 01:00.0 chip-ID: 10de:1f07
class-ID: 0300
Device-2: Logitech HD Pro Webcam C920 driver: snd-usb-audio,uvcvideo
type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-1:2
chip-ID: 046d:082d class-ID: 0102 serial: <filter>
Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.4
compositor: kwin_x11 driver: X: loaded: nvidia unloaded: modesetting
alternate: fbdev,nouveau,nv,vesa gpu: nvidia,nvidia-nvswitch
display-ID: :0 screens: 1
Screen-1: 0 s-res: 3840x1080 s-dpi: 92 s-size: 1060x301mm (41.73x11.85")
s-diag: 1102mm (43.38")
Monitor-1: DP-1 note: disabled pos: primary,left model: Asus VS248
serial: <filter> built: 2015 res: 1920x1080 hz: 60 dpi: 92 gamma: 1.2
size: 531x299mm (20.91x11.77") diag: 609mm (24") ratio: 16:9 modes:
max: 1920x1080 min: 640x480
Monitor-2: HDMI-A-1 mapped: HDMI-0 note: disabled pos: right
model: Asus VS248 serial: <filter> built: 2013 res: 1920x1080 hz: 60 dpi: 92
gamma: 1.2 size: 531x299mm (20.91x11.77") diag: 609mm (24") ratio: 16:9
modes: max: 1920x1080 min: 640x480
API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
drv: swrast gbm: drv: nvidia surfaceless: drv: nvidia x11: drv: nvidia
inactive: wayland,device-1
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 550.67
glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce RTX 2070/PCIe/SSE2
memory: 7.81 GiB
API: Vulkan v: 1.3.279 layers: 11 device: 0 type: discrete-gpu
name: NVIDIA GeForce RTX 2070 driver: nvidia v: 550.67 device-ID: 10de:1f07
surfaces: xcb,xlib
Audio:
Device-1: Intel Cannon Lake PCH cAVS vendor: ASUSTeK driver: snd_hda_intel
v: kernel alternate: snd_soc_skl,snd_sof_pci_intel_cnl bus-ID: 00:1f.3
chip-ID: 8086:a348 class-ID: 0403
Device-2: NVIDIA TU106 High Definition Audio vendor: ASUSTeK
driver: snd_hda_intel v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 16
bus-ID: 01:00.1 chip-ID: 10de:10f9 class-ID: 0403
Device-3: Logitech HD Pro Webcam C920 driver: snd-usb-audio,uvcvideo
type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-1:2
chip-ID: 046d:082d class-ID: 0102 serial: <filter>
Device-4: Focusrite-Novation Scarlett Solo (3rd Gen.)
driver: snd-usb-audio type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0
bus-ID: 1-2:3 chip-ID: 1235:8211 class-ID: 0102 serial: <filter>
API: ALSA v: k6.8.2-zen2-1-zen status: kernel-api with: aoss
type: oss-emulator tools: N/A
Server-1: PipeWire v: 1.0.4 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Intel Cannon Lake PCH CNVi WiFi driver: iwlwifi v: kernel
bus-ID: 00:14.3 chip-ID: 8086:a370 class-ID: 0280
IF: wlo1 state: up mac: <filter>
Device-2: Intel Ethernet I219-V vendor: ASUSTeK driver: e1000e v: kernel
port: N/A bus-ID: 00:1f.6 chip-ID: 8086:15bc class-ID: 0200
IF: eno2 state: down mac: <filter>
Device-3: Realtek RTL8153 Gigabit Ethernet Adapter driver: r8152 type: USB
rev: 2.1 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-3.3.2:12
chip-ID: 0bda:8153 class-ID: 0000 serial: <filter>
IF: enp0s20f0u3u3u2 state: down mac: <filter>
Info: services: NetworkManager, smbd, systemd-timesyncd, wpa_supplicant
Bluetooth:
Device-1: Intel Bluetooth 9460/9560 Jefferson Peak (JfP) driver: btusb
v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-14:16
chip-ID: 8087:0aaa class-ID: e001
Report: btmgmt ID: hci0 rfk-id: 1 state: up address: <filter> bt-v: 5.1
lmp-v: 10 status: discoverable: no pairing: no class-ID: 6c0104
Drives:
Local Storage: total: 2.71 TiB used: 1.26 TiB (46.7%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:5 vendor: Western Digital
model: WD BLACK SN750 SE 1TB size: 931.51 GiB block-size: physical: 512 B
logical: 512 B speed: 63.2 Gb/s lanes: 4 tech: SSD serial: <filter>
fw-rev: 711240WD temp: 35.9 C scheme: GPT
ID-2: /dev/nvme1n1 maj-min: 259:0 vendor: Western Digital
model: WDS500G3X0C-00SJG0 size: 465.76 GiB block-size: physical: 512 B
logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
fw-rev: 102000WD temp: 44.9 C scheme: GPT
ID-3: /dev/sda maj-min: 8:0 vendor: Samsung model: SSD 860 QVO 1TB
size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
tech: SSD serial: <filter> fw-rev: 1B6Q scheme: MBR
ID-4: /dev/sdb maj-min: 8:16 vendor: Intel model: SSDSC2BB480G4I 00AJ031
00AJ034IBM size: 447.13 GiB block-size: physical: 512 B logical: 512 B
speed: 6.0 Gb/s tech: SSD serial: <filter> fw-rev: NB33 scheme: GPT
Partition:
ID-1: / raw-size: 429.35 GiB size: 429.35 GiB (100.00%)
used: 305.89 GiB (71.2%) fs: btrfs dev: /dev/nvme1n1p3 maj-min: 259:3
ID-2: /boot/efi raw-size: 2 GiB size: 2 GiB (99.80%) used: 584 KiB (0.0%)
fs: vfat dev: /dev/nvme1n1p4 maj-min: 259:4
ID-3: /home raw-size: 429.35 GiB size: 429.35 GiB (100.00%)
used: 305.89 GiB (71.2%) fs: btrfs dev: /dev/nvme1n1p3 maj-min: 259:3
ID-4: /var/log raw-size: 429.35 GiB size: 429.35 GiB (100.00%)
used: 305.89 GiB (71.2%) fs: btrfs dev: /dev/nvme1n1p3 maj-min: 259:3
ID-5: /var/tmp raw-size: 429.35 GiB size: 429.35 GiB (100.00%)
used: 305.89 GiB (71.2%) fs: btrfs dev: /dev/nvme1n1p3 maj-min: 259:3
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 31.26 GiB used: 2.22 GiB (7.1%)
priority: 100 comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 8
dev: /dev/zram0
ID-2: swap-2 type: partition size: 34.4 GiB used: 0 KiB (0.0%)
priority: -2 dev: /dev/nvme1n1p1 maj-min: 259:1
Sensors:
System Temperatures: cpu: 38.0 C mobo: 31.0 C gpu: nvidia temp: 45 C
Fan Speeds (rpm): fan-1: 0 fan-2: 0 fan-3: 0 fan-4: 0 fan-5: 0 fan-6: 0
fan-7: 0 gpu: nvidia fan: 0%
Info:
Memory: total: 32 GiB available: 31.26 GiB used: 13.42 GiB (42.9%)
Processes: 386 Power: uptime: 5h 0m states: freeze,mem,disk suspend: deep
avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
suspend, test_resume image: 12.46 GiB services: org_kde_powerdevil,upowerd
Init: systemd v: 255 default: graphical tool: systemctl
Packages: 2346 pm: pacman pkgs: 2308 libs: 588 tools: paru pm: flatpak
pkgs: 38 Compilers: gcc: 13.2.1 Shell: garuda-inxi default: fish v: 3.7.0
running-in: konsole inxi: 3.3.33
Garuda (2.6.23-1):
System install date:     2023-04-04
Last full system update: 2024-03-29 ↻
Is partially upgraded:   No
Relevant software:       snapper NetworkManager mkinitcpio nvidia-dkms
Windows dual boot:       No/Undetected
Failed units:
1 Like

The ‘swoosh’ indicates you need to reboot. Please do so. :slight_smile:

2 Likes

I have updated my computer several times, but it hasn’t helped :face_exhaling:

I’ve made some progress on the issue where Steam wasn’t recognizing my gamepad after a recent system update. By reverting to an earlier system snapshot, I was able to get Steam to detect my controller once again.

After comparing how my system detected the device before and after the update, I realized something significant. For the more recent update, my system correctly identified my gamepad as an “8BitDo Ultimate” controller. However, in the earlier snapshot I’ve reverted to, the system detects it as a Nintendo Switch controller. This discrepancy leads me to believe that the way the system classifies the controller might be why Steam was unable to recognize it after the update.

Despite resolving the immediate issue, I am still curious about the underlying mechanisms.

I have a few questions that I hope the community can help me with:

  1. Understanding the Process: What processes are involved in detecting and classifying a gamepad when it’s connected to a Linux system? I’m eager to learn more about the technical details of how devices are identified and categorized upon connection.
  2. Interception and Modification: Is there a way to intercept this detection and classification process? Specifically, can I force the system to classify the controller differently, perhaps to maintain compatibility with applications like Steam that may rely on specific device profiles?

I am excited to learn more information about this topic.

Thanks for the help.

I had an issue with my Thrustmaster controller:

The solution was to uninstall the xone driver from the Garada Gamer, then install the git version:

paru xone-dkms-git

The git version is being updated and works fine with the new zen kernel.
Without the driver, my controller would not even power up, when connected to the system. As the driver is not in kernel, we need this extra one.

1 Like

Thanks for the suggestion.

I tried using the AUR version, assuming it was up to date with the git repo. I guess I was incorrect.

The next time I update my system I will give this solution a try and report back.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.