Hi - in the past, before I used Resin, I wrote some Bluetooth Low Energy Peripheral code for the Raspberry Pi using a library from Github called bluezero which is basically a wrapper around the BlueZ dbus stuff.
It worked well and I’d like to re-use it in my Resin container but I am having some trouble getting it running.
In case its important, I am also using dbus to communicate with NetworkManager, so I have the following in my dockerfile:
In order for the library to work, a peripheral application needs to be registered on the d-bus using the bus name of
ukBaz.bluezero. (From what I understand, this is required by any application wishing to create a peripheral using BLE).
The library provides
ukBaz.bluezero.conf to do this and it needs to be copied to
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- --> <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> <busconfig> <!-- ../system.conf have denied everything, so we just punch some holes --> <policy context="default"> <allow own="ukBaz.bluezero"/> <allow send_destination="ukBaz.bluezero" send_interface="org.freedesktop.DBus.Introspectable"/> <allow send_type="method_call" log="true"/> </policy> </busconfig>
I tried this in the container and when running I get the following error:
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.AccessDenied: Connection ":1.17" is not allowed to own the service "ukBaz.bluezero" due to security policies in the configuration file
Does anyone know how I make this work?