source: general/sysutils/bluez.xml@ 03c5583c

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 03c5583c was b8301f1, checked in by Ken Moffat <ken@…>, 7 years ago

bluez-5.47, includes fix for BlueBorne vulnerability

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

  • Property mode set to 100644
File size: 17.6 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 "783e15f65e70cdb8f721c659e140dd56">
10 <!ENTITY bluez-size "1.7 MB">
11 <!ENTITY bluez-buildsize "68 MB (add 13 MB for tests)">
12 <!ENTITY bluez-time "0.5 SBU (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 &lfs81_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">Additional Downloads</bridgehead>
74 <itemizedlist spacing="compact">
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 and recompile the kernel if necessary:
106 </para>
107
108<!-- FIXME this needs something else in CONFIG_CRYPTO_ to stop the test-gatt
109 unit test timing out and then segfaulting (see comment re make check) -->
110<screen><literal>[*] Networking support ---&gt; [CONFIG_NET]
111 &lt;/M&gt; Bluetooth subsystem support ---&gt; [CONFIG_BT]
112 &lt;*/M&gt; RFCOMM protocol support [CONFIG_BT_RFCOMM]
113 [*] RFCOMM TTY support [CONFIG_BT_RFCOMM_TTY]
114 &lt;*/M&gt; BNEP protocol support [CONFIG_BT_BNEP]
115 [*] Multicast filter support [CONFIG_BT_BNEP_MC_FILTER]
116 [*] Protocol filter support [CONFIG_BT_BNEP_PROTO_FILTER]
117 &lt;*/M&gt; HIDP protocol support [CONFIG_BT_HIDP]
118 Bluetooth device drivers ---&gt;
119 (Select the appropriate drivers for your Bluetooth hardware)
120
121 &lt;*/M&gt; RF switch subsystem support ---&gt; [CONFIG_RFKILL]</literal></screen>
122
123 <indexterm zone="bluez bluez-kernel">
124 <primary sortas="d-bluez">bluez</primary>
125 </indexterm>
126 </sect2>
127
128 <sect2 role="installation">
129 <title>Installation of BlueZ</title>
130
131 <para>
132 If you are going to use <application>BlueZ</application> with
133 gnome-bluetooth and/or kde bluedevil, apply the following patch:
134 </para>
135
136<screen><userinput>patch -Np1 -i ../bluez-&bluez-version;-obexd_without_systemd-1.patch</userinput></screen>
137
138 <para>
139 Install <application>BlueZ</application> by running the following
140 commands:
141 </para>
142
143<screen revision="sysv"><userinput>./configure --prefix=/usr \
144 --sysconfdir=/etc \
145 --localstatedir=/var \
146 --enable-library \
147 --disable-systemd &amp;&amp;
148make</userinput></screen>
149
150<screen revision="systemd"><userinput>./configure --prefix=/usr \
151 --sysconfdir=/etc \
152 --localstatedir=/var \
153 --enable-library &amp;&amp;
154make</userinput></screen>
155
156 <para>
157 To test the results, issue: <userinput>make check</userinput>.
158 One test (unit/test-gatt) may fail with a segmentation fault.
159 This appears to happen if one of the kernel CONFIG_CRYPTO_
160 items is not set, but the exact item has not been determined.
161 </para>
162
163 <para>
164 Now, as the <systemitem class="username">root</systemitem> user:
165 </para>
166
167<screen role="root"><userinput>make install &amp;&amp;
168ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin</userinput></screen>
169
170 <para>
171 Install the main configuration file as the
172 <systemitem class="username">root</systemitem> user:
173 </para>
174
175<screen role="root"><userinput>install -v -dm755 /etc/bluetooth &amp;&amp;
176install -v -m644 src/main.conf /etc/bluetooth/main.conf</userinput></screen>
177
178 <para>
179 If desired, install the API documentation as the
180 <systemitem class="username">root</systemitem> user:
181 </para>
182
183<screen role="root"><userinput>install -v -dm755 /usr/share/doc/bluez-&bluez-version; &amp;&amp;
184install -v -m644 doc/*.txt /usr/share/doc/bluez-&bluez-version;</userinput></screen>
185
186 </sect2>
187
188
189 <sect2 role="commands">
190 <title>Command Explanations</title>
191
192 <para>
193 <parameter>--enable-library</parameter>: This switch enables building the
194 <application>BlueZ</application> 4 compatibility library which is required by
195 some applications.
196 </para>
197
198 <para revision="sysv">
199 <parameter>--disable-systemd</parameter>: This switch is needed because
200 <application>systemd</application> is not part of LFS/BLFS. If you are
201 using systemd, remove this switch.
202 </para>
203
204 <para>
205 <command>ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin</command>:
206 This command makes access to the bluetooth daemon more convenient.
207 </para>
208
209 </sect2>
210
211 <sect2 role="configuration">
212 <title>Configuring BlueZ</title>
213
214 <sect3 id="bluez-config">
215 <title>Configuration Files</title>
216 <para>
217 <filename>/etc/bluetooth/main.conf</filename> is installed automatically
218 during the install. Additionally, there are three supplementary
219 configuration files. /etc/sysconfig/bluetooth is installed as a part
220 of the boot script below. In addition, you optionally can install the
221 following, as the <systemitem class="username">root</systemitem> user:
222 </para>
223
224<screen role="root"><userinput>cat > /etc/bluetooth/rfcomm.conf &lt;&lt; "EOF"</userinput>
225<literal># Start rfcomm.conf
226# Set up the RFCOMM configuration of the Bluetooth subsystem in the Linux kernel.
227# Use one line per command
228# See the rfcomm man page for options
229
230
231# End of rfcomm.conf</literal>
232EOF</screen>
233
234<screen role="root"><userinput>cat > /etc/bluetooth/uart.conf &lt;&lt; "EOF"</userinput>
235<literal># Start uart.conf
236# Attach serial devices via UART HCI to BlueZ stack
237# Use one line per device
238# See the hciattach man page for options
239
240# End of uart.conf</literal>
241EOF</screen>
242
243 <indexterm zone="bluez bluez-config">
244 <primary
245 sortas="e-etc-bluetooth-main.conf">/etc/bluetooth/main.conf</primary>
246 </indexterm>
247
248 </sect3>
249
250 <sect3 id="bluez-init">
251 <title><phrase revision="sysv">Boot Script</phrase>
252 <phrase revision="systemd">Systemd Socket</phrase></title>
253
254 <para revision="sysv">
255 To automatically start the <command>bluetoothd</command> daemon when the
256 system is rebooted, install the
257 <filename>/etc/rc.d/init.d/bluetooth</filename> bootscript from the
258 <xref linkend="bootscripts"/> package.
259 </para>
260
261 <para revision="systemd">
262 To start the <command>bluetoothd</command> daemon at boot,
263 enable the previously installed systemd unit by
264 running the following command as the
265 <systemitem class="username">root</systemitem> user:
266 </para>
267
268 <indexterm zone="bluez bluez-init">
269 <primary sortas="f-bluetooth">bluetooth</primary>
270 </indexterm>
271
272<screen role="root" revision="sysv"><userinput>make install-bluetooth</userinput></screen>
273
274<screen role="root" revision="systemd"><userinput>systemctl enable bluetooth</userinput></screen>
275
276 <note revision="systemd">
277 <para>
278 <application>Systemd</application> will start the Bluetooth daemon
279 only when a bluetooth device is detected on the system.
280 </para>
281 </note>
282
283 </sect3>
284
285 </sect2>
286
287 <sect2 role="content">
288 <title>Contents</title>
289
290 <segmentedlist>
291 <segtitle>Installed Programs</segtitle>
292 <segtitle>Installed Library</segtitle>
293 <segtitle>Installed Directories</segtitle>
294
295 <seglistitem>
296 <seg>
297 bccmd, bluemoon, bluetoothctl, bluetoothd (symlink), btattach, btmon, ciptool,
298 hciattach, hciconfig, hcidump, hcitool, hex2hcd, l2ping, l2test,
299 mpris-proxy, rctest, rfcomm, and sdptool
300 </seg>
301 <seg>
302 libbluetooth.so
303 </seg>
304 <seg>
305 /etc/bluetooth, /usr/{include,libexec}/bluetooth, and
306 /usr/share/doc/bluez-&bluez-version;
307 </seg>
308 </seglistitem>
309 </segmentedlist>
310
311 <variablelist>
312 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
313 <?dbfo list-presentation="list"?>
314 <?dbhtml list-presentation="table"?>
315
316 <varlistentry id="bccmd">
317 <term><command>bccmd</command></term>
318 <listitem>
319 <para>
320 is used to issue BlueCore commands to Cambridge Silicon
321 Radio devices.
322 </para>
323 <indexterm zone="bluez bccmd">
324 <primary sortas="b-bccmd">bccmd</primary>
325 </indexterm>
326 </listitem>
327 </varlistentry>
328
329 <varlistentry id="bluemoon">
330 <term><command>bluemoon</command></term>
331 <listitem>
332 <para>
333 is a Bluemoon configuration utility.
334 </para>
335 <indexterm zone="bluez bluemoon">
336 <primary sortas="b-bluemoon">bluemoon</primary>
337 </indexterm>
338 </listitem>
339 </varlistentry>
340
341 <varlistentry id="bluetoothctl">
342 <term><command>bluetoothctl</command></term>
343 <listitem>
344 <para>
345 is the interactive Bluetooth control program.
346 </para>
347 <indexterm zone="bluez bluetoothctl">
348 <primary sortas="b-bluetoothctl">bluetoothctl</primary>
349 </indexterm>
350 </listitem>
351 </varlistentry>
352
353 <varlistentry id="bluetoothd">
354 <term><command>bluetoothd</command></term>
355 <listitem>
356 <para>
357 is the Bluetooth daemon.
358 </para>
359 <indexterm zone="bluez bluetoothd">
360 <primary sortas="b-bluetoothd">bluetoothd</primary>
361 </indexterm>
362 </listitem>
363 </varlistentry>
364
365 <varlistentry id="btmon">
366 <term><command>btmon</command></term>
367 <listitem>
368 <para>
369 provides access to the Bluetooth subsystem monitor
370 infrastructure for reading HCI traces.
371 </para>
372 <indexterm zone="bluez btmon">
373 <primary sortas="b-btmon">btmon</primary>
374 </indexterm>
375 </listitem>
376 </varlistentry>
377
378 <varlistentry id="ciptool">
379 <term><command>ciptool</command></term>
380 <listitem>
381 <para>
382 is used to set up, maintain, and inspect the CIP configuration
383 of the Bluetooth subsystem in the Linux kernel.
384 </para>
385 <indexterm zone="bluez ciptool">
386 <primary sortas="b-ciptool">ciptool</primary>
387 </indexterm>
388 </listitem>
389 </varlistentry>
390
391 <varlistentry id="hciattach">
392 <term><command>hciattach</command></term>
393 <listitem>
394 <para>
395 is used to attach a serial UART to the Bluetooth stack
396 as HCI transport interface.
397 </para>
398 <indexterm zone="bluez hciattach">
399 <primary sortas="b-hciattach">hciattach</primary>
400 </indexterm>
401 </listitem>
402 </varlistentry>
403
404 <varlistentry id="hciconfig">
405 <term><command>hciconfig</command></term>
406 <listitem>
407 <para>
408 is used to configure Bluetooth devices.
409 </para>
410 <indexterm zone="bluez hciconfig">
411 <primary sortas="b-hciconfig">hciconfig</primary>
412 </indexterm>
413 </listitem>
414 </varlistentry>
415
416 <varlistentry id="hcidump">
417 <term><command>hcidump</command></term>
418 <listitem>
419 <para>
420 reads raw HCI data coming from and going to a Bluetooth
421 device and prints to screen commands, events and data
422 in a human-readable form.
423 </para>
424 <indexterm zone="bluez hcidump">
425 <primary sortas="b-hcidump">hcidump</primary>
426 </indexterm>
427 </listitem>
428 </varlistentry>
429
430
431 <varlistentry id="hcitool">
432 <term><command>hcitool</command></term>
433 <listitem>
434 <para>
435 is used to configure Bluetooth connections and send some
436 special command to Bluetooth devices.
437 </para>
438 <indexterm zone="bluez hcitool">
439 <primary sortas="b-hcitool">hcitool</primary>
440 </indexterm>
441 </listitem>
442 </varlistentry>
443
444 <varlistentry id="hex2hcd">
445 <term><command>hex2hcd</command></term>
446 <listitem>
447 <para>
448 is used to convert a file needed by Broadcom devices
449 to hcd (Broadcom bluetooth firmware) format.
450 </para>
451 <indexterm zone="bluez hex2hcd">
452 <primary sortas="b-hex2hcd">hex2hcd</primary>
453 </indexterm>
454 </listitem>
455 </varlistentry>
456<!--
457 <varlistentry id="hid2hci">
458 <term><command>hid2hci</command></term>
459 <listitem>
460 <para>
461 is used to set up switch supported Bluetooth devices into
462 the HCI mode and back.
463 </para>
464 <indexterm zone="bluez hid2hci">
465 <primary sortas="b-hid2hci">hid2hci</primary>
466 </indexterm>
467 </listitem>
468 </varlistentry>-->
469
470 <varlistentry id="l2ping">
471 <term><command>l2ping</command></term>
472 <listitem>
473 <para>
474 is used to send a L2CAP echo request to the Bluetooth MAC
475 address given in dotted hex notation.
476 </para>
477 <indexterm zone="bluez l2ping">
478 <primary sortas="b-l2ping">l2ping</primary>
479 </indexterm>
480 </listitem>
481 </varlistentry>
482
483 <varlistentry id="l2test">
484 <term><command>l2test</command></term>
485 <listitem>
486 <para>
487 is a L2CAP testing program.
488 </para>
489 <indexterm zone="bluez l2test">
490 <primary sortas="b-l2test">l2test</primary>
491 </indexterm>
492 </listitem>
493 </varlistentry>
494<!--
495 <varlistentry id="obexd">
496 <term><command>obexd</command></term>
497 <listitem>
498 <para>
499 is the OBEX daemon.
500 </para>
501 <indexterm zone="bluez obexd">
502 <primary sortas="b-obexd">obexd</primary>
503 </indexterm>
504 </listitem>
505 </varlistentry>-->
506
507 <varlistentry id="rctest">
508 <term><command>rctest</command></term>
509 <listitem>
510 <para>
511 is used to test RFCOMM communications on the
512 Bluetooth stack.
513 </para>
514 <indexterm zone="bluez rctest">
515 <primary sortas="b-rctest">rctest</primary>
516 </indexterm>
517 </listitem>
518 </varlistentry>
519
520 <varlistentry id="rfcomm">
521 <term><command>rfcomm</command></term>
522 <listitem>
523 <para>
524 is used to set up, maintain, and inspect the RFCOMM
525 configuration of the Bluetooth subsystem in the
526 Linux kernel.
527 </para>
528 <indexterm zone="bluez rfcomm">
529 <primary sortas="b-rfcomm">rfcomm</primary>
530 </indexterm>
531 </listitem>
532 </varlistentry>
533
534 <varlistentry id="sdptool">
535 <term><command>sdptool</command></term>
536 <listitem>
537 <para>
538 is used to perform SDP queries on Bluetooth devices.
539 </para>
540 <indexterm zone="bluez sdptool">
541 <primary sortas="b-sdptool">sdptool</primary>
542 </indexterm>
543 </listitem>
544 </varlistentry>
545
546 <varlistentry id="libbluetooth">
547 <term><filename class="libraryfile">libbluetooth.so</filename></term>
548 <listitem>
549 <para>
550 contains the <application>BlueZ</application> 4 API functions.
551 </para>
552 <indexterm zone="bluez libbluetooth">
553 <primary sortas="c-libbluetooth">libbluetooth.so</primary>
554 </indexterm>
555 </listitem>
556 </varlistentry>
557 </variablelist>
558
559 </sect2>
560
561</sect1>
Note: See TracBrowser for help on using the repository browser.