You are not logged in.
I’ve been experiencing periodic bluetooth audio stuttering for the past two weeks (ever since I installed arch). About every 15–30 seconds, audio playback briefly glitches during youtube videos in any browser I’ve tried (chrome and firefox). I found out that stuttering correlates with youtube video buffering, when video’s progress bar shows new buffered sections turning gray. Streaming apple music via the web also has stutters, but they’re much shorter (~0.1seconds, at random periods), whereas in Firefox, they can last up to a full second and occur regularly.
The set-up:
OS: Arch Linux, Wayland (hyprland)
bluetooth toolkit: bluez
Audio drivers: alsa
Sound server: pipewire
Session manager: wireplumber
GUI sound control: pwvucontrol
Browser: firefox, chrome
headphones: AirPods Max
Codecs: AAC (SBC, SBC-XQ were tried as well)
rtkit is installed
What I have tried to fix it?
- journalctl showed that wpa_supplicant (which I use with NetworkManager) sent a CTRL-EVENT-SIGNAL-CHANGE right after slutter occured, so I bound NetworkManager to bssid of an AP to disable background scanning, event disappeared, slutter remained.
- Tried Bluetooth coexistence
- Tried turning off power_save mode on the network interface, in case it was causing interference
- Reviewed systemctl status for audio components (no errors)
- Tried disabling hardware acceleration in firefox, in case of slutter in video decoding.
Audio services status:
systemctl --user status pipewire wireplumber
● pipewire.service - PipeWire Multimedia Service
Loaded: loaded (/usr/lib/systemd/user/pipewire.service; enabled; preset: enabled)
Active: active (running) since Sun 2025-04-06 20:26:05 EEST; 1min 4s ago
Invocation: 390b6a778f924f7d81a8496a444831a6
TriggeredBy: ● pipewire.socket
Main PID: 1115 (pipewire)
Tasks: 3 (limit: 37999)
Memory: 6.9M (peak: 8.4M)
CPU: 43ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
└─1115 /usr/bin/pipewire
Apr 06 20:26:05 HOST02 systemd[1105]: Started PipeWire Multimedia Service.
● wireplumber.service - Multimedia Service Session Manager
Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled)
Active: active (running) since Sun 2025-04-06 20:26:05 EEST; 1min 4s ago
Invocation: e71a2193ae00475ea134de91bb380609
Main PID: 1116 (wireplumber)
Tasks: 6 (limit: 37999)
Memory: 16.9M (peak: 17.1M)
CPU: 302ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service
└─1116 /usr/bin/wireplumber
Apr 06 20:26:05 HOST systemd[1105]: Started Multimedia Service Session Manager.
Apr 06 20:26:05 HOST wireplumber[1116]: wp-internal-comp-loader: Loading profile 'main'
Apr 06 20:26:05 HOST wireplumber[1116]: default: Failed to get percentage from UPower: org.freedesktop.DBus.Error.NameHasNoOwner
Apr 06 20:26:05 HOST wireplumber[1116]: wp-device: SPA handle 'api.libcamera.enum.manager' could not be loaded; is it installed?
Apr 06 20:26:05 HOST wireplumber[1116]: s-monitors-libcamera: PipeWire's libcamera SPA plugin is missing or broken. Some camera types may not be suppor
ted.
Apr 06 20:26:06 HOST wireplumber[1116]: m-portal-permissionstore: <WpPortalPermissionStorePlugin:0x5bda11aa0380> Lookup: The name is not ac
tivatable (org.freedesktop.DBus.Error.ServiceUnknown)
Apr 06 20:27:01 HOST wireplumber[1116]: spa.bluez5.native: RFCOMM receive command but modem not available: AT+NREC=0
systemctl status bluetooth
● bluetooth.service - Bluetooth service
Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: disable
d)
Active: active (running) since Sun 2025-04-06 20:25:59 EEST; 2min 17s ago
Invocation: c21ed4753cbe4d18bd8c846bf3570be5
Docs: man:bluetoothd(8)
Main PID: 998 (bluetoothd)
Status: "Running"
Tasks: 1 (limit: 37999)
Memory: 3.1M (peak: 4.3M)
CPU: 64ms
CGroup: /system.slice/bluetooth.service
└─998 /usr/lib/bluetooth/bluetoothd
Apr 06 20:26:05 HOST bluetoothd[998]: Endpoint registered: sender=:1.18 path=/MediaEndpoint/A2DPSource/aptx_ll_0
Apr 06 20:26:05 HOST bluetoothd[998]: Endpoint registered: sender=:1.18 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_1
Apr 06 20:26:05 HOST bluetoothd[998]: Endpoint registered: sender=:1.18 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_0
Apr 06 20:26:05 HOST bluetoothd[998]: Endpoint registered: sender=:1.18 path=/MediaEndpoint/A2DPSource/faststream
Apr 06 20:26:05 HOST bluetoothd[998]: Endpoint registered: sender=:1.18 path=/MediaEndpoint/A2DPSource/faststream_duplex
Apr 06 20:26:05 HOST bluetoothd[998]: Endpoint registered: sender=:1.18 path=/MediaEndpoint/A2DPSink/opus_05
Apr 06 20:26:05 HOST bluetoothd[998]: Endpoint registered: sender=:1.18 path=/MediaEndpoint/A2DPSource/opus_05
Apr 06 20:26:05 HOST bluetoothd[998]: Endpoint registered: sender=:1.18 path=/MediaEndpoint/A2DPSink/opus_05_duplex
Apr 06 20:26:05 HOST bluetoothd[998]: Endpoint registered: sender=:1.18 path=/MediaEndpoint/A2DPSource/opus_05_duplex
Apr 06 20:27:04 HOST bluetoothd[998]: /org/bluez/hci0/dev_09_FC_42_2B_A1_53/sep1/fd1: fd(28) readyOffline
Normal interference with wifi signals and BT... your best bet is switching your wifi to the 5Ghz band if you have control over that.
Offline
I am connected to 5Ghz AP and even bound NetworkManager to BSSID of this 5Ghz AP to make wpa_supplicant stop background scanning for new APs with better signal.
Last edited by v3nver (2025-04-08 20:51:22)
Offline
The problem is related to rtw8852ce wi-fi driver's newer firmware.
The workaround found on the following repository helped.
The discussion of the issue could be found on Fedora forum.
Last edited by v3nver (2025-04-25 20:12:27)
Offline