source: general/sysutils/bluez.xml@ bc3bb455

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 9.0 9.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 bc3bb455 was 7eb0a56, checked in by Douglas R. Reno <renodr@…>, 5 years ago

Adapt BlueZ to the Linux API Headers 5.2+

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@21850 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 "8e35c67c81a55d3ad4c9f22280dae178">
10 <!ENTITY bluez-size "1.7 MB">
11 <!ENTITY bluez-buildsize "62 MB (add 15 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 &lfs84_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 <para>
149 First, adapt BlueZ to changes in the Linux API Headers in Linux 5.2+:
150 </para>
151
152<screen><userinput remap="pre">sed -i 's/SIOCGSTAMP/0x8906/' tools/rctest.c \
153 tools/l2test.c</userinput></screen>
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.