Bluetooth setup on raspberry pi 3b+


I am using the server arm version on the above, Bluetooth is up and running but there is no default controller available when I type scan on, Bluetooth is also not listed when using rfkill

What if anything am I missing, any help please


Edit, I forgot to add that Bluetooth works ok on the ubuntu server for Pi with no problems.

● bluetooth.service - Bluetooth service
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: enabled)
    Drop-In: /usr/lib/systemd/system/service.d
     Active: active (running) since Mon 2023-07-10 13:09:23 BST; 12min ago
       Docs: man:bluetoothd(8)
   Main PID: 1192 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 902)
     Memory: 2.2M
        CPU: 221ms
     CGroup: /system.slice/bluetooth.service
             └─1192 /usr/libexec/Bluetooth/bluetoothd

Jul 10 13:09:22 localhost.localdomain (uetoothd)[1192]: ConfigurationDirectory 'bluetooth' already exists but the mode is different. (File system: 755 ConfigurationDirectoryMode: 555)
Jul 10 13:09:23 localhost.localdomain bluetoothd[1192]: Bluetooth daemon 5.68
Jul 10 13:09:23 localhost.localdomain systemd[1]: Started bluetooth.service - Bluetooth service.
Jul 10 13:09:23 localhost.localdomain bluetoothd[1192]: Starting SDP server
Jul 10 13:09:23 localhost.localdomain bluetoothd[1192]: src/plugin.c:plugin_init() System does not support csip plugin
Jul 10 13:09:23 localhost.localdomain bluetoothd[1192]: src/plugin.c:plugin_init() System does not support vcp plugin
Jul 10 13:09:23 localhost.localdomain bluetoothd[1192]: src/plugin.c:plugin_init() System does not support mcp plugin
Jul 10 13:09:23 localhost.localdomain bluetoothd[1192]: src/plugin.c:plugin_init() System does not support bass plugin
Jul 10 13:09:23 localhost.localdomain bluetoothd[1192]: src/plugin.c:plugin_init() System does not support bap plugin
Jul 10 13:09:23 localhost.localdomain bluetoothd[1192]: Bluetooth management interface 1.22 initialized
[webdoc@localhost ~]$ rfkill
 0 wlan phy0   unblocked unblocked
[webdoc@localhost ~]$ bluetoothctl
Agent registered
[bluetooth]# scan on
No default controller available

*** EDIT 11/07/2023 ***
on further investigation I never had bluez-tools installed, on installing I still had a not found on file hciconfig, however on using command locate hciconfig it is found and the following address but I cannot seem to run it from there.


Do I need to move this file to another location?

hciconfigcheck controller is recognized by the system
Restart Bluetooth system

sudo systemctl stop bluetooth
sudo systemctl start bluetooth

Hello, Martin

Thanks for the reply however it did not change anything.



The wireless controller in the Pi is a broadcom. Hopefully the proper driver was installed when you installed fedora. If not then searching may be required.

I have F38 on an RPi 4B and this is what I see. Yours may be different on the 3B version.

# rfkill
 0 bluetooth hci0   unblocked unblocked
 1 wlan      phy0   unblocked unblocked
[root@octopi pi]# lsmod | grep blu
bluetooth             868352  35 btrtl,btqca,btsdio,btintel,hci_uart,btbcm,bnep,rfcomm
rfkill                 32768  8 bluetooth,cfg80211

Hello, Jeff

Thanks for the reply, since my first post I have gotten myself a Pi4 however on using the command rfkill the line you have that shows Bluetooth I am still not seeing, so my original posting seems to apply to the Pi4 also.

What did you do to get Bluetooth working?



Absolutely nothing.
I installed fedora 38 on the sd card using arm-image-installer from the downloaded arm raw image Fedora-Workstation-38-1.6.aarch64.raw.xz file which I downloaded from the fedora download page.

I then inserted the card into my Pi and booted it. What I showed in the post above was the result.

