Bluetooth headset connects then immediately disconnects after SteamOS update; BlueZ rejects the headset's re-pair request (fixed by JustWorksRepairing = always)

未关闭
#3,038 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
linux

调研方向

Start by reviewing the attached btmon capture and the report’s reproduction steps, then compare the behavior with JustWorksRepairing = always in /etc/bluetooth/main.conf. Check whether the SteamOS update changed the Bluetooth configuration or bond-repair behavior; the issue is resolved when a previously paired headset connects and stays connected with the default configuration.

由索引模型根据 Issue 内容生成。

描述

Your system information

  • SteamOS version: 3.9.5
  • Model: Oled 1TB
  • Update channel: Stable
  • Opted into Steam client beta: No
  • Opted into SteamOS beta: No

Describe your issue in as much detail as possible:
After the latest SteamOS update, my Bluetooth earbuds show "connected" and then disconnect immediately, every attempt. It happens in Desktop Mode, and also when switching from Gaming Mode to Desktop Mode. Restarts, removing and re-pairing the device, and clearing Bluetooth configs did not help. The same earbuds work normally on a phone, so the problem is on the Deck.

Running sudo systemctl restart bluetooth fixed it temporarily, but it came back after about a day of use.

What the capture shows (btmon, attached as btmon.txt):

  1. The headset connects and A2DP/HFP setup completes normally.
  2. About 0.6 seconds later the headset initiates SSP re-pairing.
  3. BlueZ immediately sends User Confirmation Request Negative Reply. No prompt is shown to the user, and a pairing agent is registered.
  4. Simple Pairing Complete / Auth Complete = Authentication Failure (0x05).
  5. The headset then terminates the link (Remote User Terminated Connection).
    The controller (hci0) behaves normally throughout. bluetoothctl output shows the same pattern: the headset connects, endpoints appear, then it disconnects with "Connection terminated by remote user", repeatedly.

Workaround that fixes it:
Setting JustWorksRepairing = always in /etc/bluetooth/main.conf and restarting bluetooth.service. After that the earbuds pair, connect, and stay connected. With the default value (never), BlueZ rejects the re-pair request from a device it already has bonded, and the connection is torn down. A SteamOS update may overwrite main.conf and bring the problem back.

Expected behavior:
Earbuds connect and stay connected without manual configuration changes.

Steps to reproduce:

  1. Have a Bluetooth headset already paired with the Deck.
  2. Connect it in Desktop Mode (or switch from Gaming Mode to Desktop Mode with it connected).
  3. It reports connected, then disconnects right away.

Notes:
I have not isolated a specific trigger such as sleep/wake. This appears to be a bond-handling regression introduced with the latest SteamOS update.

btmon.txt

主要语言
没有语言数据
星标
2.7k
派生
89
PR 合并指标
30 天内没有已合并 PR

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

ValveSoftware/SteamOS 的其他 Issue

查看 ValveSoftware/SteamOS 的全部 Issue

相似的 Issue

更多 Networking Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。