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.2 platform.

Package Information

BlueZ Dependencies


dbus-1.12.6, GLib-2.56.0, and libical-3.0.3

User Notes:

Kernel Configuration

If you are building this package to use bluetooth devices (rather than as a build dependency), enable the following options in the kernel configuration, also the options below the next paragraph if you intend to run the tests, 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]

If you wish to run the testsuite (even if treating this package as a build dependency), you will need to enable the following options in the kernel configuration and recompile the kernel if necessary:

[*] Networking support --->                                     [CONFIG_NET]
-*- Cryptographic API --->                                      [CONFIG_CRYPTO]
  </M> User-space interface for hash algorithms                 [CONFIG_CRYPTO_USER_API_HASH]
  </M> User-space interface for symmetric key cipher algorithms [CONFIG_CRYPTO_USER_API_SKCIPHER]

Installation of BlueZ

Install BlueZ by running the following commands:

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

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.49 &&
install -v -m644 doc/*.txt /usr/share/doc/bluez-5.49

Command Explanations

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

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

Systemd Socket

To start the bluetoothd daemon at boot, enable the previously installed systemd unit by running the following command as the root user:

systemctl enable bluetooth


Systemd will start the Bluetooth daemon only when a bluetooth device is detected on the system.


Installed Programs: bccmd, bluemoon, bluetoothctl, bluetoothd (symlink), btattach, btmon, hex2hcd, l2ping, l2test, mpris-proxy, and rctest
Installed Library:
Installed Directories: /etc/bluetooth, /usr/{include,libexec}/bluetooth, and /usr/share/doc/bluez-5.49

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 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 a L2CAP testing program.


is used to test RFCOMM communications on the Bluetooth stack.

contains the BlueZ 4 API functions.

Last updated on 2018-03-19 11:06:40 -0500