You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux内核中“取消”命令的含义及操作方法(蓝牙适配场景)

解决UGREEN CM749(ID 33fa:0010)蓝牙适配器无法被KDE/Plasma识别的问题

问题背景

  • 设备环境:NixOS系统,UGREEN CM749蓝牙5.4 USB适配器
  • 异常现象:lsusb可识别适配器为ID 33fa:0010 USB2.0-BT,但KDE/Plasma的蓝牙守护进程无法检测到设备
  • 排查结论:参考相关Ubuntu bug报告,需修改内核源码中hci_sync.c文件的hci_init2[]和hci_init3[]数组,移除hci_read_local_ext_features命令

具体操作步骤

  1. 定位目标文件
    在解压后的6.15.7内核源码中,找到路径为net/bluetooth/hci_sync.c的文件

  2. 修改初始化命令数组
    打开文件后,找到hci_init2[]和hci_init3[]两个初始化命令数组,将其中的hci_read_local_ext_features相关条目删除或注释:

    • 原数组示例结构:
      static const struct hci_init_cmd hci_init2[] = {
          { hci_read_local_ext_features, 0 },
          { hci_read_bd_addr, 0 },
          // 其他命令条目
          { NULL, 0 }
      };
      
    • 修改后结构:
      static const struct hci_init_cmd hci_init2[] = {
          // { hci_read_local_ext_features, 0 },  // 注释或直接删除该行
          { hci_read_bd_addr, 0 },
          // 其他命令条目
          { NULL, 0 }
      };
      

    对hci_init3[]数组执行完全相同的操作,移除其中的hci_read_local_ext_features条目

  3. NixOS环境下重新编译内核

    • 修改configuration.nix配置,指定使用自定义编译的内核,或通过nix-build构建自定义内核包
    • 确保编译时包含蓝牙相关模块,编译完成后替换系统内核并重启系统

关键说明

这里的“取消命令”指的是从蓝牙控制器的初始化命令序列中移除hci_read_local_ext_features指令——这款UGREEN CM749适配器对该读取扩展特性的指令响应存在异常,导致初始化流程失败,进而无法被蓝牙守护进程识别。

内容的提问来源于stack exchange,提问作者Seth Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 15:15:59