source: general/sysutils/bluez.xml@ d437f756

10.1 11.0 11.1 11.2 11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt 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 d437f756 was d437f756, checked in by Bruce Dubbs <bdubbs@…>, 3 years ago

More library tags

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

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