download and install latest package (see compile_linux.txt for that)
- check that it's been installed correctly :
$ sudo systemctl status bluetooth
- activate experimental mode for bluetooth service :
$ sudo nano /lib/systemd/system/bluetooth.service
- Add
--experimental
at the end of the following line : ExecStart=/usr/local/libexec/bluetooth/bluetoothd --experimental
- Add
- Start bluetooth service
sudo systemctl start bluetooth
- Check that it's been started with the --experimental option:
$ sudo systemctl status bluetooth
if it isn't, restart the RPi
- run bluetoothctl
$ sudo bluetoothctl
Note : if weird things happen (console not responding to keyboard, etc...) -> run bluetoothd (no error showed)
Now inside bluetoothctl :
[bluetooth]# list
lists the bluetooth interfaces
[bluetooth]# show B8:27:EB:14:7E:35
shows the B8:27:EB:14:7E:35 interface configuration
[bluetooth]# power on
powers the interface if it isn't yet
[bluetooth]# help
displays the help
[bluetooth]# scan on
starts a scan of the surrounding bluetooth devices
[bluetooth]# connect C0:28:8D:45:3D:79
- connects to the C0:28:8D:45:3D:79 device
- it can show a path for every characteristic : the dbus path
Note : dbux is a "distributed communication bus". It allows processes to "talk" to each other : it's a "generic" bus that anyone can send datas to and also receive datas.
Bluez creates a unique path in dbus for every service, characteristics, descriptors...
-> can interact with those objects on the dbus path
To connect to a device with bluetoothctl :
$ bluetoothctl
$ devices
$ scan on
$ pair 34:88:5D:51:5A:95 (34:88:5D:51:5A:95 is my device code,replace it with yours)
$ trust 34:88:5D:51:5A:95
$ connect 34:88:5D:51:5A:95