当前位置:首页>Linux>【Linux社区短距简报】linux-bluetooth周动态(20260506)

【Linux社区短距简报】linux-bluetooth周动态(20260506)

  • 2026-10-11 08:12:05
【Linux社区短距简报】linux-bluetooth周动态(20260506)

Linux 蓝牙子系统双周动态 (2026.04.23 - 2026.05.06)

    2026年5月6日

本文为您梳理了过去两周内 Linux 蓝牙子系统(Linux Bluetooth Subsystem)在邮件列表上的核心动态。内容涵盖 BlueZ 协议栈的重大重构、关键安全漏洞的披露与修复、新硬件设备的支持、以及多项底层驱动和功能的改进。

一、BlueZ 项目重大重构:引入 Meson 构建系统

Bastien Nocera 发起了一项影响深远的系列补丁 [BlueZ v10],旨在对 BlueZ 项目的构建系统进行现代化改造。

  • 核心变更:
    正式引入 Meson 构建系统,逐步替代传统的 Autotools。这将显著提升项目的构建速度和跨平台兼容性。
  • 配套改进:
    • 为 libell 库添加 Meson wrap 支持。
    • 分离 systemd 和 libsystemd 的依赖关系,提高构建灵活性。
    • 增加对 libical 4.x 版本的构建支持。
  • 构建逻辑优化:
    • 添加选项以允许禁用 bluetoothd 守护进程。
    • 仅在构建守护进程时才编译 profile 模块。
    • 条件化构建 gdbus 库,避免无用依赖。
  • 安装策略调整:
    • 默认安装 avinfo 工具,便于音频设备调试。
    • 当启用废弃工具时,安装 gatttool。
    • 如果构建了模拟器,则将其安装到系统路径中。
  • 测试与文档增强:
    • 新增集成测试以提升整体稳定性。
    • 使 test-bap 和 gobex-transfer 等单元测试支持并发运行,加快测试速度。
    • 新增 HTML 格式的官方文档,并配置 GitHub Actions 实现文档的自动部署。
    • 为 GATT 协议添加介绍性文档。

二、代码质量与安全性提升

1. 广泛采用 _cleanup_() 机制

Bastien Nocera 推动了另一项系列改进 [BlueZ 0/5],旨在提升代码的安全性和可读性。

  • 在 shared/util 模块中添加了用于 "cleanup" 变量属性的辅助函数。
  • 在主程序中应用该机制,简化了配置解析和 GError 错误处理的代码。
  • 相关文档已更新,建议在 BlueZ 项目中广泛使用 _cleanup_ 及其相关宏。

2. 关键安全漏洞披露与修复

一个高危安全漏洞被公开披露并迅速得到响应。

  • 漏洞详情:
    在 BlueZ 的 sdp.c 文件中,sdp_extract_seqtype() 函数存在符号整数下溢(signed integer underflow)问题。攻击者无需配对即可触发,可能导致堆越界读取(OOB heap read),评分为 8.1 (HIGH)。
  • 修复过程:
    Martin Brodeur 提交了多版补丁来修复此溢出问题,经过 Luiz Augusto von Dentz 等维护者的审查后,最终版本被合并。
  • 状态:
    该漏洞已在近期提交中得到修复。

3. 内存安全与竞态条件修复

多个潜在的内存错误和竞态条件被发现并修复。

  • UAF (Use-After-Free) 修复:
    • Jann Horn 提交补丁,修复了 bt_accept_poll() 函数中对 ->accept_q 的释放后使用(UAF)读取问题。
    • 修复了 GATT 客户端因重入销毁导致的 UAF 问题。
  • 锁竞争修复:
    Luiz Augusto von Dentz 讨论并推动了 v5 版本的补丁,通过延迟连接参数更新来避免 conn->lock 和 hdev->lock 之间的锁顺序反转(inversion),从而解决死锁风险。

三、新功能与协议支持

1. 短连接间隔 (SCI) 支持

Luiz Augusto von Dentz 推动了对短连接间隔(Short Connection Interval, SCI)功能的支持。

  • 内核层:
    为 HCI 层添加了初步支持,并在 MGMT 接口中增加了对应的设置位(bit 25)。
  • 监控层:
    在 monitor 模块中添加了对 SCI 特性的解码支持,以便于调试和分析。

2. RAS (Radio Access Service) 支持

Prathibha Madugonde 主导了对 RAS 数据包格式和通知的支持。

  • 在 src/shared 模块中添加了 RAS 数据包格式和通知支持。
  • 为 ranging 配置文件添加了对 cs_mode_one_data 成员的读取功能。
  • 为 test-rap 单元测试添加了针对 CS 反射器的 PTS 测试。

3. HIDS 1.1 UUID 解码支持

Luiz Augusto von Dentz 为 shared/util 和 monitor 模块添加了对 HIDS 1.1 UUIDs 及其标志和属性的解码支持,增强了对人机接口设备的兼容性。

四、驱动与硬件支持更新

1. 新设备 ID 支持

  • MediaTek MT7902:
    Sean Wang 提交补丁,为 btusb 驱动添加了新的 USB VID/PID (0x0489/0xe156),以支持该芯片组。此补丁已获得 Kirill Shubin 的确认。
  • Intel SAR Rev2:
    Kiran K 提交补丁,为 btintel 驱动添加对蓝牙 SAR 修订版2的支持,目前正由 Intel 团队评估。

2. 驱动 Bug 修复

  • Realtek RTL8761B/BU:
    Alexej Sidorenko 提交补丁,修复了该芯片 LE 扩展扫描功能失效的问题。
  • BCM4377:
    Uwe Kleine-König 使用命名初始化器改进了 hci_bcm4377 驱动中 PCI 设备 ID 数组的可读性。

五、社区讨论与问题追踪

1. 用户问题报告

  • 无线手柄连接失败:
    用户报告了“Wireless gamepad stopped working through Bluetooth”的问题(Bug 221449),并在一周内多次更新日志信息,但尚未有明确的解决方案。
  • 固件加载失败:
    Zenm Chen 报告了 Realtek 蓝牙设备(rtl_bt/rtl8761a_config.bin)固件加载失败的问题。Max Chou(Realtek)已介入提供技术支持。
  • MT7925 固件超时:
    报告了 MediaTek MT7925 设备在加载固件时出现超时(-110)的问题(Bug 220237)。
  • AX200 启动错误:
    报告了 AX200 无线网卡在更新固件后启动出现 -19 错误。

2. RFC 补丁讨论

  • Dan Klishch 提出了一项 RFC 补丁,旨在修复在 HCI_AUTO_OFF 宽限期内设置控制器公共地址的问题,引发了社区的技术讨论。

3. 自动化测试与构建

  • kernel test robot
     多次报告 bluetooth-next 主分支的构建成功,表明主线开发稳定。
  • bluez.test.bot
     对大量补丁进行了自动化测试验证,确保了代码质量。
  • syzbot 发布了 2026 年 5 月的月度崩溃报告,并报告了 l2cap_send_conn_req 中的内核警告和 skb_pull 中的 slab-use-after-free 问题。

欢迎关注:

欢迎添加微信号入群交流:

如果有更多疑问或需要帮助,可点击下方卡片,让「东东的小站AI助手」为您实时答疑:支持24小时在线 ⬇️

更多请点击左下角 阅读原文!

最新文章

随机文章