I’ll preface this with the controller works perfectly fine over USB, without ever hitting issues.
With the preface, over Bluetooth, the controller does not work well. It connects, I can use the touchpad as a mouse, I can go through the Controller Test in steam, for some time. Eventually, it does seem to crash though. I have enabled the kernel module for “hid_playstation”, I’m on Kernel 6.13.4, which should be pretty close to latest… And again, everything works when plugged into USB. Which leads me to believe this may be a Bluetooth issue.
For bluetooth troubleshooting, I’ve restarted Bluetooth with the debug flag: sudo /usr/lib/bluetooth/bluetoothd -n -d
, from the Arch Wiki. And I do get some interesting logs from bluetoothd. It appears that hte lag only happens during “hidp_send_output()” function calls.
Log Snippet:
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:uhid_send_input_report() HID report (78 bytes)
bluetoothd[14979]: profiles/input/device.c:hidp_send_output()
bluetoothd[14979]: profiles/input/device.c:hidp_send_message() BT socket write error: Resource temporarily unavailable (11)
bluetoothd[14979]: profiles/input/device.c:uhid_send_input_report() HID report (78 bytes) dropped
bluetoothd[14979]: profiles/input/device.c:uhid_send_input_report() HID report (78 bytes) dropped
bluetoothd[14979]: profiles/input/device.c:uhid_send_input_report() HID report (78 bytes) dropped
bluetoothd[14979]: profiles/input/device.c:uhid_send_input_report() HID report (78 bytes) dropped
bluetoothd[14979]: profiles/input/device.c:uhid_send_input_report() HID report (78 bytes) dropped
bluetoothd[14979]: profiles/input/device.c:uhid_send_input_report() HID report (78 bytes) dropped
bluetoothd[14979]: profiles/input/device.c:uhid_send_input_report() HID report (78 bytes) dropped
bluetoothd[14979]: profiles/input/device.c:uhid_send_input_report() HID report (78 bytes) dropped
bluetoothd[14979]: profiles/input/device.c:uhid_send_input_report() HID report (78 bytes) dropped
bluetoothd[14979]: profiles/input/device.c:uhid_send_input_report() HID report (78 bytes) dropped
bluetoothd[14979]: profiles/input/device.c:uhid_send_input_report() HID report (78 bytes) dropped
bluetoothd[14979]: profiles/input/device.c:uhid_send_input_report() HID report (78 bytes) dropped
So those calls will happen intermittently, and when they do, all input basically stops. There aren’t necessarily any errors when this is happening, just a ton of lag. Interestingly enough, while I was writing this, I got so many of those function calls, that the connection apparently lagged out, and I got a disconnect, as shown in the snippet above. After that disconnect, it does appear to reconnect, but not longer functions and requires a hard disconnect and reconnect through bluetoothctl. I’ll note that I can see the lag in Steam Controller Calibration while this is happening. Also once the disconnect happens, Steam no longer detects the device.
Any thoughts here? I’m not really getting any error logs, and not sure where else to look.
Editing to add some more info.
bluetooth controller info
[PS5 Controller]# show
Controller 34:2E:B7:81:7D:96 (public)
Manufacturer: 0x0002 (2)
Version: 0x0b (11)
Name: steven-endeavour
Alias: steven-endeavour
Class: 0x006c0104 (7078148)
Powered: yes
PowerState: on
Discoverable: no
DiscoverableTimeout: 0x000000b4 (180)
Pairable: yes
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: Handsfree Audio Gateway (0000111f-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb)
UUID: Vendor specific (03b80e5a-ede8-4b33-a751-6ce34ec4c700)
UUID: Handsfree (0000111e-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1D6Bp0246d054F
Discovering: no
Roles: central
Roles: peripheral
Advertising Features:
ActiveInstances: 0x00 (0)
SupportedInstances: 0x0c (12)
SupportedIncludes: tx-power
SupportedIncludes: appearance
SupportedIncludes: local-name
SupportedSecondaryChannels: 1M
SupportedSecondaryChannels: 2M
SupportedCapabilities.MinTxPower: 0xffffffde (-34)
SupportedCapabilities.MaxTxPower: 0x0007 (7)
SupportedCapabilities.MaxAdvLen: 0xfb (251)
SupportedCapabilities.MaxScnRspLen: 0xfb (251)
SupportedFeatures: CanSetTxPower
SupportedFeatures: HardwareOffload