Introduction to BlueZ

The BlueZ package contains the Bluetooth protocol stack for Linux.

This package is known to build and work properly using an LFS-8.0 platform.

Package Information

Additional Downloads

BlueZ Dependencies


dbus-1.10.14, GLib-2.50.3, and libical-2.0.0

User Notes:

Kernel Configuration

Enable the following options in the kernel configuration and recompile the kernel if necessary:

[*] Networking support --->                [CONFIG_NET]
  </M> Bluetooth subsystem support --->    [CONFIG_BT]
    <*/M> RFCOMM protocol support          [CONFIG_BT_RFCOMM]
    [*]   RFCOMM TTY support               [CONFIG_BT_RFCOMM_TTY]
    <*/M> BNEP protocol support            [CONFIG_BT_BNEP]
    [*]   Multicast filter support         [CONFIG_BT_BNEP_MC_FILTER]
    [*]   Protocol filter support          [CONFIG_BT_BNEP_PROTO_FILTER]
    <*/M> HIDP protocol support            [CONFIG_BT_HIDP]
        Bluetooth device drivers --->
          (Select the appropriate drivers for your Bluetooth hardware)

  <*/M> RF switch subsystem support --->   [CONFIG_RFKILL]

Installation of BlueZ

If you are going to use BlueZ with gnome-bluetooth and/or kde bluedevil, apply the following patch:

patch -Np1 -i ../bluez-5.43-obexd_without_systemd-1.patch

Install BlueZ by running the following commands:

./configure --prefix=/usr         \
            --sysconfdir=/etc     \
            --localstatedir=/var  \
            --enable-library      \
            --disable-systemd     &&

To test the results, issue: make check.

Now, as the root user:

make install &&
ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin

Install the main configuration file as the root user:

install -v -dm755 /etc/bluetooth &&
install -v -m644 src/main.conf /etc/bluetooth/main.conf

If desired, install the API documentation as the root user:

install -v -dm755 /usr/share/doc/bluez-5.43 &&
install -v -m644 doc/*.txt /usr/share/doc/bluez-5.43

Command Explanations

--enable-library: This switch enables building the BlueZ 4 compatibility library which is required by some applications.

--disable-systemd: This switch is needed because systemd is not part of LFS/BLFS. If you are using systemd, remove this switch.

ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin: This command makes access to the bluetooth daemon more convenient.

Configuring BlueZ

Configuration Files

/etc/bluetooth/main.conf is installed automatically during the install. Additionally, there are three supplementary configuration files. /etc/sysconfig/bluetooth is installed as a part of the boot script below. In addition, you optionally can install the following, as the root user:

cat > /etc/bluetooth/rfcomm.conf << "EOF"
# Start rfcomm.conf
# Set up the RFCOMM configuration of the Bluetooth subsystem in the Linux kernel.
# Use one line per command
# See the rfcomm man page for options

# End of rfcomm.conf
cat > /etc/bluetooth/uart.conf << "EOF"
# Start uart.conf
# Attach serial devices via UART HCI to BlueZ stack
# Use one line per device
# See the hciattach man page for options

# End of uart.conf

Boot Script

To automatically start the bluetoothd daemon when the system is rebooted, install the /etc/rc.d/init.d/bluetooth bootscript from the blfs-bootscripts-20170225 package.

make install-bluetooth


Installed Programs: bccmd, bluemoon, bluetoothctl, bluetoothd (symlink), btmon, ciptool, hciattach, hciconfig, hcidump, hcitool, hex2hcd, l2ping, l2test, mpris-proxy, rctest, rfcomm, and sdptool
Installed Library:
Installed Directories: /etc/bluetooth, /usr/{include,libexec}/bluetooth, and /usr/share/doc/bluez-5.43

Short Descriptions


is used to issue BlueCore commands to Cambridge Silicon Radio devices.


is a Bluemoon configuration utility.


is the interactive Bluetooth control program.


is the Bluetooth daemon.


provides access to the Bluetooth subsystem monitor infrastructure for reading HCI traces.


is used to set up, maintain, and inspect the CIP configuration of the Bluetooth subsystem in the Linux kernel.


is used to attach a serial UART to the Bluetooth stack as HCI transport interface.


is used to configure Bluetooth devices.


reads raw HCI data coming from and going to a Bluetooth device and prints to screen commands, events and data in a human-readable form.


is used to configure Bluetooth connections and send some special command to Bluetooth devices.


is used to convert a file needed by Broadcom devices to hcd (Broadcom bluetooth firmware) format.


is used to send a L2CAP echo request to the Bluetooth MAC address given in dotted hex notation.


is L2CAP testing program.


is used to test RFCOMM communications on the Bluetooth stack.


is used to set up, maintain, and inspect the RFCOMM configuration of the Bluetooth subsystem in the Linux kernel.


is used to perform SDP queries on Bluetooth devices.

contains the BlueZ 4 API functions.

Last updated on 2017-02-18 16:02:40 -0800