1 OIC GATT Transport Service for Linux
2 ====================================
4 This is an IoTivity BLE adapter implementation of the OIC GATT
5 Transport specification for Linux. It relies on the GATT and LE
6 advertisement functionality found in BlueZ 5.31 or better. As of
7 BlueZ 5.31, the LE advertisement APIs are still considered
8 experimental, meaning specific steps must be taken to enable them for
9 that version of BlueZ, as described below.
11 LE advertisement support requires Linux kernel 4.1 better. If a LE
12 peripheral won't be started, Linux kernel 3.19 is sufficient for LE
13 central-only use cases.
15 Enable LE Advertisement Support in BlueZ 5.31
16 ---------------------------------------------
17 1. Backport the advertising patch that was created after BlueZ 5.31
18 was released. If you've cloned the BlueZ git repository this can be
19 achieved by cherry picking the patch as follows:
21 git clone git://git.kernel.org/pub/scm/bluetooth/bluez.git
24 git cherry-pick c73c1002331b2c0de0eaf555b5f1d05149f9a3b0
26 Otherwise apply to BlueZ 5.31 the patch file found in the IoTivity
27 `extlibs/bluez' directory:
29 0001-core-advertising-Fix-using-wrong-instance-id.patch
31 2. Enable experimental APIs when building BlueZ 5.31, e.g.:
33 ./configure --enable-experimental ...
35 3. Enable experimental APIs at run-time by starting bluetoothd with
36 the "--experimental" command line flag. If you've installed BlueZ
37 on a platform with Systemd support, this can be done by appending
38 "--experimental" to the [Service] ExecStart option in the
39 bluetooth.service unit file (e.g.
40 /lib/systemd/system/bluetooth.service). If you're going to build
41 and install BlueZ from source often, you may want to patch the
42 `bluetooth.service.in' in your bluez source directory instead so
43 that you won't have to modify the unit file after installation:
45 diff --git a/src/bluetooth.service.in b/src/bluetooth.service.in
46 index 35e9457..368df4c 100644
47 --- a/src/bluetooth.service.in
48 +++ b/src/bluetooth.service.in
49 @@ -5,7 +5,7 @@ Documentation=man:bluetoothd(8)
53 -ExecStart=@libexecdir@/bluetoothd
54 +ExecStart=@libexecdir@/bluetoothd --experimental