fhub: create the bluez log to /run/network/log
[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
83         CONFIG_CRYPTO_AES
84         CONFIG_CRYPTO_CCM
85         CONFIG_CRYPTO_AEAD
86         CONFIG_CRYPTO_CMAC
87
88
89 Configuration and options
90 =========================
91
92 For a working system, certain configuration options need to be enabled:
93
94         --enable-library
95
96                 Enable installation of Bluetooth library
97
98                 By default the Bluetooth library is no longer installed.
99
100                 The user interfaces or command line utilities do not
101                 require an installed Bluetooth library anymore. This
102                 option is provided for legacy third party applications
103                 that still depend on the library.
104
105                 When the library installation is enabled, it is a good
106                 idea to use a separate bluez-library or libbluetooth
107                 package for it.
108
109         --disable-tools
110
111                 Disable support for Bluetooth utilities
112
113                 By default the Bluetooth utilities are built and also
114                 installed. For production systems the tools are not
115                 needed and this option allows to disable them to save
116                 build time and disk space.
117
118                 When the tools are selected, it is a good idea to
119                 use a separate bluez-tools package for them.
120
121         --disable-cups
122
123                 Disable support for CUPS printer backend
124
125                 By default the printer backend for CUPS is build and
126                 also installed. For systems that do not require printing
127                 over Bluetooth, this options allows to disable it.
128
129                 When the CUPS backend is selected, it is a good idea to
130                 use a separate bluez-cups package for it.
131
132         --disable-monitor
133
134                 Disable support for the Bluetooth monitor utility
135
136                 By default the monitor utility is enabled. It provides
137                 support for HCI level tracing and debugging. For systems
138                 that don't require any kind of tracing or debugging
139                 capabilities, this options allows to disable it.
140
141                 The monitor utility should be placed in the main package
142                 along with the daemons. It is universally useful.
143
144         --disable-client
145
146                 Disable support for the command line client
147
148                 By default the command line client is enabled and uses the
149                 readline library. For specific systems where BlueZ is
150                 configured by other means, the command line client can be
151                 disabled and the dependency on readline is removed.
152
153                 The client should be placed in the main package along
154                 with the daemons. It is universally useful.
155
156         --disable-systemd
157
158                 Disable integration with systemd
159
160                 By default the integration with systemd is enabled and
161                 installed. This gives the best integration into all
162                 distributions based on systemd.
163
164                 This option is provided for distributions that do not
165                 support systemd. In that case all integration with the
166                 init system is up to the package.
167
168         --enable-testing
169
170                 Enable testing tools
171
172                 By default tools used only for testing emulation are disabled.
173                 This option can be used to enable them.
174
175                 It is not recommended to enable this option for production
176                 systems. These tools may contain tests that depend on specific
177                 environment or kernel features in development.
178
179         --enable-experimental
180
181                 Enable experimental tools
182
183                 By default all tools that are still in development
184                 are disabled. This option can be used to enable them.
185
186                 It is not recommended to enable this option for production
187                 systems. The behavior of the experimental tools is unstable
188                 and might still change.
189
190         --enable-nfc
191
192                 This option enable NFC pairing support.
193
194                 By default the integration with neard is disabled, this gives
195                 the option to enable it in system where neard is supported.
196
197                 The plugin is built into bluetoothd therefore it does not need
198                 to be package separately.
199
200         --enable-sap
201
202                 This option enable SAP profile using sap plugin.
203
204                 By default sap plugin is disabled since it requires tight
205                 integration with systems and is very rarely required.
206
207                 The plugin is built into bluetoothd therefore it does not need
208                 to be package separately.
209
210         --disable-a2dp
211
212                 Disable A2DP profile
213
214                 By default bluetoothd supports A2DP profile using a built-in
215                 plugin, this option disables it.
216
217                 This option is provided for distributions that do not have any
218                 audio capabilities.
219
220         --disable-avrcp
221
222                 Disable AVRCP profile
223
224                 By default bluetoothd supports AVRCP profile using a built-in
225                 plugin, this option disables it.
226
227                 This option is provided for distributions that do not have any
228                 audio capabilities.
229
230         --disable-network
231
232                 Disable PANU, NAP, GN profiles
233
234                 By default bluetoothd supports PANU, NAP and GN profile using a
235                 built-in plugin, this option disables it.
236
237                 This option is provided for distributions that do not have any
238                 network capabilities.
239
240         --disable-hid
241
242                 Disable HID profile
243
244                 By default bluetoothd supports HID profile using a built-in
245                 plugin, this option disables it.
246
247                 This option is provided for distributions that do not have any
248                 input capabilities.
249
250         --enable-health
251
252                 This option enable health profiles.
253
254                 By default health plugin is disabled since its profiles are
255                 target for the health industry.
256
257                 The plugin is built into bluetoothd therefore it does not need
258                 to be package separately.
259
260         --enable-midi
261
262                 This option enable MIDI support via ALSA Sequencer.
263
264                 By default midi plugin is disabled since it still considered
265                 experimental. When bluetoothd will create a new ALSA Sequencer
266                 client and port for each device connected that supports the
267                 MIDI GATT primary service.
268
269                 The plugin is built into bluetoothd therefore it does not need
270                 to be package separately.
271
272 Information
273 ===========
274
275 Mailing lists:
276         linux-bluetooth@vger.kernel.org
277
278 For additional information about the project visit BlueZ web site:
279         http://www.bluez.org