Raspberry Pi 3 Bluetooth and dbus issue

I’m currently trying to port our daemon to the strict snap confinement and I’m facing some issues while testing it on the Raspberry Pi 3 ubuntu-core image.

The daemon provides a service for client applications (phone or desktop) to set up the wireless network connection of the device using a Bluetooth LE connection. For more information regarding the daemon and our little open source tool please visit https://berrylan.app/.

The daemon is designed to communicate with bluez and network-manager using the DBus interface.

The snap works perfect in a classic environment in classic mode, and now I tried to bring it to strict confinement on a native ubuntu core system. Following problems I’m currently facing:

  1. I’m not able to use the bluetooth hardware of the Raspberry Pi 3, the bluez snap does not find any hardware interface. Also hciconfig does not recognize the hardware, but the kernel does. I checked the interfaces and there is the pi3:bt-serial interface (I assume this will allow hciattach to start the firmware on the serial interface). How can I make the hardware device available to the bluez snap?

  2. Our daemon requires a DBus connection to the network-manager. I connected the network-manager interface with our daemon interface, but the daemon is not able to connect to network-manager.

network-manager:service network-manager:nmcli,nymea-networkmanager:network-manager

  1. The interfaces names are very confusing. I tried to connect the interfaces in many combination, and for me it’s not clear why I’m able to connect the network-manager:service slot with the network-manager plug. Or wpa-supplicant:service --> network-manager:wpa. What is the naming convention here and when did it change? How can I recognize which plug can be connected to which slot?

The source code of our daemon and the snapcraft scripts can be found here: https://github.com/guh/nymea-networkmanager/tree/access-point


1 Like

I am in a similar situation i.e. allow a confined snap to talk to the bluez on the host OS. Is that possible, could anyone please share examples for that ?

bluez is not enough on the Raspberry Pi … you need to install the pi-bluetooth snap alongside to actually get a proper setup for your bluez stack …