正常解决方案

正常解决方案

我的工作站已经有一个带蓝牙的 wifi 卡,但那个蓝牙非常不稳定,上个月它无法打开(虽然 wifi 还可以)。我以为它坏了,所以我插入了一个 USB 蓝牙适配器,它工作正常。
但最近,wifi 卡上的蓝牙突然又打开了,现在我有两个蓝牙,我不知道哪个是哪个,以及如何连接到 USB 蓝牙,而不是 PCIE 卡

这是输出lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 005: ID 04d9:1603 Holtek Semiconductor, Inc. Keyboard
Bus 001 Device 014: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 008: ID 2b89:6209 ibasso IBASSO-DC-Series
Bus 001 Device 004: ID 0a05:7211 Unknown Manufacturer hub
Bus 001 Device 003: ID 0529:0003 Aladdin Knowledge Systems Sentinel HL
Bus 001 Device 013: ID 0cf3:e005 Qualcomm Atheros Communications
Bus 001 Device 016: ID 262a:187a ibasso IBASSO-DC-Series
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

答案1

正常解决方案

您可以使用rfkill以下方法来禁用特定设备:

  1. 不带参数运行rfkill并确定要阻止的设备的 ID。如果您不确定,只需选择其中一个hci并在必要时重试:
rfkill
ID TYPE      DEVICE      SOFT      HARD
 0 bluetooth hci0   unblocked unblocked
 1 bluetooth hci1   unblocked unblocked
[...]
 2 bluetooth hciX   unblocked unblocked
 3 wlan      phy0   unblocked unblocked
 4 wlan      phy1   unblocked unblocked
[...]
 5 wlan      phyX   unblocked unblocked
  1. 跑步rfkill block <the number 0 or 1 or etc.>
  2. 如果错误,请运行rfkill unblock <that number>并重复步骤 2

sudo通常没有必要。systemd-rfkill.service负责在重启时保存和加载此文件。

最后的解决方案

运行echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0cf3", ATTRS{idProduct}=="e005", ATTR{authorized}="0"' | sudo tee /etc/udev/rules.d/81-disable-internal-bluetooth.rules并重新启动。

这是基于另一个答案以及在您的 中lsusb,“Qualcomm Atheros Communications”是内部设备,“Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)”是您的适配器。Qualcomm 的设备 ID 从 2 更改为 13(可能卸载并加载了几次),而适配器的 ID 保持不变,这解释了为什么rfkill无法保存。

相关内容