[Bug Report] 升级25.1.1-6月4日补丁后,导致蓝牙无法工作
Tofloor
poster avatar
图灵兔
deepin
2 hours ago
Author

25.1.0 升级到6月4日版的25.1.1系统,补丁包约1.97GB。升级前蓝牙设备正常,升级后蓝牙无法正常工作,导致手柄、键盘等设备无法使用。

使用deepcode进行分析后,生成报告如下:

蓝牙问题诊断报告

经过全面排查,系统状态如下:

硬件识别

组件 型号
蓝牙 Quectel 模块 2c7c:7009(MediaTek 芯片),USB 连接
WiFi MediaTek MT7925,PCIe 独立设备
平台 Deepin 25,内核 6.18.30,AMD Strix Halo

🔴 发现的关键问题

根本原因:USB 蓝牙设备处于 SUSPENDED 状态,固件无法加载。
runtime_status: suspended ← 设备被内核自动挂起
power/control: auto ← 启用了 USB 自动休眠
初始化时序是这样的:

  1. 系统启动 → btusb 驱动绑定 USB 蓝牙接口
  2. btmtk 驱动尝试向设备上传固件
  3. 但 USB 自动休眠先触发,设备被挂起
  4. 固件上传失败(静默) → BD Address 保留 00:00:00:00:00:00
  5. hci0 状态 DOWN,全部 features 为 0x00

其他佐证:

  • hci0 MAC 地址全零(00:00:00:00:00:00)
  • 设备 sysfs 中出现了 coredump 节点(设备初始化崩溃)
  • 所有 feature 寄存器值为零(芯片未运行)

最终诊断报告

问题根源

2c7c:7009 不在 btusb 驱动的 MediaTek 设备列表中。 驱动虽通过通用蓝牙类匹配绑定了设备,但未调用 btusbmtksetup(),导致:

  1. 芯片型号未被识别
  2. 固件(BTRAMCODE_*.bin)从未上传到芯片
  3. 芯片停留在 ROM 模式—— BD Address 00:00:00:00:00:00、Features 全零
    证据链:
    CONFIG_BT_HCIBTUSB_MTK=y ← MediaTek 支持已编译
    btusb_mtk_setup 存在于 kallsyms ← 函数存在但未被调用
    grep "2c7c.*7009" modules.alias ← 返回空:不在设备表中
    BD Address: 00:00:00:00:00:00 ← 固件未加载的典型症状

### 辛苦客服关注并提供解决方案

Reply Favorite View the author
All Replies
avatar
财鼠N
deepin
40 minutes ago
#1

一样,更新后蓝牙没了,MTK MT7921

Reply View the author