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

如何在同一台Linux工作站上指定使用USB蓝牙适配器而非自带PCIe无线网卡的蓝牙模块

如何在同一台Linux工作站上指定使用USB蓝牙适配器而非自带PCIe无线网卡的蓝牙模块

嘿,这个问题我碰到过好多次了,给你一步步捋清楚怎么解决!先从你的lsusb输出里,我已经定位到两个蓝牙设备:

  • USB蓝牙适配器:Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode),ID是0a12:0001
  • 自带PCIe蓝牙模块:Qualcomm Atheros Communications,ID是0cf3:e005

接下来分步骤操作,确保你只用USB那个:

第一步:确认两个蓝牙控制器的对应关系

先运行这个命令,查看系统里的蓝牙控制器列表:

bluetoothctl list

输出会类似这样:

Controller AA:BB:CC:DD:EE:FF YourPC-PCIe-Bluetooth [default]
Controller 11:22:33:44:55:66 YourPC-USB-Bluetooth

如果分不清哪个对应哪个,再结合lspci确认PCIe设备:

lspci | grep Bluetooth

输出会显示内置PCIe蓝牙的信息,这样就能和bluetoothctl里的控制器对应上了。

第二步:临时切换到USB蓝牙(重启后失效)

如果只是临时想用USB的,先把PCIe的蓝牙禁用就行:

  1. 运行rfkill list,找到两个蓝牙设备的编号:
rfkill list

输出示例:

2: hci0: Bluetooth
       Soft blocked: no
       Hard blocked: no
3: hci1: Bluetooth
       Soft blocked: no
       Hard blocked: no
  1. 找到对应PCIe模块的编号(比如上面的2),运行命令禁用:
rfkill block 2

现在再用bluetoothctl list看,就只剩USB的控制器了,配对设备时就会自动用它。

第三步:永久禁用PCIe蓝牙(重启后保持生效)

如果想一劳永逸,推荐下面两种方法:

方法1:用udev规则自动禁用

创建一个udev规则文件,让系统启动时自动禁用PCIe蓝牙:

sudo nano /etc/udev/rules.d/99-disable-pcie-bluetooth.rules

把下面内容粘贴进去(注意替换成你PCIe蓝牙的idVendor和idProduct,就是lsusb里的0cf3:e005):

SUBSYSTEM=="bluetooth", ATTRS{idVendor}=="0cf3", ATTRS{idProduct}=="e005", RUN+="/usr/sbin/rfkill block bluetooth"

保存退出后,重启系统,PCIe蓝牙就会被自动禁用了。

方法2:BIOS里直接禁用(最彻底)

如果你的电脑BIOS支持的话,开机时按对应按键(一般是F2、Del、Esc)进入BIOS设置,找到“无线网卡”或“蓝牙”相关选项,把内置的PCIe蓝牙模块禁用掉。这种方法不会占用任何系统资源,是最彻底的解决方案。

第四步:验证是否生效

重启后,运行bluetoothctl list和rfkill list,确认只有USB蓝牙处于启用状态,然后尝试配对一个蓝牙设备(比如耳机或鼠标),测试连接稳定性——这下应该就用的是USB适配器了!

备注:内容来源于stack exchange,提问作者Euphoria Celestial

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 11:04:30