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
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.
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>
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]
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:
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
using sudo bluetoothctl
one of these two was the culprit usually.
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 =)