sco-tester: test local and remote disconnecting simultaneously
[platform/upstream/bluez.git] / README
1 BlueZ - Bluetooth protocol stack for Linux
2 ******************************************
3
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>
7
8
9 Compilation and installation
10 ============================
11
12 In order to compile Bluetooth utilities you need following software packages:
13         - GCC compiler
14         - GLib library
15         - D-Bus library
16         - udev library (optional)
17         - readline (command line clients)
18
19         On a debian based system, this can be done by running the following command:
20                 sudo apt-get build-dep bluez
21                 ./bootstrap
22
23 To configure run:
24         ./configure --prefix=/usr --mandir=/usr/share/man \
25                                 --sysconfdir=/etc --localstatedir=/var
26
27 Configure automatically searches for all required components and packages.
28
29 To compile and install run:
30         make && make install
31
32
33 Embedded Linux library
34 ======================
35
36 In order to compile mesh support and test client utility the development
37 version of Embedded Linux library is required to be present. The development
38 repositories can be found here:
39
40         git://git.kernel.org/pub/scm/libs/ell/ell.git
41         https://kernel.googlesource.com/pub/scm/libs/ell/ell.git
42
43 The build systems requires that the Embedded Linux library source code
44 is available on the same top level directory as the source code:
45
46         .
47         |--- ell
48         |    |--- ell
49         |    `--- unit
50         `--- bluez
51              |--- src
52              `--- tools
53
54 It is not required to build or install Embedded Linux library. The build
55 will happen when building the binaries and it will then be linked internally.
56
57 When using --enable-external-ell build option, it is not required that the
58 Embedded Linux library source code is available in the top level directory.
59
60 When neither --enable-mesh nor --enable-btpclient is specified, then this
61 part is irrelevant and Embedded Linux library is not required.
62
63
64 Kernel Build Options (for Mesh)
65 ===============================
66
67 The Mesh daemon uses kernel provided crypto utilities to perform security
68 functions required of Bluetooth Mesh. Many standard distributions currently
69 enable all required crypto features, but a few notable distributions do
70 not.
71
72 If Mesh Cryptography is not working, the following configuration options
73 may need to be enabled, and the kernel rebuilt.
74
75 1. A minimum of kernel version 4.9 or later is required
76
77 2. The kernel must at a minimum have the following .config options turned on:
78         CONFIG_CRYPTO_USER
79         CONFIG_CRYPTO_USER_API
80         CONFIG_CRYPTO_USER_API_AEAD
81         CONFIG_CRYPTO_USER_API_HASH
82         CONFIG_CRYPTO_USER_API_SKCIPHER
83
84         CONFIG_CRYPTO_AES
85         CONFIG_CRYPTO_CCM
86         CONFIG_CRYPTO_AEAD
87         CONFIG_CRYPTO_CMAC
88
89
90 Configuration and options
91 =========================
92
93 For a working system, certain configuration options need to be enabled:
94
95         --enable-library
96
97                 Enable installation of Bluetooth library
98
99                 By default the Bluetooth library is no longer installed.
100
101                 The user interfaces or command line utilities do not
102                 require an installed Bluetooth library anymore. This
103                 option is provided for legacy third party applications
104                 that still depend on the library.
105
106                 When the library installation is enabled, it is a good
107                 idea to use a separate bluez-library or libbluetooth
108                 package for it.
109
110         --disable-tools
111
112                 Disable support for Bluetooth utilities
113
114                 By default the Bluetooth utilities are built and also
115                 installed. For production systems the tools are not
116                 needed and this option allows to disable them to save
117                 build time and disk space.
118
119                 When the tools are selected, it is a good idea to
120                 use a separate bluez-tools package for them.
121
122         --disable-cups
123
124                 Disable support for CUPS printer backend
125
126                 By default the printer backend for CUPS is build and
127                 also installed. For systems that do not require printing
128                 over Bluetooth, this options allows to disable it.
129
130                 When the CUPS backend is selected, it is a good idea to
131                 use a separate bluez-cups package for it.
132
133         --disable-monitor
134
135                 Disable support for the Bluetooth monitor utility
136
137                 By default the monitor utility is enabled. It provides
138                 support for HCI level tracing and debugging. For systems
139                 that don't require any kind of tracing or debugging
140                 capabilities, this options allows to disable it.
141
142                 The monitor utility should be placed in the main package
143                 along with the daemons. It is universally useful.
144
145         --disable-client
146
147                 Disable support for the command line client
148
149                 By default the command line client is enabled and uses the
150                 readline library. For specific systems where BlueZ is
151                 configured by other means, the command line client can be
152                 disabled and the dependency on readline is removed.
153
154                 The client should be placed in the main package along
155                 with the daemons. It is universally useful.
156
157         --disable-systemd
158
159                 Disable integration with systemd
160
161                 By default the integration with systemd is enabled and
162                 installed. This gives the best integration into all
163                 distributions based on systemd.
164
165                 This option is provided for distributions that do not
166                 support systemd. In that case all integration with the
167                 init system is up to the package.
168
169         --enable-testing
170
171                 Enable testing tools
172
173                 By default tools used only for testing emulation are disabled.
174                 This option can be used to enable them.
175
176                 It is not recommended to enable this option for production
177                 systems. These tools may contain tests that depend on specific
178                 environment or kernel features in development.
179
180         --enable-experimental
181
182                 Enable experimental tools
183
184                 By default all tools that are still in development
185                 are disabled. This option can be used to enable them.
186
187                 It is not recommended to enable this option for production
188                 systems. The behavior of the experimental tools is unstable
189                 and might still change.
190
191         --enable-nfc
192
193                 This option enable NFC pairing support.
194
195                 By default the integration with neard is disabled, this gives
196                 the option to enable it in system where neard is supported.
197
198                 The plugin is built into bluetoothd therefore it does not need
199                 to be package separately.
200
201         --enable-sap
202
203                 This option enable SAP profile using sap plugin.
204
205                 By default sap plugin is disabled since it requires tight
206                 integration with systems and is very rarely required.
207
208                 The plugin is built into bluetoothd therefore it does not need
209                 to be package separately.
210
211         --disable-a2dp
212
213                 Disable A2DP profile
214
215                 By default bluetoothd supports A2DP profile using a built-in
216                 plugin, this option disables it.
217
218                 This option is provided for distributions that do not have any
219                 audio capabilities.
220
221         --disable-avrcp
222
223                 Disable AVRCP profile
224
225                 By default bluetoothd supports AVRCP profile using a built-in
226                 plugin, this option disables it.
227
228                 This option is provided for distributions that do not have any
229                 audio capabilities.
230
231         --disable-network
232
233                 Disable PANU, NAP, GN profiles
234
235                 By default bluetoothd supports PANU, NAP and GN profile using a
236                 built-in plugin, this option disables it.
237
238                 This option is provided for distributions that do not have any
239                 network capabilities.
240
241         --disable-hid
242
243                 Disable HID profile
244
245                 By default bluetoothd supports HID profile using a built-in
246                 plugin, this option disables it.
247
248                 This option is provided for distributions that do not have any
249                 input capabilities.
250
251         --enable-health
252
253                 This option enable health profiles.
254
255                 By default health plugin is disabled since its profiles are
256                 target for the health industry.
257
258                 The plugin is built into bluetoothd therefore it does not need
259                 to be package separately.
260
261         --enable-midi
262
263                 This option enable MIDI support via ALSA Sequencer.
264
265                 By default midi plugin is disabled since it still considered
266                 experimental. When bluetoothd will create a new ALSA Sequencer
267                 client and port for each device connected that supports the
268                 MIDI GATT primary service.
269
270                 The plugin is built into bluetoothd therefore it does not need
271                 to be package separately.
272
273 Information
274 ===========
275
276 Mailing lists:
277         linux-bluetooth@vger.kernel.org
278
279 For additional information about the project visit BlueZ web site:
280         http://www.bluez.org