Cannot find Bluetooth device - Ubuntu Core on Raspberry PI 3 B+
I don't see any bluetooth devices when I install the bluez snap and use either hcitool which results in nothing:
$ sudo hcitool dev
Devices:
$
or bluetoothctl:
$ sudo bluetoothctl
Agent registered
[bluetooth]# list
[bluetooth]# show
No default controller available
[bluetooth]#
When I use hciconfig, I get Permission denied error:
$ sudo hciconfig Can't open HCI socket.: Permission denied $
I see the following messages in dmesg which indicates that the AppArmor is denying the attempts:
21346.997174] audit: type=1400 audit(1562448858.001:1396): apparmor="DENIED" operation="create" profile="snap.bluez.hcitool" pid=6030 comm="hcitool" family="bluetooth" sock_type="raw" protocol=1 requested_mask="create" denied_mask="create
What do I have to do to be able to enable the bluetooth device, find the device Id, and also be able to scan for new devices.
I manually connected the snap:plug for bluez and bluetooth-control and now have the following connections:
$ snap connections
Interface Plug Slot Notes
bluetooth-control bledetect101:bluetooth-control :bluetooth-control manual
bluetooth-control bluez:bluetooth-control :bluetooth-control manual
bluetooth-control hidra-ble-gateway:bluetooth-control :bluetooth-control manual
bluez bluez:client bluez:service -
network bledetect101:network :network -
network hidra-ble-gateway:network :network -
uhid bluez:uhid :uhid -
$
After this running bluez.hciconfig results in showing the bluetooth device:
$ sudo hciconfig dev
hci0: Type: Primary Bus: SDIO
BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
DOWN
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:0 acl:0 sco:0 commands:0 errors:0
However, this is shown as down and attempts to bring it up or reset it fails:
$ sudo hciconfig hci0 up
Can't init device hci0: Input/output error (5)
$ sudo hciconfig hci0 reset
Can't init device hci0: Input/output error (5)
$
Any ideas? As mentioned, this is on RPI3 B+ running Ubuntu Core 18.04. output of uname -a:
Linux localhost 4.15.0-1040-raspi2 #43-Ubuntu SMP PREEMPT Tue Jun 25 10:45:04 UTC 2019 armv7l armv7l armv7l GNU/Linux
adding dmesg output:
$ dmesg | grep -i 'bluetooth'
[ 10.291904] Bluetooth: Core ver 2.21
[ 10.291982] Bluetooth: HCI device and connection manager initialized
[ 10.292000] Bluetooth: HCI socket layer initialized
[ 10.292013] Bluetooth: L2CAP socket layer initialized
[ 10.292036] Bluetooth: SCO socket layer initialized
[ 10.305326] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
[ 14.254238] audit: type=1400 audit(1562690889.887:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="snap.bluez.bluetoothctl" pid=949 comm="apparmor_parser"
[ 17.377691] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 17.377713] Bluetooth: BNEP filters: protocol multicast
[ 17.377736] Bluetooth: BNEP socket layer initialized
[ 834.534698] audit: type=1400 audit(1562691819.528:25): apparmor="DENIED" operation="create" profile="snap.bluez.hciconfig" pid=1639 comm="hciconfig" family="bluetooth" sock_type="raw" protocol=1 requested_mask="create" denied_mask="create"
[ 839.183488] audit: type=1400 audit(1562691824.176:26): apparmor="DENIED" operation="create" profile="snap.bluez.hciconfig" pid=1660 comm="hciconfig" family="bluetooth" sock_type="raw" protocol=1 requested_mask="create" denied_mask="create"
[ 845.163961] audit: type=1400 audit(1562691830.156:27): apparmor="DENIED" operation="create" profile="snap.bluez.hciconfig" pid=1681 comm="hciconfig" family="bluetooth" sock_type="raw" protocol=1 requested_mask="create" denied_mask="create"
[ 852.587936] audit: type=1400 audit(1562691837.580:28): apparmor="DENIED" operation="create" profile="snap.bluez.hciconfig" pid=1702 comm="hciconfig" family="bluetooth" sock_type="raw" protocol=1 requested_mask="create" denied_mask="create"
[ 1115.767865] audit: type=1400 audit(1562692100.757:48): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="snap.bluez.bluetoothctl" pid=2506 comm="apparmor_parser"
[ 1219.232771] audit: type=1400 audit(1562692204.225:67): apparmor="DENIED" operation="create" profile="snap.bledetect101.bledetect-cli" pid=2867 comm="bledetect" family="bluetooth" sock_type="raw" protocol=1 requested_mask="create" denied_mask="create"
[ 1219.232819] audit: type=1400 audit(1562692204.225:68): apparmor="DENIED" operation="create" profile="snap.bledetect101.bledetect-cli" pid=2867 comm="bledetect" family="bluetooth" sock_type="raw" protocol=1 requested_mask="create" denied_mask="create"
Solution 1:
There is a bug and it is using wrong firmware dir. As temporary fix you can use this command:
sudo ln -s /lib/firmware /etc/firmware
To check it you can use
sudo hciattach /dev/ttyAMA0 bcm43xx 921600 -