Search code examples
linuxubuntubluetoothbluetooth-lowenergybluez

How to Launch BlueZ 4.101 GATT Plugin On Ubuntu


I do not want to use BlueZ 5 and it's new DBus interface for GATT Server. I want to use BlueZ 4.101 and it's gatt-example plugin for Bluetoothd. On a fresh install of Ubuntu 14.04, I downloaded a clean tarball of BlueZ 4.101 and configured it for GATT enablement, and launched it with the following commands:

   sudo ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --disable-systemd --enable-experimental --enable-maintainer-moden --enable-gatt --enable-test
   sudo make all
   sudo make install
   sudo hciconfig hci0 up
   sudo hcitool -i hci0 cmd 0x08 0x0008 48 45 4c 4c 4f 57 4f 52 4c 44
   sudo hciconfig hci0 leadv 0
   sudo src/bluetoothd -d -n

However, when it runs it gets to the part where it should load the plugins and the following errors "GATT is disabled" are printed:

bluetoothd[30917]: src/plugin.c:plugin_init() Loading plugins /usr/lib/bluetooth/plugins
bluetoothd[30917]: src/plugin.c:add_plugin() Loading external_dummy plugin
bluetoothd[30917]: plugins/service.c:register_interface() path /org/bluez/30917/any
bluetoothd[30917]: plugins/service.c:register_interface() Registered interface org.bluez.Service on path /org/bluez/30917/any
bluetoothd[30917]: DIS cannot start: GATT is disabled
bluetoothd[30917]: Failed to init deviceinfo plugin
bluetoothd[30917]: proximity/main.c:proximity_init() GATT is disabled
bluetoothd[30917]: Failed to init proximity plugin
bluetoothd[30917]: time/main.c:time_init() GATT is disabled
bluetoothd[30917]: Failed to init time plugin
bluetoothd[30917]: alert/main.c:alert_init() GATT is disabled
bluetoothd[30917]: Failed to init alert plugin
bluetoothd[30917]: thermometer/main.c:thermometer_init() GATT is disabled
bluetoothd[30917]: Failed to init thermometer plugin
bluetoothd[30917]: network/manager.c:read_config() Config options: Security=true
bluetoothd[30917]: Parsing /etc/bluetooth/input.conf failed: No such file or directory
bluetoothd[30917]: Parsing /etc/bluetooth/audio.conf failed: No such file or directory
bluetoothd[30917]: plugins/external-dummy.c:dummy_init() 
bluetoothd[30917]: plugins/hciops.c:hciops_init() 
bluetoothd[30917]: plugins/gatt-example.c:gatt_example_init() GATT is disabled
bluetoothd[30917]: Failed to init gatt_example plugin
bluetoothd[30917]: Bluetooth Management interface initialized

How do I successfully run these Plugins with BlueZ 4.101?


Solution

  • Figured it out...

    sudo vim /etc/bluetooth/main.conf
    

    And change the lines:

    # Enable the GATT functionality. Default is false
    EnableGatt = true
    
    # Enable the GATT Attribute Server. Default is false, because it is only
    # useful for testing. Attribute server is not enabled over LE if EnableLE
    # is false.
    AttributeServer = true