1 BlueZ - Bluetooth protocol stack for Linux
2 ******************************************
4 Copyright (C) 2000-2001 Qualcomm Incorporated
5 Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com>
6 Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org>
9 Compilation and installation
10 ============================
12 In order to compile Bluetooth utilities you need following software packages:
16 - udev library (optional)
17 - readline (command line clients)
20 ./configure --prefix=/usr --mandir=/usr/share/man \
21 --sysconfdir=/etc --localstatedir=/var
23 Configure automatically searches for all required components and packages.
25 To compile and install run:
29 Embedded Linux library
30 ======================
32 In order to compile mesh support and test client utility the development
33 version of Embedded Linux library is required to be present. The development
34 repositories can be found here:
36 git://git.kernel.org/pub/scm/libs/ell/ell.git
37 https://kernel.googlesource.com/pub/scm/libs/ell/ell.git
39 The build systems requires that the Embedded Linux library source code
40 is available on the same top level directory as the source code:
50 It is not required to build or install Embedded Linux library. The build
51 will happen when building the binaries and it will then be linked internally.
53 When using --enable-external-ell build option, it is not required that the
54 Embedded Linux library source code is available in the top level directory.
56 When neither --enable-mesh nor --enable-btpclient is specified, then this
57 part is irrelevant and Embedded Linux library is not required.
60 Kernel Build Options (for Mesh)
61 ===============================
63 The Mesh daemon uses kernel provided crypto utilities to perform security
64 functions required of Bluetooth Mesh. Many standard distributions currently
65 enable all required crypto features, but a few notable distributions do
68 If Mesh Cryptography is not working, the following configuration options
69 may need to be enabled, and the kernel rebuilt.
71 1. A minimum of kernel version 4.9 or later is required
73 2. The kernel must at a minimum have the following .config options turned on:
75 CONFIG_CRYPTO_USER_API
76 CONFIG_CRYPTO_USER_API_AEAD
77 CONFIG_CRYPTO_USER_API_HASH
85 Configuration and options
86 =========================
88 For a working system, certain configuration options need to be enabled:
92 Enable installation of Bluetooth library
94 By default the Bluetooth library is no longer installed.
96 The user interfaces or command line utilities do not
97 require an installed Bluetooth library anymore. This
98 option is provided for legacy third party applications
99 that still depend on the library.
101 When the library installation is enabled, it is a good
102 idea to use a separate bluez-library or libbluetooth
107 Disable support for Bluetooth utilities
109 By default the Bluetooth utilities are built and also
110 installed. For production systems the tools are not
111 needed and this option allows to disable them to save
112 build time and disk space.
114 When the tools are selected, it is a good idea to
115 use a separate bluez-tools package for them.
119 Disable support for CUPS printer backend
121 By default the printer backend for CUPS is build and
122 also installed. For systems that do not require printing
123 over Bluetooth, this options allows to disable it.
125 When the CUPS backend is selected, it is a good idea to
126 use a separate bluez-cups package for it.
130 Disable support for the Bluetooth monitor utility
132 By default the monitor utility is enabled. It provides
133 support for HCI level tracing and debugging. For systems
134 that don't require any kind of tracing or debugging
135 capabilities, this options allows to disable it.
137 The monitor utility should be placed in the main package
138 along with the daemons. It is universally useful.
142 Disable support for the command line client
144 By default the command line client is enabled and uses the
145 readline library. For specific systems where BlueZ is
146 configured by other means, the command line client can be
147 disabled and the dependency on readline is removed.
149 The client should be placed in the main package along
150 with the daemons. It is universally useful.
154 Disable integration with systemd
156 By default the integration with systemd is enabled and
157 installed. This gives the best integration into all
158 distributions based on systemd.
160 This option is provided for distributions that do not
161 support systemd. In that case all integration with the
162 init system is up to the package.
168 By default tools used only for testing emulation are disabled.
169 This option can be used to enable them.
171 It is not recommended to enable this option for production
172 systems. These tools may contain tests that depend on specific
173 environment or kernel features in development.
175 --enable-experimental
177 Enable experimental tools
179 By default all tools that are still in development
180 are disabled. This option can be used to enable them.
182 It is not recommended to enable this option for production
183 systems. The behavior of the experimental tools is unstable
184 and might still change.
188 This option enable NFC pairing support.
190 By default the integration with neard is disabled, this gives
191 the option to enable it in system where neard is supported.
193 The plugin is built into bluetoothd therefore it does not need
194 to be package separately.
198 This option enable SAP profile using sap plugin.
200 By default sap plugin is disabled since it requires tight
201 integration with systems and is very rarely required.
203 The plugin is built into bluetoothd therefore it does not need
204 to be package separately.
210 By default bluetoothd supports A2DP profile using a built-in
211 plugin, this option disables it.
213 This option is provided for distributions that do not have any
218 Disable AVRCP profile
220 By default bluetoothd supports AVRCP profile using a built-in
221 plugin, this option disables it.
223 This option is provided for distributions that do not have any
228 Disable PANU, NAP, GN profiles
230 By default bluetoothd supports PANU, NAP and GN profile using a
231 built-in plugin, this option disables it.
233 This option is provided for distributions that do not have any
234 network capabilities.
240 By default bluetoothd supports HID profile using a built-in
241 plugin, this option disables it.
243 This option is provided for distributions that do not have any
248 This option enable health profiles.
250 By default health plugin is disabled since its profiles are
251 target for the health industry.
253 The plugin is built into bluetoothd therefore it does not need
254 to be package separately.
258 This option enable MIDI support via ALSA Sequencer.
260 By default midi plugin is disabled since it still considered
261 experimental. When bluetoothd will create a new ALSA Sequencer
262 client and port for each device connected that supports the
263 MIDI GATT primary service.
265 The plugin is built into bluetoothd therefore it does not need
266 to be package separately.
272 linux-bluetooth@vger.kernel.org
274 For additional information about the project visit BlueZ web site: