bluetoothctl No default controller available

2020-08-09 09:42发布

问题:

It's a bit wired here.

I have a problem is bluetoothctl always said "No default controller available". I found there are many people had same problem with me. But the situation is a bit different from them.

I can see my hciconfig -a have information like below

And hcitool dev seems no problem as well.

But I have no idea why my bluetoothctl always said "No default controller available"

Even I turn down and turn up hci0 several times. It always in the same problem.

BTW, my BlueZ is 5.39. And I tried this experiment on buildroot. Kernel is 3.10

回答1:

Had the same problem. Use: $ sudo bluetoothctl

Then the controller was found automatically. I also tried https://www.raspberrypi.org/forums/viewtopic.php?t=207025 before. Maybe this effected the solution.



回答2:

Here are the steps that worked for me by modifying the bluez config and the run without sudo:

  • Create a "bluetooth" group which will be granted with <allow send_destination="org.bluez"/> on bluez's d-bus config

$ sudo groupadd bluetooth

  • Open the config in /etc/dbus-1/system.d/bluetooth.conf with your favorite text editor

    e.g.

$ sudo vi /etc/dbus-1/system.d/bluetooth.conf

  • Add/append the following lines below in /etc/dbus-1/system.d/bluetooth.conf


    <policy group="bluetooth">
    <allow send_destination="org.bluez"/>
    </policy>

  • Save your changes.

  • Add your login user to "bluetooth" group

$ sudo usermod -a -G bluetooth <loginuser>

  • Reboot the system.

  • Then try to use "bluetoothctl" without sudo

    $ bluetoothctl
    [bluetooth]# show



回答3:

Also happens if rfkill switch is blocking Bluetooth (for some inadvertent reason, in my case):

$ rfkill list all

0: tpacpi_bluetooth_sw: Bluetooth
    Soft blocked: yes
    Hard blocked: no

To unblock, pass the ID for your Bluetooth device from the list above to the unblock subcommand:

$ rfkill unblock 0

Then controller should be back:

$ bluetoothctl list
Controller .... [default]


回答4:

Its an old thread, but might help someone looking for answers.

I have faced this problem most of the times, and the things I verify are:

  1. systemctl status bluetooth == this checks if the bluetooth service daemon is already running or not. Check for output:
    Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled) Active: active (running) If not, start it using the command: sudo systemctl start bluetooth

  2. using sudo bluetoothctl

one of these two was the culprit usually.



回答5:

I had the same issue. After a long research found out that the driver was not installed. Check that answer https://unix.stackexchange.com/questions/545019/bluetooth-doesnt-work-in-debian-10 and see if your drivers are installed correctly =)