DS4 not recognized via bluetooth on Fedora, works on android

I am using Fedora 42 with a built-in Bluetooth adapter. I am trying to connect a DualShock 4 controller via Bluetooth. The controller successfully pairs and appears in bluetoothctl devices, but no /dev/input/event* device is created, and tools like evtest and jstest-gtk do not detect it. Steam also does not recognize the controller. Also, works perfectly on Android. Yes, the controller is original.

Details:

uname -a
Linux fedora 6.17.4-200.fc42.x86_64 #1 SMP PREEMPT_DYNAMIC Sun Oct 19 18:47:49 UTC 2025 x86_64 GNU/Linux

ls /dev/input/
ls /dev/input/by-id/
ο„• by-id     event1    event2   event5   event8   mouse0
ο„• by-path   event10   event3   event6   event9   mouse1
 event0    event11   event4   event7   mice     mouse2
 usb-Logitech_Wireless_Receiver-event-mouse
 usb-Logitech_Wireless_Receiver-mouse
lsmod | grep sony
sudo modprobe hid_sony
lsmod | grep sony
hid_sony               49152  0
ff_memless             24576  1 hid_sony

inxi -F                                                                                                                        
System:
  Host: fedora Kernel: 6.17.4-200.fc42.x86_64 arch: x86_64 bits: 64
  Desktop: Hyprland v: 0.51.1 Distro: Fedora Linux 42 (Adams)
Machine:
  Type: Laptop System: LENOVO product: 82MF v: IdeaPad 3 15ALC6
    serial: <superuser required>
  Mobo: LENOVO model: LNVNB161216 v: NO DPK serial: <superuser required>
    UEFI: LENOVO v: GLCN52WW date: 12/09/2022
Battery:
  ID-1: BAT0 charge: 31.8 Wh (100%) condition: 31.8/38 Wh (83.8%)
CPU:
  Info: 8-core model: AMD Ryzen 7 5700U with Radeon Graphics bits: 64
    type: MT MCP cache: L2: 4 MiB
  Speed (MHz): avg: 1471 min/max: 412/4374 cores: 1: 1471 2: 1471 3: 1471
    4: 1471 5: 1471 6: 1471 7: 1471 8: 1471 9: 1471 10: 1471 11: 1471 12: 1471
    13: 1471 14: 1471 15: 1471 16: 1471
Graphics:
  Device-1: Advanced Micro Devices [AMD/ATI] Lucienne driver: amdgpu v: kernel
  Device-2: Bison Integrated Camera driver: uvcvideo type: USB
  Display: wayland server: Xwayland v: 24.1.8 compositor: Hyprland v: 0.51.1
    driver: gpu: amdgpu resolution: 1920x1080~60Hz
  API: OpenGL v: 4.6 vendor: amd mesa v: 25.1.9 renderer: AMD Radeon
    Graphics (radeonsi renoir ACO DRM 3.64 6.17.4-200.fc42.x86_64)
  API: Vulkan v: 1.4.313 drivers: radv,llvmpipe surfaces: N/A
  API: EGL Message: EGL data requires eglinfo. Check --recommends.
  Info: Tools: api: glxinfo,vulkaninfo de: xfce4-display-settings
    wl: nwg-displays,wlr-randr x11: xdriinfo, xdpyinfo, xprop, xrandr
Audio:
  Device-1: Advanced Micro Devices [AMD/ATI] Renoir/Cezanne HDMI/DP Audio
    driver: snd_hda_intel
  Device-2: Advanced Micro Devices [AMD] Audio Coprocessor driver: N/A
  Device-3: Advanced Micro Devices [AMD] Family 17h/19h/1ah HD Audio
    driver: snd_hda_intel
  API: ALSA v: k6.17.4-200.fc42.x86_64 status: kernel-api
  Server-1: PipeWire v: 1.4.9 status: active
Network:
  Device-1: Realtek RTL8852AE 802.11ax PCIe Wireless Network Adapter
    driver: rtw89_8852ae
  IF: wlp1s0 state: up mac:
  IF-ID-1: tailscale0 state: unknown speed: -1 duplex: full mac: N/A
Bluetooth:
  Device-1: Realtek Bluetooth Radio driver: btusb type: USB
  Report: btmgmt ID: hci0 rfk-id: 16 state: down bt-service: enabled,running
    rfk-block: hardware: no software: yes address:  bt-v: 5.2
Drives:
  Local Storage: total: 476.94 GiB used: 109.46 GiB (22.9%)
  ID-1: /dev/nvme0n1 vendor: Samsung model: MZALQ512HBLU-00BL2
    size: 476.94 GiB
Partition:
  ID-1: / size: 475.35 GiB used: 108.81 GiB (22.9%) fs: btrfs
    dev: /dev/nvme0n1p3
  ID-2: /boot size: 973.4 MiB used: 554.9 MiB (57.0%) fs: ext4
    dev: /dev/nvme0n1p2
  ID-3: /boot/efi size: 598.8 MiB used: 7.5 MiB (1.3%) fs: vfat
    dev: /dev/nvme0n1p1
  ID-4: /home size: 475.35 GiB used: 108.81 GiB (22.9%) fs: btrfs
    dev: /dev/nvme0n1p3
Swap:
  ID-1: swap-1 type: zram size: 8 GiB used: 664.7 MiB (8.1%) dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 54.1 C mobo: N/A gpu: amdgpu temp: 45.0 C
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 20 GiB note: est. available: 17.4 GiB used: 7.87 GiB (45.2%)
  Processes: 458 Uptime: 4d 6h 20m Shell: Zsh inxi: 3.3.39

You enabled hid_sony driver, which does not fully support the Bluetooth Low Energy (BLE) mode, which is why the DualShock is not being detected. The hid-playstation driver should be on the kernel already but it recognizes both BLE and USB DS4 controllers and generates the right /dev/input/event* devices.

So i would run these with sudo when you make sure they are the right thing to do. I would remove your old driver but make sure to check if the other is there so i would check if its there with modinfo hid_playstation and you should see it give you something like this.

filename:       /lib/modules/6.17.4-200.fc42.x86_64/kernel/drivers/hid/hid-playstation.ko.xz
license:        GPL
description:    HID Driver for PlayStation peripherals.
author:         Sony Interactive Entertainment
rhelversion:    10.99

if it does then your good to go I would remove the old with modprobe -r hid_sony then load the correct driver with modprobe hid_playstation again probably going to need sudo and then load modprobe uinput and then check your /dev/input/by-id and see if your controller is there or a generic device. it should be able to be seen in/on Steam.

2 Likes

Thank you for your help. I think the solution was simpler than I expected. Yesterday I managed to connect somehow, no idea what happened. Today everything the same again, then I opened bluetoothctl, turned on the controller, connected (the led was a light blue), then I accepted the pairing request and the light turned dark blue. Lol

bluetoothctl                                                                                                                                                                        
[NEW] Media /org/bluez/hci0 
	SupportedUUIDs: 0000110a-0000-1000-8000-00805f9b34fb
	SupportedUUIDs: 0000110b-0000-1000-8000-00805f9b34fb
Agent registered
[CHG] Device 48:18:8D:EF:94:F0 Connected: yes
Request authorization
[agent] Accept pairing (yes/no): yes
[CHG] Device 48:18:8D:EF:94:F0 Bonded: yes
[CHG] Device 48:18:8D:EF:94:F0 Paired: yes
[Wireless Controller]>