notes

Log | Files | Refs

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