Bluetooth subsystem
= Building =
Build samples
$ make -C samples/bluetooth/<app>
= Bluetooth Sample application =
Host Bluetooth controller is connected to the second qemu serial line
through a UNIX socket (qemu option -serial unix:/tmp/bt-server-bredr).
This option is already added to qemu through QEMU_EXTRA_FLAGS in Makefile.
On the host side BlueZ allows to "connect" Bluetooth controller through
a so-called user channel. Use the btproxy tool for that:
$ sudo tools/btproxy -u
Listening on /tmp/bt-server-bredr
Note that before calling btproxy make sure that Bluetooth controller is down.
Now running qemu result connecting second serial line to 'bt-server-bredr'
UNIX socket. When Bluetooth (CONFIG_BLUETOOTH) and Bluetooth HCI UART driver
(CONFIG_BLUETOOTH_H4) are enabled, Bluetooth driver registers to the system.
From now on Bluetooth might be used by the application. To run application in
the qemu run:
$ make qemu
== Bluetooth IPSP application ==
To test IPSP please take a look at samples/net/README, in addition to running
echo-client it is necessary to enable 6LowPAN module in Linux with the
following commands:
$ modprobe bluetooth_6lowpan
$ echo 1 > /sys/kernel/debug/bluetooth/6lowpan_enable
Then to connect:
echo "connect <bdaddr> <type>" > /sys/kernel/debug/bluetooth/6lowpan_control
Once connected a dedicated interface will be created, usually bt0, which can
then be used as following:
$ echo-client -i bt0 <ip>
= Bluetooth sanity check =
There is smoke test application in nanokernel and microkernel test
directories which gets run in sanity check script:
$ scripts/sanity_chk/sanity_chk [-P <platform>]
For quick regression test use bt_regression, it only check Bluetooth test
$ samples/bluetooth/bt_regression.sh