source: general/sysutils/bluez.xml@ e4e6026

10.0 10.1 11.0 11.1 9.1 lazarus qt5new trunk upgradedb xry111/intltool xry111/test-20220226
Last change on this file since e4e6026 was e4e6026, checked in by Xi Ruoyao <xry111@…>, 3 years ago

update to bluez-5.51 (#12551)

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@22172 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 15.1 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY bluez-download-http "&kernel-dl;/linux/bluetooth/bluez-&bluez-version;.tar.xz">
8 <!ENTITY bluez-download-ftp " ">
9 <!ENTITY bluez-md5sum "a2f269c9f9a943394043ac1de69eb5b0">
10 <!ENTITY bluez-size "1.9 MB">
11 <!ENTITY bluez-buildsize "66 MB (add 36 MB for tests)">
12 <!ENTITY bluez-time "0.2 SBU (using parallelism=4; add 0.3 SBU for tests)">
13]>
14
15<sect1 id="bluez" xreflabel="BlueZ-&bluez-version;">
16 <?dbhtml filename="bluez.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>BlueZ-&bluez-version;</title>
24
25 <indexterm zone="bluez">
26 <primary sortas="a-BlueZ">BlueZ</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to BlueZ</title>
31
32 <para>
33 The <application>BlueZ</application> package contains the
34 Bluetooth protocol stack for Linux.
35 </para>
36
37 &lfs90_checked;
38
39 <bridgehead renderas="sect3">Package Information</bridgehead>
40 <itemizedlist spacing="compact">
41 <listitem>
42 <para>
43 Download (HTTP): <ulink url="&bluez-download-http;"/>
44 </para>
45 </listitem>
46 <listitem>
47 <para>
48 Download (FTP): <ulink url="&bluez-download-ftp;"/>
49 </para>
50 </listitem>
51 <listitem>
52 <para>
53 Download MD5 sum: &bluez-md5sum;
54 </para>
55 </listitem>
56 <listitem>
57 <para>
58 Download size: &bluez-size;
59 </para>
60 </listitem>
61 <listitem>
62 <para>
63 Estimated disk space required: &bluez-buildsize;
64 </para>
65 </listitem>
66 <listitem>
67 <para>
68 Estimated build time: &bluez-time;
69 </para>
70 </listitem>
71 </itemizedlist>
72
73 <bridgehead renderas="sect3" revision="sysv">Additional Downloads</bridgehead>
74 <itemizedlist spacing="compact" revision="sysv">
75 <listitem>
76 <para>
77 Optional patch (required to work properly with gnome-bluetooth
78 and/or kde bluedevil):
79 <ulink url="&patch-root;/bluez-&bluez-version;-obexd_without_systemd-1.patch"/>
80 </para>
81 </listitem>
82 </itemizedlist>
83
84 <bridgehead renderas="sect3">BlueZ Dependencies</bridgehead>
85
86 <bridgehead renderas="sect4">Required</bridgehead>
87 <para role="required">
88 <xref linkend="dbus"/>,
89 <xref linkend="glib2"/>, and
90 <xref linkend="libical"/>
91 </para>
92
93 <para condition="html" role="usernotes">
94 User Notes: <ulink url="&blfs-wiki;/bluez"/>
95 </para>
96 </sect2>
97
98
99 <sect2 role="kernel" id="bluez-kernel">
100 <title>Kernel Configuration</title>
101
102 <para>
103 If you are building this package to use bluetooth devices (rather than as a
104 build dependency), enable the following options in the kernel configuration,
105 also the options below the next paragraph if you intend to run the tests,
106 and recompile the kernel if necessary:
107 </para>
108
109<screen><literal>[*] Networking support ---&gt; [CONFIG_NET]
110 &lt;/M&gt; Bluetooth subsystem support ---&gt; [CONFIG_BT]
111 &lt;*/M&gt; RFCOMM protocol support [CONFIG_BT_RFCOMM]
112 [*] RFCOMM TTY support [CONFIG_BT_RFCOMM_TTY]
113 &lt;*/M&gt; BNEP protocol support [CONFIG_BT_BNEP]
114 [*] Multicast filter support [CONFIG_BT_BNEP_MC_FILTER]
115 [*] Protocol filter support [CONFIG_BT_BNEP_PROTO_FILTER]
116 &lt;*/M&gt; HIDP protocol support [CONFIG_BT_HIDP]
117 Bluetooth device drivers ---&gt;
118 (Select the appropriate drivers for your Bluetooth hardware)
119
120 &lt;*/M&gt; RF switch subsystem support ---&gt; [CONFIG_RFKILL]</literal></screen>
121
122 <para>
123 If you wish to run the testsuite (even if treating this package as a build
124 dependency), you will need to enable the following options in the kernel
125 configuration and recompile the kernel if necessary:
126 </para>
127
128<screen><literal>[*] Networking support ---&gt; [CONFIG_NET]
129-*- Cryptographic API ---&gt; [CONFIG_CRYPTO]
130 &lt;/M&gt; User-space interface for hash algorithms [CONFIG_CRYPTO_USER_API_HASH]
131 &lt;/M&gt; User-space interface for symmetric key cipher algorithms [CONFIG_CRYPTO_USER_API_SKCIPHER]</literal></screen>
132
133 <indexterm zone="bluez bluez-kernel">
134 <primary sortas="d-bluez">bluez</primary>
135 </indexterm>
136 </sect2>
137
138 <sect2 role="installation">
139 <title>Installation of BlueZ</title>
140
141 <para revision="sysv">
142 If you are going to use <application>BlueZ</application> with
143 gnome-bluetooth and/or kde bluedevil, apply the following patch:
144 </para>
145
146<screen revision="sysv"><userinput>patch -Np1 -i ../bluez-&bluez-version;-obexd_without_systemd-1.patch</userinput></screen>
147
148<!--
149 <para>
150 First, adapt BlueZ to changes in the Linux API Headers in Linux 5.2+:
151 </para>
152
153<screen><userinput remap="pre">sed -i 's/SIOCGSTAMP/0x8906/' tools/rctest.c \
154 tools/l2test.c</userinput></screen>
155-->
156
157 <para>
158 Install <application>BlueZ</application> by running the following
159 commands:
160 </para>
161
162<screen revision="sysv"><userinput>./configure --prefix=/usr \
163 --sysconfdir=/etc \
164 --localstatedir=/var \
165 --enable-library \
166 --disable-systemd &amp;&amp;
167make</userinput></screen>
168
169<screen revision="systemd"><userinput>./configure --prefix=/usr \
170 --sysconfdir=/etc \
171 --localstatedir=/var \
172 --enable-library &amp;&amp;
173make</userinput></screen>
174
175 <para>
176 To test the results, issue: <userinput>make check</userinput>.
177 </para>
178
179 <para>
180 Now, as the <systemitem class="username">root</systemitem> user:
181 </para>
182
183<screen role="root"><userinput>make install &amp;&amp;
184ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin</userinput></screen>
185
186 <para>
187 Install the main configuration file as the
188 <systemitem class="username">root</systemitem> user:
189 </para>
190
191<screen role="root"><userinput>install -v -dm755 /etc/bluetooth &amp;&amp;
192install -v -m644 src/main.conf /etc/bluetooth/main.conf</userinput></screen>
193
194 <para>
195 If desired, install the API documentation as the
196 <systemitem class="username">root</systemitem> user:
197 </para>
198
199<screen role="root"><userinput>install -v -dm755 /usr/share/doc/bluez-&bluez-version; &amp;&amp;
200install -v -m644 doc/*.txt /usr/share/doc/bluez-&bluez-version;</userinput></screen>
201
202 </sect2>
203
204
205 <sect2 role="commands">
206 <title>Command Explanations</title>
207
208 <para>
209 <parameter>--enable-library</parameter>: This switch enables building the
210 <application>BlueZ</application> 4 compatibility library which is required by
211 some applications.
212 </para>
213
214 <para revision="sysv">
215 <parameter>--disable-systemd</parameter>: This switch is needed because
216 <application>systemd</application> is not part of LFS/BLFS. If you are
217 using systemd, remove this switch.
218 </para>
219
220 <para>
221 <command>ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin</command>:
222 This command makes access to the bluetooth daemon more convenient.
223 </para>
224
225 </sect2>
226
227 <sect2 role="configuration">
228 <title>Configuring BlueZ</title>
229
230 <sect3 id="bluez-config">
231 <title>Configuration Files</title>
232 <para>
233 <filename>/etc/bluetooth/main.conf</filename> is installed automatically
234 during the install. Additionally, there are three supplementary
235 configuration files. /etc/sysconfig/bluetooth is installed as a part
236 of the boot script below. In addition, you optionally can install the
237 following, as the <systemitem class="username">root</systemitem> user:
238 </para>
239
240<screen role="root"><userinput>cat > /etc/bluetooth/rfcomm.conf &lt;&lt; "EOF"</userinput>
241<literal># Start rfcomm.conf
242# Set up the RFCOMM configuration of the Bluetooth subsystem in the Linux kernel.
243# Use one line per command
244# See the rfcomm man page for options
245
246
247# End of rfcomm.conf</literal>
248EOF</screen>
249
250<screen role="root"><userinput>cat > /etc/bluetooth/uart.conf &lt;&lt; "EOF"</userinput>
251<literal># Start uart.conf
252# Attach serial devices via UART HCI to BlueZ stack
253# Use one line per device
254# See the hciattach man page for options
255
256# End of uart.conf</literal>
257EOF</screen>
258
259 <indexterm zone="bluez bluez-config">
260 <primary
261 sortas="e-etc-bluetooth-main.conf">/etc/bluetooth/main.conf</primary>
262 </indexterm>
263
264 </sect3>
265
266 <sect3 id="bluez-init">
267 <title><phrase revision="sysv">Boot Script</phrase>
268 <phrase revision="systemd">Systemd Bluez Services</phrase></title>
269
270 <para revision="sysv">
271 To automatically start the <command>bluetoothd</command> daemon when the
272 system is rebooted, install the
273 <filename>/etc/rc.d/init.d/bluetooth</filename> bootscript from the
274 <xref linkend="bootscripts"/> package.
275 </para>
276
277 <para revision="systemd">
278 To start the <command>bluetoothd</command> daemon at boot,
279 enable the previously installed systemd unit by
280 running the following command as the
281 <systemitem class="username">root</systemitem> user:
282 </para>
283
284<screen role="root" revision="systemd"><userinput>systemctl enable bluetooth</userinput></screen>
285
286 <para revision="systemd">
287 To start the <command>obexd</command> daemon for a user session (to
288 support some Bluetooth programs using it), enable the previously
289 installed systemd unit for all users by running the following command
290 as the <systemitem class="username">root</systemitem> user:
291 </para>
292
293<screen role="root" revision="systemd"><userinput>systemctl enable --global obex</userinput></screen>
294
295 <indexterm zone="bluez bluez-init">
296 <primary sortas="f-bluetooth">bluetooth</primary>
297 </indexterm>
298
299<screen role="root" revision="sysv"><userinput>make install-bluetooth</userinput></screen>
300
301
302 <note revision="systemd">
303 <para>
304 <application>Systemd</application> will start the Bluetooth daemon
305 only when a bluetooth device is detected on the system.
306 </para>
307 </note>
308
309 </sect3>
310
311 </sect2>
312
313 <sect2 role="content">
314 <title>Contents</title>
315
316 <segmentedlist>
317 <segtitle>Installed Programs</segtitle>
318 <segtitle>Installed Library</segtitle>
319 <segtitle>Installed Directories</segtitle>
320
321 <seglistitem>
322 <seg>
323 bccmd,
324 bluemoon,
325 bluetoothctl,
326 bluetoothd (symlink),
327 btattach,
328 btmon,
329 hex2hcd,
330 l2ping,
331 l2test,
332 mpris-proxy, and
333 rctest
334 </seg>
335 <seg>
336 libbluetooth.so
337 </seg>
338 <seg>
339 /etc/bluetooth,
340 /usr/{include,libexec}/bluetooth, and
341 /usr/share/doc/bluez-&bluez-version;
342 </seg>
343 </seglistitem>
344 </segmentedlist>
345
346 <variablelist>
347 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
348 <?dbfo list-presentation="list"?>
349 <?dbhtml list-presentation="table"?>
350
351 <varlistentry id="bccmd">
352 <term><command>bccmd</command></term>
353 <listitem>
354 <para>
355 is used to issue BlueCore commands to Cambridge Silicon
356 Radio devices.
357 </para>
358 <indexterm zone="bluez bccmd">
359 <primary sortas="b-bccmd">bccmd</primary>
360 </indexterm>
361 </listitem>
362 </varlistentry>
363
364 <varlistentry id="bluemoon">
365 <term><command>bluemoon</command></term>
366 <listitem>
367 <para>
368 is a Bluemoon configuration utility.
369 </para>
370 <indexterm zone="bluez bluemoon">
371 <primary sortas="b-bluemoon">bluemoon</primary>
372 </indexterm>
373 </listitem>
374 </varlistentry>
375
376 <varlistentry id="bluetoothctl">
377 <term><command>bluetoothctl</command></term>
378 <listitem>
379 <para>
380 is the interactive Bluetooth control program.
381 </para>
382 <indexterm zone="bluez bluetoothctl">
383 <primary sortas="b-bluetoothctl">bluetoothctl</primary>
384 </indexterm>
385 </listitem>
386 </varlistentry>
387
388 <varlistentry id="bluetoothd">
389 <term><command>bluetoothd</command></term>
390 <listitem>
391 <para>
392 is the Bluetooth daemon.
393 </para>
394 <indexterm zone="bluez bluetoothd">
395 <primary sortas="b-bluetoothd">bluetoothd</primary>
396 </indexterm>
397 </listitem>
398 </varlistentry>
399
400 <varlistentry id="btmon">
401 <term><command>btmon</command></term>
402 <listitem>
403 <para>
404 provides access to the Bluetooth subsystem monitor
405 infrastructure for reading HCI traces.
406 </para>
407 <indexterm zone="bluez btmon">
408 <primary sortas="b-btmon">btmon</primary>
409 </indexterm>
410 </listitem>
411 </varlistentry>
412
413
414 <varlistentry id="hex2hcd">
415 <term><command>hex2hcd</command></term>
416 <listitem>
417 <para>
418 is used to convert a file needed by Broadcom devices
419 to hcd (Broadcom bluetooth firmware) format.
420 </para>
421 <indexterm zone="bluez hex2hcd">
422 <primary sortas="b-hex2hcd">hex2hcd</primary>
423 </indexterm>
424 </listitem>
425 </varlistentry>
426
427 <varlistentry id="l2ping">
428 <term><command>l2ping</command></term>
429 <listitem>
430 <para>
431 is used to send a L2CAP echo request to the Bluetooth MAC
432 address given in dotted hex notation.
433 </para>
434 <indexterm zone="bluez l2ping">
435 <primary sortas="b-l2ping">l2ping</primary>
436 </indexterm>
437 </listitem>
438 </varlistentry>
439
440 <varlistentry id="l2test">
441 <term><command>l2test</command></term>
442 <listitem>
443 <para>
444 is a L2CAP testing program.
445 </para>
446 <indexterm zone="bluez l2test">
447 <primary sortas="b-l2test">l2test</primary>
448 </indexterm>
449 </listitem>
450 </varlistentry>
451
452 <varlistentry id="rctest">
453 <term><command>rctest</command></term>
454 <listitem>
455 <para>
456 is used to test RFCOMM communications on the
457 Bluetooth stack.
458 </para>
459 <indexterm zone="bluez rctest">
460 <primary sortas="b-rctest">rctest</primary>
461 </indexterm>
462 </listitem>
463 </varlistentry>
464
465 <varlistentry id="libbluetooth">
466 <term><filename class="libraryfile">libbluetooth.so</filename></term>
467 <listitem>
468 <para>
469 contains the <application>BlueZ</application> 4 API functions.
470 </para>
471 <indexterm zone="bluez libbluetooth">
472 <primary sortas="c-libbluetooth">libbluetooth.so</primary>
473 </indexterm>
474 </listitem>
475 </varlistentry>
476 </variablelist>
477
478 </sect2>
479
480</sect1>
Note: See TracBrowser for help on using the repository browser.