Linux 系统中多蓝牙控制器的管理与默认控制器切换
在 Linux(基于 BlueZ 的系统)中,如果同时存在多个蓝牙控制器(例如主板内置蓝牙与 USB 蓝牙适配器),系统通常会根据内核枚举顺序自动指定默认控制器。这种自动分配并不总是符合用户期望,例如希望使用信号更稳定、性能更好的 USB 蓝牙适配器,而非内置蓝牙模块。 控制器的显示与默认情况 通过 bluetoothctl list 命令,可以查看当前系统检测到的蓝牙控制器。例如输出如下: Controller XX:XX:XX:XX:XX:XX Hostname #2 [default]Controller YY:YY:YY:YY:YY:YY Hostname 其中 [default] 表示系统当前使用的默认蓝牙控制器。如果有多个控制器,编号自动按检测顺序排列,内置控制器通常会优先编号并被设为默认。 修改 /etc/bluetooth/main.conf 在 /etc/bluetooth/main.conf 配置文件中,有如下可选参数: #ControllerMode = dual#DefaultAdapter = XX:XX:XX:XX:XX:XX 其中 DefaultAdapter 理论上用于指定默认控制器的 MAC 地址。然而,在大多数 Linux 桌面发行版中,这个参数实际上并不会生效。内核与 BlueZ 会根据硬件探测顺序优先指定第一个控制器,而忽略 DefaultAdapter 配置。 手动切换默认控制器 若希望使用指定的控制器,可以通过 bluetoothctl 工具手动切换: select XX:XX:XX:XX:XX:XX …