Hi, On Wednesday 02 of March 2016 16:18:22 Luiz Augusto von Dentz wrote: > Hi Olivier, > > On Wed, Mar 2, 2016 at 3:20 PM, Olivier Martin > > <olivier.martin.fr@xxxxxxxxx> wrote: > > Hello all, > > I am looking at writing a new GATT (server) service for my Linux-based > > bluetooth device using Bluez. > > My device use Debian stable (Jessie) that uses Bluez v5.23. > > Ideally, I would like to build my GATT service out of the Bluez tree. > > As far as I understand I have two solutions: > > > > Solution A) Stay with Bluez v5.23 and write a plugin. I managed to > > build `plugins/gatt-example.c` out of the tree. But when `bluetoothd` > > loads the plugin, it fails to find the symbol `attrib_db_update`. I am > > wondering if it is due to the fact `shared/gatt-server` has not been > > added to v5.23 > > (https://git.kernel.org/cgit/bluetooth/bluez.git/tree/src/shared?h=5.23). > > And in this case it would not be possible to have a GATT service out of > > the tree for this Bluez version. > > It depends on the level of control you want to have, if you need extra > permissions and low level of access than perhaps building as a plugin > is probably a good idea. BlueZ daemon works kind similar to the > kernel, the internal API may change so building out of the tree will > never be very stable, and you still have to comply to GPL. > > > Solution B) Moving to the latest Bluez version and use the GATT server > > D-BUS API. But it means I need to remove and replace Bluez on my > > stable Debian. I understand this solution is the long term solution > > but it might take a while before the Linux distributions used this > > version of Bluez. > > If more people like you starting using this features it might become > stable faster, thus we encourage people to go with this solution. Btw, > you can disable the BlueZ from your distro and just run BlueZ from > source without overwriting anything from your distro. > > > So, is it possible to have an out of the tree plugin with v5.23? I saw > > `sixaxis` plugin. But this plugin does not manipulate GATT services > > and characteristics. > > Possible, yes, but it is not recommended, but you can try to create a > external plugin that is build within the source tree so that we keep > it working as we change the internal APIs. External plugins (like sixaxis) are able to use only btd_* (plus few exceptions) functions. If you want to use other symbols you would have to go with builtin plugin. -- BR Szymon Janc -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html