Sony DS4 Controller Bluetooth input not working

Hi everyone,

I am sorry to create a new topic every week, sometime I can fix it on my own, sometime I am stuck.
So question of the week. I want to connect my Sony DS4 Controller to my Linux pc via Bluetooth. I have installed Bluez and started bluetoothctl, scanned for devices found my controller. Then i paired it with my pc, no problem. I don’t get any input from the controller. I don’t know for me it seems as if Bluetooth device need to create a new joydev device and this part is missing. Maybe just a package is missing.

[NEW] Device 70:20:84:61:80:86 Wireless Controller
Request authorization
[agent] Accept pairing (yes/no): yes
[CHG] Device 70:20:84:61:80:86 Bonded: yes
[CHG] Device 70:20:84:61:80:86 ServicesResolved: yes
[CHG] Device 70:20:84:61:80:86 Paired: yes
[Wireless Controller]# trust 70:20:84:61:80:86 
[CHG] Device 70:20:84:61:80:86 Trusted: yes
Changing 70:20:84:61:80:86 trust succeeded
[Wireless Controller]# info
Device 70:20:84:61:80:86 (public)
        Name: Wireless Controller
        Alias: Wireless Controller
        Class: 0x00002508 (9480)
        Icon: input-gaming
        Paired: yes
        Bonded: yes
        Trusted: yes
        Blocked: no
        Connected: yes
        LegacyPairing: no

I followed the guide here on Endeavouros:
https://discovery.endeavouros.com/audio/bluetooth/2021/03/
And Arch Gamepad:
https://wiki.archlinux.org/title/Gamepad
And searched the arch forum and web for tipps, downgrade bluez to 5.68-1 as mentioed here:
https://bbs.archlinux.org/viewtopic.php?id=288824
And tried ds4drv.
I don’t know where to look.

extra/bluez-hid2hci 5.69-1 (17.1 KiB 37.5 KiB) (Installed: 5.68-1)
    Put HID proxying bluetooth HCI's into HCI mode
extra/bluez-plugins 5.69-1 (7.8 KiB 18.1 KiB) (Installed: 5.68-1)
    bluez plugins (PS3 Sixaxis controller)
extra/bluez-utils 5.69-1 (1013.7 KiB 4.0 MiB) (Installed: 5.68-1)
    Development and debugging utilities for the bluetooth protocol stack
extra/bluez-tools 0.2.0-5 (159.9 KiB 999.6 KiB) 
    A set of tools to manage Bluetooth devices for Linux
extra/bluez-libs 5.69-1 (92.3 KiB 327.1 KiB) (Installed: 5.68-1)
    Deprecated libraries for the bluetooth protocol stack
extra/bluez-cups 5.69-1 (18.5 KiB 42.0 KiB) 
    CUPS printer backend for Bluetooth printers
extra/bluez-qt 5.110.0-1 (973.3 KiB 2.2 MiB) [kf5] 
    Qt wrapper for Bluez 5 DBus API
extra/bluez 5.69-1 (937.3 KiB 2.7 MiB) (Installed: 5.68-1)
    Daemons for the bluetooth protocol stack

On RetroArch I can use the same controller to play games via built in Blutooth from the Raspberrypi 4.

And the output of lsmod:

