stt.txt (2986B)
1 Quick recovery (when bluetooth audio dies) 2 3 # Option A — lighter touch 4 bluetoothctl disconnect B8:84:11:6B:7D:09 5 sleep 2 6 bluetoothctl connect B8:84:11:6B:7D:09 7 # Option B — full reset (what you did at 19:15) 8 systemctl --user restart wireplumber pipewire pipewire-pulse 9 sudo systemctl restart bluetooth 10 11 =============================================================================== 12 Restart after stt crash in coding agent: 13 14 systemctl --user restart wireplumber pipewire pipewire-pulse 15 16 systemctl --user status pipewire pipewire-pulse wireplumber pulseaudio 17 18 =============================================================================== 19 20 Your adapter is an Intel AX210 (8087:0032), which has a long history of flaky A2DP/CIS behavior with Linux Bluetooth stacks. 21 22 Why it keeps happening 23 24 Common triggers on AX210 + earbuds: 25 26 1. Earbuds idle/sleep → stale link → first audio after wake fails 27 2. A2DP profile switch (especially AAC) → packet timing issues 28 3. A2DP ↔ HFP switch (mic use, /voice, browser tab) → transport teardown race 29 4. Kernel/firmware regression — you're on kernel 7.0.12, which is very new 30 31 Quick recovery (when audio dies) 32 33 # Option A — lighter touch 34 bluetoothctl disconnect <id> 35 sleep 2 36 bluetoothctl connect <id> 37 # Option B — full reset (what you did at 19:15) 38 systemctl --user restart wireplumber pipewire pipewire-pulse 39 sudo systemctl restart bluetooth 40 41 Mitigations worth trying (most impact first) 42 43 1. Force SBC instead of AAC (AAC is often more fragile on AX210) 44 45 Create ~/.config/wireplumber/wireplumber.conf.d/51-bluez-a2dp-sbc.conf: 46 47 bluez_monitor.rules = { 48 { 49 matches = { 50 { { "device.name", "matches", "bluez_card.*" } }, 51 }, 52 apply_properties = { 53 ["bluez5.auto-connect"] = "[ a2dp_sink ]", 54 ["bluez5.codecs"] = "[ sbc ]", 55 }, 56 }, 57 } 58 59 Then: 60 61 systemctl --user restart wireplumber 62 63 2. Keep firmware updated 64 65 sudo pacman -Syu linux-firmware bluez pipewire wireplumber 66 67 3. If it got worse on kernel 7.0, try the LTS kernel as a test — AX210 issues often track kernel versions. 68 69 4. Long-term workaround: a dedicated USB Bluetooth dongle (Broadcam/MediaTek-based ones often behave better than AX210 for A2DP). 70 71 5. For /voice specifically: after the earphones have been idle, play a second of audio or reconnect before recording — the HFP switch is extra stress right after a broken A2DP 72 link. 73 74 ──────────────────────────────────────── 75 76 Bottom line: At 19:11 your Intel BT adapter lost sync with the A2DP stream to the OpenFit Pro. WirePlumber logged it and kept running; audio died because the BT transport 77 broke, not because PipeWire segfaulted. The sleep-idle → wake → stream pattern fits this well. 78 79 If you want, I can add that WirePlumber config to your dotfiles repo and a small reconnect script for when this happens. 80 81