Just for a check, what version of the firmware is on your Pi. For mine (checked from an sdcard running octopi) I see

$ sudo vcgencmd version
Mar 17 2023 10:51:33 
Copyright (c) 2012 Broadcom
version 82f3750a65fadae9a38077e3c2e217ad158c8d54 (clean) (release) (start_x)

Note that fedora does not seem to have the vcgencmd app available. I tried to get it working and have failed so far.

Hello, Martin

Further update I now have a Pi4 and still having the same problem with Bluetooth as the Pi3, I don’t seem to have the file hciconfig as i did a locate hciconfig and got a reply bash command not found, this was also the case after installing bluez-tools.

*** EDIT *** I was using root user while trying the above command

It seems I need this file to get Bluetooth working or is there another way



This brings up the question of how the sd card was created?
I used arm-image-installer after verifying that all partitions that may have previously been on the card and auto-mounted were unmounted. My card reader was recognized as /dev/sde, so to unmount all partitions I used sudo umount /dev/sde?.

Then I ran sudo arm-image-installer --image=Fedora-Workstation-38-1.6.aarch64.raw.xz --media=/dev/sde --target=rpi4 --resizefs. Of course I was in the directory where that image file was located, though one may use the full path to that file as well.

Hello, Jeff

I used Etcher to put F38 arm raw server to my sd card, the card was completely clean before I did this.

I currently have kubuntu on my laptop am I able to put the arm installer onto that, or do I need fedora to use it, and how?



Depending upon the amount of RAM one has it is possible to boot a live fedora image then install the arm-image-writer to that live system. Once done it can be used to write the arm image to the card. With enough RAM it would even be possible to download the 3.8 GB workstation image into the live system before putting it onto the card.

Obviously one would need enough usb ports to have the live image USB attached as well as the card reader and possibly also a device to hold the xz image being written.

I note though that you mentioned the arm server image. I don’t know if the server image supports bluetooth since it is a server and not a desktop environment. I have not tried it.

No, the fedora arm-image-installer would not work on kubuntu which is debian based for package management.

Thanks for that reply, is there any way to find out for sure if F38 arm raw server does support Bluetooth?

Only I find it odd that I’m able to have Bluetooth started and active as per systemctl status Bluetooth, to then find that bluetoothctl and scan on gives me a no controller found.

I am doing some testing

Good to hear, let me know how it goes


Hi, Jeff

I have tried the install of F38 raw workstation and I can confirm that Bluetooth works on my Pi4, however on writing the card with the arm installer line you posted above I get an error

partial read suggest iflag=fullblock

Where in your above line would I add this to stop the error

If F38 server can be made to work like this has, I will be well happy

That is a spurious error that can be ignored. I see it with every time I use the arm-image-installer.

I still have not completed testing with server.

Hello Jeff

How’s the testing going?

I am experiencing problems. Cannot seem to get the server version of fedora 38 to boot on the pi.

I am creating the sd card on a fedora workstation that uses LVM. The server release also uses LVM and there is a conflict with VG names between my workstation and the image. I am working on how to fix that right now since the change messes with the intiramfs image for booting and changing that seems difficult. Even using dracut has presented a problem in that respect. So far I have not suitably been able to change the name of the VG on the running system which is required to avoid the conflict.

My next attempt will be to use a VM with btrfs to write the image. That should avoid the conflict. Working on that right now.

Hello, Jeff

How’s the testing going?

any news on your testing?

Have not been too successful so far. With everything else going on the testing with fedora server is a bit lower priority. Sorry about the delay, but still ongoing – slowly

You do realize, I hope, that one could install workstation on the Pi and have bluetooth work OOTB. Though that does not give one the same environment and adds quite some number of additional packages.

The thought I have is that there is difference in either the drivers or the firmware used (in addition to the bluetooth and bluez packages that are missing from server). Workstation is intended to support almost all possibilities while server is deliberately limited in the options that are provided by default.