Bluetooth no default controller available

I have been trying to setup bluetooth on my PC running a asus motherboard with an intel i7 chip. When i check bluetoothctl show i get No default controller available.

Upon further investigation journalctl returns the following
been trying to setup bluetooth for a while with no luck this is what i get when i check journalctl

> journalctl -xe | grep bluetooth
Nov 12 03:19:52 nexus .gnome-control-[2936]: Failed to register object: An object is already exported for the interface org.bluez.Agent1 at /org/gnome/bluetooth/settings
░░ Subject: A start job for unit bluetooth.service has begun execution
░░ A start job for unit bluetooth.service has begun execution.
Nov 12 03:19:57 nexus (uetoothd)[3131]: bluetooth.service: ConfigurationDirectory 'bluetooth' already exists but the mode is different. (File system: 755 ConfigurationDirectoryMode: 555)
Nov 12 03:19:57 nexus bluetoothd[3131]: Bluetooth daemon 5.78
░░ Subject: A start job for unit bluetooth.service has finished successfully
░░ A start job for unit bluetooth.service has finished successfully.
Nov 12 03:19:57 nexus bluetoothd[3131]: Starting SDP server
Nov 12 03:19:57 nexus bluetoothd[3131]: src/plugin.c:init_plugin() System does not support bap plugin
Nov 12 03:19:57 nexus bluetoothd[3131]: src/plugin.c:init_plugin() System does not support bass plugin
Nov 12 03:19:57 nexus bluetoothd[3131]: src/plugin.c:init_plugin() System does not support mcp plugin
Nov 12 03:19:57 nexus bluetoothd[3131]: src/plugin.c:init_plugin() System does not support vcp plugin
Nov 12 03:19:57 nexus bluetoothd[3131]: profiles/audio/micp.c:micp_init() D-Bus experimental not enabled
Nov 12 03:19:57 nexus bluetoothd[3131]: src/plugin.c:init_plugin() System does not support micp plugin
Nov 12 03:19:57 nexus bluetoothd[3131]: src/plugin.c:init_plugin() System does not support ccp plugin
Nov 12 03:19:57 nexus bluetoothd[3131]: src/plugin.c:init_plugin() System does not support csip plugin
Nov 12 03:19:57 nexus bluetoothd[3131]: src/plugin.c:init_plugin() System does not support asha plugin
Nov 12 03:19:57 nexus bluetoothd[3131]: Bluetooth management interface 1.22 initializ

For reference this is how i am setting it up in my configuration.nix

  hardware.enableAllFirmware = true;
  hardware.bluetooth = {
    enable = true;
    powerOnBoot = true;
    package = pkgs.bluez.overrideAttrs (finalAttrs: previousAttrs: rec {
      version = "5.78";

      src = pkgs.fetchurl {
        url = "mirror://kernel/linux/bluetooth/bluez-${version}.tar.xz";
        sha256 = "sha256-gw/tGRXF03W43g9eb0X83qDcxf9f+z0x227Q8A1zxeM=";
      };
      
      patches = [];

      buildInputs = previousAttrs.buildInputs ++ [
        pkgs.python3Packages.pygments
      ];
    });
  };

  services.blueman.enable = true;
systemd.services.bluetooth.serviceConfig.ConfigurationDirectoryMode = "755";
  services.dbus.enable = true;

  hardware.pulseaudio.enable = false;
  security.rtkit.enable = true;
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    audio.enable = true;
  };

i checked lsmod and dmesg and the device seems to be recognized. but bluetoothctl is not seeing it

curious why you have to set this but that seems to be what the error is complaining about?

Hi! Have you since figured this out? I’m also facing the same issue.

Also facing the same issue here, had this issue with 24.05, upgraded yesterday to 24.11, still the same issue. I stopped using NixOS as my daily OS because of this, not having bluetooth means no headset and no voice in meetings.

{pkgs, ...}: {
  hardware.enableAllFirmware = true;
  hardware.firmware = [pkgs.linux-firmware];
  hardware.bluetooth = {
    enable = true;
    disabledPlugins = [
      "ccp"
    ];
    powerOnBoot = true;
    package = pkgs.bluez5-experimental;
    settings = {
      Policy.AutoEnable = "true";
      General = {
        # Enable = "Source,Sink,Media,Socket"; # Does not work with bluez5 (Unknown key Enable for group Genera.)
        Experimental = true;
      };
    };
  };
  systemd.services.bluetooth.serviceConfig.ConfigurationDirectoryMode = "755";
  services.blueman.enable = true;
}
journalctl -a | grep bluetooth
Nov 22 16:57:56 nixos (uetoothd)[4379]: bluetooth.service: ConfigurationDirectory 'bluetooth' already exists but the mode is different. (File system: 755 ConfigurationDirectoryMode: 555)
Nov 22 16:57:56 nixos bluetoothd[4379]: Bluetooth daemon 5.75
Nov 22 16:57:56 nixos bluetoothd[4379]: Starting SDP server
Nov 22 16:57:56 nixos bluetoothd[4379]: Excluding (cli) ccp
Nov 22 16:57:56 nixos bluetoothd[4379]: Bluetooth management interface 1.22 initialized
Nov 22 23:34:05 nixos bluetoothd[4379]: Terminating
Nov 22 23:34:05 nixos bluetoothd[4379]: Stopping SDP server
Nov 22 23:34:05 nixos bluetoothd[4379]: Exit
Nov 22 23:34:05 nixos systemd[1]: bluetooth.service: Deactivated successfully.
Nov 23 16:18:22 nixos (uetoothd)[4385]: bluetooth.service: ConfigurationDirectory 'bluetooth' already exists but the mode is different. (File system: 755 ConfigurationDirectoryMode: 555)
Nov 23 16:18:22 nixos bluetoothd[4385]: Bluetooth daemon 5.75
Nov 23 16:18:22 nixos bluetoothd[4385]: Starting SDP server
Nov 23 16:18:22 nixos bluetoothd[4385]: Excluding (cli) ccp
Nov 23 16:18:22 nixos bluetoothd[4385]: Bluetooth management interface 1.22 initialized
Nov 23 22:37:23 nixos bluetoothd[4385]: Terminating
Nov 23 22:37:23 nixos bluetoothd[4385]: Stopping SDP server
Nov 23 22:37:23 nixos bluetoothd[4385]: Exit

image
image


I installed Ubuntu on a partition and bluetooth does work with my Sony headset under Ubuntu.

If your dmesg output includes something like this:

[   37.404405] Bluetooth: hci0: command 0xfc05 tx timeout

You might be able to get Bluetooth working by reloading the module:

hciconfig hci0 down
rmmod btusb
modprobe btusb
hciconfig hci0 up

This is obviously an unsatisfying solution and if I get a better one I’ll post it.

any update on this?
i am facing a similar issue