Module                  Size  Used by
rfcomm                102400  16
snd_seq_dummy          12288  0
snd_hrtimer            12288  1
snd_seq               131072  7 snd_seq_dummy
nft_fib_inet           12288  1
nft_fib_ipv4           12288  1 nft_fib_inet
nft_fib_ipv6           12288  1 nft_fib_inet
nft_fib                12288  3 nft_fib_ipv6,nft_fib_ipv4,nft_fib_inet
nft_reject_inet        12288  10
nf_reject_ipv4         16384  1 nft_reject_inet
nf_reject_ipv6         24576  1 nft_reject_inet
nft_reject             12288  1 nft_reject_inet
nft_ct                 28672  7
nft_chain_nat          12288  3
nf_nat                 65536  1 nft_chain_nat
nf_conntrack          208896  2 nf_nat,nft_ct
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         12288  1 nf_conntrack
nf_tables             368640  253 nft_ct,nft_reject_inet,nft_fib_ipv6,nft_fib_ipv4,nft_chain_nat,nft_reject,nft_fib,nft_fib_inet
libcrc32c              12288  3 nf_conntrack,nf_nat,nf_tables
nfnetlink              20480  2 nf_tables
cmac                   12288  3
algif_hash             12288  1
algif_skcipher         12288  1
af_alg                 36864  6 algif_hash,algif_skcipher
bnep                   36864  2
snd_sof_pci_intel_tgl    12288  0
snd_hda_codec_realtek   192512  1
snd_sof_intel_hda_common   237568  1 snd_sof_pci_intel_tgl
snd_hda_codec_generic   114688  1 snd_hda_codec_realtek
soundwire_intel        73728  1 snd_sof_intel_hda_common
ledtrig_audio          12288  1 snd_hda_codec_generic
snd_sof_intel_hda_mlink    36864  2 soundwire_intel,snd_sof_intel_hda_common
soundwire_cadence      45056  1 soundwire_intel
snd_sof_intel_hda      24576  1 snd_sof_intel_hda_common
snd_sof_pci            24576  2 snd_sof_intel_hda_common,snd_sof_pci_intel_tgl
snd_sof_xtensa_dsp     16384  1 snd_sof_intel_hda_common
snd_sof               421888  3 snd_sof_pci,snd_sof_intel_hda_common,snd_sof_intel_hda
snd_sof_utils          16384  1 snd_sof
snd_soc_hdac_hda       28672  1 snd_sof_intel_hda_common
snd_hda_ext_core       36864  4 snd_sof_intel_hda_common,snd_soc_hdac_hda,snd_sof_intel_hda_mlink,snd_sof_intel_hda
snd_soc_acpi_intel_match    86016  2 snd_sof_intel_hda_common,snd_sof_pci_intel_tgl
snd_soc_acpi           12288  2 snd_soc_acpi_intel_match,snd_sof_intel_hda_common
intel_rapl_msr         20480  0
soundwire_generic_allocation    12288  1 soundwire_intel
intel_rapl_common      40960  1 intel_rapl_msr
soundwire_bus         135168  3 soundwire_intel,soundwire_generic_allocation,soundwire_cadence
intel_uncore_frequency    12288  0
intel_uncore_frequency_common    16384  1 intel_uncore_frequency
snd_soc_core          458752  4 soundwire_intel,snd_sof,snd_sof_intel_hda_common,snd_soc_hdac_hda
x86_pkg_temp_thermal    16384  0
intel_powerclamp       20480  0
snd_compress           28672  1 snd_soc_core
coretemp               16384  0
ac97_bus               12288  1 snd_soc_core
snd_usb_audio         462848  1
snd_pcm_dmaengine      16384  1 snd_soc_core
snd_hda_codec_hdmi     94208  2
snd_usbmidi_lib        49152  1 snd_usb_audio
snd_hda_intel          65536  2
kvm_intel             425984  0
snd_ump                32768  1 snd_usb_audio
snd_intel_dspcfg       32768  3 snd_hda_intel,snd_sof,snd_sof_intel_hda_common
i915                 4108288  3
snd_rawmidi            57344  2 snd_usbmidi_lib,snd_ump
snd_intel_sdw_acpi     16384  2 snd_sof_intel_hda_common,snd_intel_dspcfg
kvm                  1372160  1 kvm_intel
btusb                  81920  0
snd_hda_codec         225280  6 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek,snd_soc_hdac_hda,snd_sof_intel_hda
drm_buddy              20480  1 i915
snd_seq_device         16384  3 snd_seq,snd_ump,snd_rawmidi
vfat                   20480  1
i2c_algo_bit           20480  1 i915
btrtl                  28672  1 btusb
fat                   106496  1 vfat
snd_hda_core          151552  9 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_hda_codec_realtek,snd_sof_intel_hda_common,snd_soc_hdac_hda,snd_sof_intel_hda
irqbypass              12288  1 kvm
mc                     90112  1 snd_usb_audio
btbcm                  24576  1 btusb
spi_nor               143360  0
ttm                   110592  1 i915
snd_hwdep              20480  2 snd_usb_audio,snd_hda_codec
iTCO_wdt               16384  0
btintel                57344  1 btusb
mei_hdcp               28672  0
rapl                   20480  0
mei_pxp                16384  0
mtd                   110592  3 spi_nor
intel_pmc_bxt          16384  1 iTCO_wdt
ee1004                 16384  0
drm_display_helper    229376  1 i915
btmtk                  12288  1 btusb
snd_pcm               204800  12 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,soundwire_intel,snd_sof,snd_sof_intel_hda_common,snd_compress,snd_soc_core,snd_sof_utils,snd_hda_core,snd_pcm_dmaengine
iTCO_vendor_support    12288  1 iTCO_wdt
intel_cstate           20480  0
bluetooth            1110016  44 btrtl,btmtk,btintel,btbcm,bnep,btusb,rfcomm
snd_timer              53248  3 snd_seq,snd_hrtimer,snd_pcm
spi_intel_pci          12288  0
snd                   155648  25 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_usb_audio,snd_usbmidi_lib,snd_hda_codec,snd_hda_codec_realtek,snd_sof,snd_timer,snd_compress,snd_soc_core,snd_ump,snd_pcm,snd_rawmidi
cec                    86016  2 drm_display_helper,i915
intel_lpss_pci         24576  0
intel_uncore          258048  0
wmi_bmof               12288  0
ecdh_generic           16384  2 bluetooth
spi_intel              36864  1 spi_intel_pci
i2c_i801               40960  0
mei_me                 57344  2
e1000e                368640  0
pcspkr                 12288  0
intel_gtt              28672  1 i915
rfkill                 40960  4 bluetooth
soundcore              16384  1 snd
intel_lpss             16384  1 intel_lpss_pci
i2c_smbus              20480  1 i2c_i801
mei                   200704  5 mei_hdcp,mei_pxp,mei_me
idma64                 20480  0
acpi_tad               20480  0
acpi_pad               24576  0
mousedev               24576  0
joydev                 24576  0
mac_hid                12288  0
fuse                  204800  3
loop                   40960  0
dm_mod                225280  0
ip_tables              36864  0
x_tables               69632  1 ip_tables
uinput                 20480  0
pkcs8_key_parser       12288  0
usbhid                 77824  0
nvidia_uvm           3477504  0
nvidia_drm             94208  15
nvidia_modeset       1556480  32 nvidia_drm
nvidia              62713856  1501 nvidia_uvm,nvidia_modeset
ext4                 1175552  1
crc32c_generic         12288  0
crc16                  12288  2 bluetooth,ext4
mbcache                16384  1 ext4
jbd2                  221184  1 ext4
crct10dif_pclmul       12288  1
crc32_pclmul           12288  0
crc32c_intel           16384  3
polyval_clmulni        12288  0
polyval_generic        12288  1 polyval_clmulni
gf128mul               16384  1 polyval_generic
ghash_clmulni_intel    16384  0
nvme                   65536  4
sha512_ssse3           53248  0
aesni_intel           360448  4
crypto_simd            16384  1 aesni_intel
cryptd                 28672  3 crypto_simd,ghash_clmulni_intel
sr_mod                 28672  0
nvme_core             245760  5 nvme
xhci_pci               28672  0
cdrom                  81920  1 sr_mod
xhci_pci_renesas       24576  1 xhci_pci
nvme_common            24576  1 nvme_core
video                  77824  2 i915,nvidia_modeset
wmi                    45056  2 video,wmi_bmof
crypto_user            20480  0

