bluetoothctl没有可用的默认控制器
这里有点接线 我有一个问题是bluetoothctl总是说“没有可用的默认控制器”。我发现有很多人和我有同样的问题。但情况与他们有点不同 我可以看到我的hciconfig-a有如下信息 而hcitool dev似乎也没有问题。 但我不知道为什么我的bluetoothctl总是说“没有可用的默认控制器” 甚至我也多次调低和调高hci0。它总是在同一个问题上 顺便说一句,我的蓝Z是5.39。我在buildroot上做了这个实验。内核is 3.10也有同样的问题。使用:bluetoothctl没有可用的默认控制器,bluetooth,bluez,Bluetooth,Bluez,这里有点接线 我有一个问题是bluetoothctl总是说“没有可用的默认控制器”。我发现有很多人和我有同样的问题。但情况与他们有点不同 我可以看到我的hciconfig-a有如下信息 而hcitool dev似乎也没有问题。 但我不知道为什么我的bluetoothctl总是说“没有可用的默认控制器” 甚至我也多次调低和调高hci0。它总是在同一个问题上 顺便说一句,我的蓝Z是5.39。我在buildroot上做了这个实验。内核is 3.10也有同样的问题。使用: $sudo blueto
$sudo bluetoothctl
然后自动找到控制器。我以前也试过。可能这影响了解决方案。以下是通过修改bluez配置和不使用sudo的运行对我有效的步骤:
- 创建一个“bluetooth”组,该组将在bluez的d-bus配置上被授予
- 使用您喜爱的文本编辑器在/etc/dbus-1/system.d/bluetooth.conf中打开配置文件
例如
- 在/etc/dbus-1/system.d/bluetooth.conf中添加/追加以下行
- 保存您的更改
- 将您的登录用户添加到“蓝牙”组
- 重新启动系统
- 然后尝试在没有sudo的情况下使用“bluetoothctl”
$bluetoothctl
[蓝牙]#显示 - systemctl status bluetooth==检查蓝牙服务守护进程是否已在运行。
检查输出:
已加载:已加载(/lib/systemd/system/bluetooth.service;已启用;供应商预设:已启用) 活动:活动(正在运行) 如果没有,请使用命令启动它:sudo systemctl start bluetooth - 使用sudo bluetoothctl
- 我也有同样的问题。经过长时间的研究发现驱动程序没有安装。检查这个答案,看看你的驱动程序是否安装正确=)这是一个老问题,但可能有助于寻找答案
我大多数时候都遇到过这个问题,我核实的是:
这两种情况中的一种通常是罪魁祸首。如果rfkill开关阻塞了蓝牙,也会发生这种情况(在我的例子中,由于某些无意的原因): 要解除阻止,请将蓝牙设备的ID从上面的列表传递到
unblock
子命令:
$ rfkill unblock 0
然后控制器应返回:
$ bluetoothctl list
Controller .... [default]
可能对某些发行版有效,但在其他发行版中可能会给您带来麻烦。不幸的是,似乎每个发行版都有不同的蓝牙默认配置-这是一个相当糟糕的混乱
以下是我在Debian衍生产品Raspberry Pi OS(née Raspbian)上所做的工作:
作为初步检查,在许多发行版上,您可以检查/etc/group
,以查看是否存在组名bluetooth
:
$ cat /etc/group | grep blue
如果存在,您显然不需要添加组,只需将用户添加到组:
$ sudo usermod -G bluetooth -a <username>
$sudo usermod-G蓝牙-a
在我使用的发行版中,这是使控制器在
bluetoothctl
中响应所需的全部内容,请尝试“btmgmt关机”,然后再尝试“btmgmt开机”,看看会发生什么。另外,如果安装了btmon,请尝试在后台使用“btmon&”运行该命令,并查看运行“bluetoothctl”命令时发生的情况。是否检查了“bluetoothd”是否正在运行。有时分发套接字激活“Bluetooth”守护进程,但有时不基于systemd服务文件。勾选“ps-ef | grep bluetoothd”,如果没有运行,则启动它。bluetoothctl在内部使用“DBUS API”从“bluetooth”中获取这些详细信息“我如何让蓝牙在linux中工作”的问题应该是这样的,这是一个更优雅的解决方案。我敢问哪个发行版需要如此彻底的修改吗?对于使用组权限的解决方案,请参阅下面的帖子之一()完美解决方案!你知道如何使这个配置持久化吗?不知道,不再发生在我身上了。也许可以从util linux
包中查看rfkill unblock@[index]
systemd服务。但是,我没有启用fwiw。
$ sudo usermod -G bluetooth -a <username>