Bluetoothctl:尽管已解锁,但没有可用的默认控制器

Bluetoothctl:尽管已解锁,但没有可用的默认控制器

我在使用 BlueZ 版本 5.23-1、内核 3.16.0-4 的 Debian Jessie 中连接 Logitech K810 蓝牙键盘时遇到了问题。

键盘在大多数情况下工作正常,但有时根本无法工作,并bluetoothctl给出控制器不可用的错误。

发生这种情况时,hciconfig 仍然可以识别该设备,并且我得到以下输出:

# hciconfig hci0 up 
# hciconfig
hci0:   Type: BR/EDR  Bus: USB
    BD Address: 40:2C:F4:68:02:CA  ACL MTU: 1021:8  SCO MTU: 64:1
    UP RUNNING PSCAN 
    RX bytes:21820 acl:1132 sco:0 events:68 errors:0
    TX bytes:1182 acl:11 sco:0 commands:53 errors:0

但提示中没有显示任何设备bluetoothctl,它给了我以下输出:

[bluetooth]# power on
No default controller available
[bluetooth]# scan on
No default controller available

重新启动或有时暂停/恢复可以修复该问题:bluetoothctl将再次识别控制器和键盘并再次工作。

根据 ,蓝牙始终是硬和软解锁的rfkill

我想相关的输出lspci -v是这样的:

03:00.0 Network controller: Intel Corporation Centrino Wireless-N 1000 [Condor Peak]
        Subsystem: Intel Corporation Centrino Wireless-N 1000 BGN
        Flags: bus master, fast devsel, latency 0, IRQ 43
        Memory at f0400000 (64-bit, non-prefetchable) [size=8K]
        Capabilities: <access denied>
        Kernel driver in use: iwlwifi

我在 Debian Wheezy 中使用相同的硬件时没有遇到这个问题。

蓝牙控制器有时不可用是什么原因?

答案1

几个月来我一直在为同样的问题苦苦挣扎,以上解决方案都不适合我。

经过大量研究后,我在一个对我有用的旧论坛上找到了这个解决方案

https://bbs.archlinux.org/viewtopic.php?id=271459

rmmod btusb
rmmod btintel

modprobe btintel
modprobe btusb

答案2

我相信答案就是简单地bluetoothctl运行sudo

因此,sudo bluetoothctl。然后每个命令都可以正常工作power onagent on等等,没有错误。

已确认在 Raspian Stretch 上工作。

答案3

这是一个长期存在的问题,但它并不会平等地影响所有发行版。我的经验仅限于 Raspberry Pi 的 Debian 衍生品 - Raspberry Pi OS(née Raspbian)。特别是,RPiOS 发行版的“Lite”版本受到影响,但“Full”版本则不然。

问题似乎是默认用户(以及我怀疑的所有用户)不包含在bluetoothRaspOS“Lite”版本中指定的辅助组中,因为它们在“Full”版本中。

A修补因为这很容易:将用户添加到bluetooth组中

$ sudo usermod -G bluetooth -a pi

或者也许正如@Pablo 在下面所建议的那样:

$ sudo adduser $USER bluetooth

一旦完成(并且在rebootIIRC 之后),bluetoothctl该操作就会生效,并且控制器会做出响应。sudo后来就不需要了。

虽然这个补丁很简单,但永久的解决方案会好得多 - 这是非常令人困惑的,而且至少已经有 7-8 年了。我会提交一份错误报告,但根据我使用 Debian 和 Raspbian 的经验,这进一步浪费时间。

答案4

我有启用双启动的 Lenovo Ideapad Gaming 3(Ubuntu 20.04 和 Windows 10)。尝试了以上所有解决方案后。

  • 只需启动进入 Windows。 (蓝牙在 Windows 中也无法工作)
  • 从那里更新蓝牙驱动程序。
  • 重新启动进入 Windows。 (蓝牙现在可以工作)
  • 重新启动回到 Ubuntu。

相关内容