What do you mean by you don’t get any input? I have mine connected via bluetooth and it works just fine. Is it a specific application that it isn’t working on?

Thank for the reply. Good question. I connect the controller and then i want to test it in Input Devices → Gamepad (KDE), and there i can’t select it. While when i connect the controller via usb, i get an input device to choose (joydev1) and can test or calibrate the controller. So if no input device gets generated, i can’t use the controller anywhere.

Not sure what is going on there. Mine looks like this


It shows up and I didn’t have to select it. Seems to be recognized.
One thing I remember doing for dolphin emulator I believe, was creating a udev rules called 99-ds4-controllers.rules
It contained the following contents

# DualShock 4 over USB
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c4", MODE="0666"

# DualShock 4 Wireless Adapter over USB
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ba0", MODE="0666"

# DualShock 4 Slim over USB
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="09cc", MODE="0666"

# DualShock 4 over Bluetooth
KERNEL=="hidraw*", KERNELS=="*054C:05C4*", MODE="0666"

# DualShock 4 Slim over Bluetooth
KERNEL=="hidraw*", KERNELS=="*054C:09CC*", MODE="0666"

I haven’t bothered to remove it, so I’m not sure if it is helping or hurting anything. I’m pretty sure it was still recognized even before adding this rule though.

Ok, I tried that, added the file per terminal, but it was already existing. I think I found a package which adds udev for many controllers, but it was also not working.

My window looks the same, but I can’t select my DS4, it is just not there.

What do get from blueman, if you click on info?
image

Second question which Bluez version are you using?

I’m on kde so I don’t have blueman. That is usually use on gtk desktops. As for my bluez pacakges:

bluedevil 1:5.27.8-1
bluez 5.69-1
bluez-libs 5.69-1
bluez-qt 5.110.0-1
bluez-utils 5.69-1

bluedevil is kde’s bluetooth manager. Including it for the sake of completeness.
kde bluetooth settings for the wireless controller

P.S.: sorry for the delay.

Edit 1: Output of bluetoothctl straight from the terminal in case it helps

Name: Wireless Controller
Alias: Wireless Controller
Class: 0x00002508 (9480)
Icon: input-gaming
Paired: yes
Bonded: yes
Trusted: yes
Blocked: no
Connected: yes
WakeAllowed: yes
LegacyPairing: no
UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb)
UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
Modalias: usb:v054Cp09CCd0100

Don’t worry, I am just grateful to get help.

I think i found the problem. It seems to be the dongle itself that is making problem. I bought this URGREEN (ATS2851) Dongle, for its antenna and new 5.3 standard. I tried it under windows and get 30ms of latency. Many forums are saying not working or problems. I will get the normal TP-Link or Aus BT500, which do you use?

I have a TP-Link TP-Link UB500 Adapter. At least that is what lscpu reports.

Perfect, so I will order this one and report back in a few days. Thanks.

@d-air1 So i bought the tp-link 5.0, put it into my computer, worked. I still can’t pair with bluedevil, the connection fails at the first try, but when I reboot afterward it connects just fine. And the rest of the story will be back in the other thread.

! Do not buy a Bluetooth dongle with a ATS2851 chip, like the Urgreen 5.3!

Cool, glad you solved the issue. Although I didn’t know bluedevil worked outside of kde at all.

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