source: general/sysutils/bluez.xml@ bd550c1

11.3 12.0 12.1 12.2 gimp3 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/for-12.3 xry111/llvm18 xry111/spidermonkey128 xry111/xf86-video-removal
Last change on this file since bd550c1 was 8cf92e14, checked in by Xi Ruoyao <xry111@…>, 20 months ago

bluez: Update kernel configuration section

  1. I'm pretty sure MD5, SHA1, and KEY_DH_OPERATIONS are not needed because I've tried testing bluez w/o them.
  2. Some options mentioned by the package's README should be added.
  3. The menu hierarchy of Cryptographic API section has been changed in recent kernel releases so we need to adapt.
  4. Let's not encourage people to use CONFIG_EXPERT.
  • Property mode set to 100644
File size: 16.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 "3f9496fedf878fba985e56713ed7752e">
10 <!ENTITY bluez-size "2.2 MB">
11 <!ENTITY bluez-buildsize "149 MB (with tests)">
12 <!ENTITY bluez-time "0.4 SBU (using parallelism=4; with tests)">
13]>
14
15<sect1 id="bluez" xreflabel="BlueZ-&bluez-version;">
16 <?dbhtml filename="bluez.html"?>
17
18
19 <title>BlueZ-&bluez-version;</title>
20
21 <indexterm zone="bluez">
22 <primary sortas="a-BlueZ">BlueZ</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to BlueZ</title>
27
28 <para>
29 The <application>BlueZ</application> package contains the
30 Bluetooth protocol stack for Linux.
31 </para>
32
33 &lfs112_checked;
34
35 <bridgehead renderas="sect3">Package Information</bridgehead>
36 <itemizedlist spacing="compact">
37 <listitem>
38 <para>
39 Download (HTTP): <ulink url="&bluez-download-http;"/>
40 </para>
41 </listitem>
42 <listitem>
43 <para>
44 Download (FTP): <ulink url="&bluez-download-ftp;"/>
45 </para>
46 </listitem>
47 <listitem>
48 <para>
49 Download MD5 sum: &bluez-md5sum;
50 </para>
51 </listitem>
52 <listitem>
53 <para>
54 Download size: &bluez-size;
55 </para>
56 </listitem>
57 <listitem>
58 <para>
59 Estimated disk space required: &bluez-buildsize;
60 </para>
61 </listitem>
62 <listitem>
63 <para>
64 Estimated build time: &bluez-time;
65 </para>
66 </listitem>
67 </itemizedlist>
68
69 <bridgehead renderas="sect3" revision="sysv">Additional Downloads</bridgehead>
70 <itemizedlist spacing="compact" revision="sysv">
71 <listitem>
72 <para>
73 Required patch:
74 <ulink url="&patch-root;/bluez-&bluez-version;-obexd_without_systemd-1.patch"/>
75 </para>
76 </listitem>
77 </itemizedlist>
78
79 <bridgehead renderas="sect3">BlueZ Dependencies</bridgehead>
80
81 <bridgehead renderas="sect4">Required</bridgehead>
82 <para role="required">
83 <xref linkend="dbus"/>,
84 <xref linkend="glib2"/>, and
85 <xref linkend="libical"/>
86 </para>
87
88 <bridgehead renderas="sect4">Optional</bridgehead>
89 <para role="optional">
90 <xref linkend="docutils"/> (to generate man pages)
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 in the <quote>Cryptographic API</quote> section if
106 you intend to run the tests, and recompile the kernel if necessary:
107 </para>
108
109<screen><literal>General Setup ---&gt;
110 [ /*] Configure standard kernel features (expert users) [CONFIG_EXPERT]
111 (Note: if CONFIG_EXPERT is disabled, the following options will be
112 hidden and enabled implicitly. We DO NOT recommend to enable
113 CONFIG_EXPERT unless you are really an expert user.)
114 [*] Enable timerfd() system call [CONFIG_TIMERFD]
115 [*] Enable eventfd() system call [CONFIG_EVENTFD]
116
117[*] Networking support ---&gt; [CONFIG_NET]
118 &lt;*/M&gt; Bluetooth subsystem support ---&gt; [CONFIG_BT]
119 &lt;*/M&gt; RFCOMM protocol support [CONFIG_BT_RFCOMM]
120 [*] RFCOMM TTY support [CONFIG_BT_RFCOMM_TTY]
121 &lt;*/M&gt; BNEP protocol support [CONFIG_BT_BNEP]
122 [*] Multicast filter support [CONFIG_BT_BNEP_MC_FILTER]
123 [*] Protocol filter support [CONFIG_BT_BNEP_PROTO_FILTER]
124 &lt;*/M&gt; HIDP protocol support [CONFIG_BT_HIDP]
125 Bluetooth device drivers ---&gt;
126 (Select the appropriate drivers for your Bluetooth hardware)
127
128 &lt;*/M&gt; RF switch subsystem support ---- [CONFIG_RFKILL]
129
130-*- Cryptographic API ---&gt;
131 Crypto core or helper --- &gt;
132 &lt;*/M&gt; User-space cryptographic algorithm configuration [CONFIG_CRYPTO_USER]
133 Block ciphers ---&gt;
134 &lt;*/M&gt; AES (Advanced Encryption Standard) [CONFIG_CRYPTO_AES]
135 AEAD (authenticated encryption with associated data) ciphers ---&gt;
136 &lt;*/M&gt; CCM (Counter with Cipher Block Chaining-MAC) [CONFIG_CRYPTO_CCM]
137 Hashes, digests, and MACs ---&gt;
138 &lt;*/M&gt; CMAC (Cipher-based MAC) [CONFIG_CRYPTO_CMAC]
139 Userspace interface ---&gt;
140 &lt;*/M&gt; Hash algorithms [CONFIG_CRYPTO_USER_API_HASH]
141 &lt;*/M&gt; Symmetric key cipher algorithms [CONFIG_CRYPTO_USER_API_SKCIPHER]
142 &lt;*/M&gt; AEAD cipher algorithms [CONFIG_CRYPTO_USER_API_AEAD]</literal></screen>
143
144<!--
145 <para>
146 If you wish to run the test suite (even if treating this package as a build
147 dependency), you will need to enable the following options in the kernel
148 configuration and recompile the kernel if necessary:
149 </para>
150
151<screen><literal>-*- Cryptographic API - - -&gt; [CONFIG_CRYPTO]
152 &lt;*/M&gt; User-space interface for hash algorithms [CONFIG_CRYPTO_USER_API_HASH]
153 &lt;*/M&gt; User-space interface for symmetric key cipher algorithms [CONFIG_CRYPTO_USER_API_SKCIPHER]</literal></screen>
154-->
155 <indexterm zone="bluez bluez-kernel">
156 <primary sortas="d-bluez">bluez</primary>
157 </indexterm>
158 </sect2>
159
160 <sect2 role="installation">
161 <title>Installation of BlueZ</title>
162
163<!--
164 <para>
165 At first, fix an issue building the package with Glibc-2.34 or later:
166 </para>
167
168<screen><userinput>sed 's/pause(/bluez_&amp;/' -i profiles/audio/media.c</userinput></screen>
169-->
170
171 <para revision="sysv">Now, make some changes needed for SystemV systems:</para>
172
173<screen revision="sysv"><userinput>patch -Np1 -i ../bluez-&bluez-version;-obexd_without_systemd-1.patch</userinput></screen>
174
175 <para>
176 Install <application>BlueZ</application> by running the following
177 commands:
178 </para>
179
180<screen revision="sysv"><userinput>./configure --prefix=/usr \
181 --sysconfdir=/etc \
182 --localstatedir=/var \
183 --enable-library \
184 --disable-manpages \
185 --disable-systemd &amp;&amp;
186make</userinput></screen>
187
188<screen revision="systemd"><userinput>./configure --prefix=/usr \
189 --sysconfdir=/etc \
190 --localstatedir=/var \
191 --disable-manpages \
192 --enable-library &amp;&amp;
193make</userinput></screen>
194
195 <para>
196 To test the results, issue: <userinput>make check</userinput>.
197 </para>
198
199 <para>
200 Now, as the <systemitem class="username">root</systemitem> user:
201 </para>
202
203<screen role="root"><userinput>make install &amp;&amp;
204ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin</userinput></screen>
205
206 <para>
207 Install the main configuration file as the
208 <systemitem class="username">root</systemitem> user:
209 </para>
210
211<screen role="root"><userinput>install -v -dm755 /etc/bluetooth &amp;&amp;
212install -v -m644 src/main.conf /etc/bluetooth/main.conf</userinput></screen>
213
214 <para>
215 If desired, install the API documentation as the
216 <systemitem class="username">root</systemitem> user:
217 </para>
218
219<screen role="root"><userinput>install -v -dm755 /usr/share/doc/bluez-&bluez-version; &amp;&amp;
220install -v -m644 doc/*.txt /usr/share/doc/bluez-&bluez-version;</userinput></screen>
221
222 </sect2>
223
224
225 <sect2 role="commands">
226 <title>Command Explanations</title>
227
228 <para>
229 <parameter>--disable-manpages</parameter>: This switch disables generating
230 the manual pages because of the reliance on 'rst2man' in docutils. Remove
231 this switch if you have <xref role="nodep" linkend="docutils"/> installed
232 and wish to generate the manual pages.
233 </para>
234
235 <para>
236 <parameter>--enable-library</parameter>: This switch enables building the
237 <application>BlueZ</application> 4 compatibility library which is required by
238 some applications.
239 </para>
240
241 <para revision="sysv">
242 <parameter>--disable-systemd</parameter>: This switch is needed because
243 <application>systemd</application> is not part of LFS/BLFS. If you are
244 using systemd, remove this switch.
245 </para>
246
247 <para>
248 <command>ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin</command>:
249 This command makes access to the bluetooth daemon more convenient.
250 </para>
251
252 </sect2>
253
254 <sect2 role="configuration">
255 <title>Configuring BlueZ</title>
256
257 <sect3 id="bluez-config">
258 <title>Configuration Files</title>
259 <para revision="sysv">
260 <filename>/etc/bluetooth/main.conf</filename> is installed automatically
261 during the install. Additionally, there are three supplementary
262 configuration files. /etc/sysconfig/bluetooth is installed as a part
263 of the boot script below. In addition, you optionally can install the
264 following, as the <systemitem class="username">root</systemitem> user:
265 </para>
266
267 <para revision="systemd">
268 <filename>/etc/bluetooth/main.conf</filename> is installed automatically
269 during the installation. Additionally, there are two supplementary
270 configuration files. You can optionally install the following files
271 as the <systemitem class="username">root</systemitem> user:
272 </para>
273
274<screen role="root"><userinput>cat > /etc/bluetooth/rfcomm.conf &lt;&lt; "EOF"</userinput>
275<literal># Start rfcomm.conf
276# Set up the RFCOMM configuration of the Bluetooth subsystem in the Linux kernel.
277# Use one line per command
278# See the rfcomm man page for options
279
280
281# End of rfcomm.conf</literal>
282EOF</screen>
283
284<screen role="root"><userinput>cat > /etc/bluetooth/uart.conf &lt;&lt; "EOF"</userinput>
285<literal># Start uart.conf
286# Attach serial devices via UART HCI to BlueZ stack
287# Use one line per device
288# See the hciattach man page for options
289
290# End of uart.conf</literal>
291EOF</screen>
292
293 <indexterm zone="bluez bluez-config">
294 <primary
295 sortas="e-etc-bluetooth-main.conf">/etc/bluetooth/main.conf</primary>
296 </indexterm>
297
298 </sect3>
299
300 <sect3 id="bluez-init">
301 <title><phrase revision="sysv">Boot Script</phrase>
302 <phrase revision="systemd">Systemd Bluez Services</phrase></title>
303
304 <para revision="sysv">
305 To automatically start the <command>bluetoothd</command> daemon when the
306 system is rebooted, install the
307 <filename>/etc/rc.d/init.d/bluetooth</filename> bootscript from the
308 <xref linkend="bootscripts"/> package.
309 </para>
310
311 <para revision="systemd">
312 To start the <command>bluetoothd</command> daemon at boot,
313 enable the previously installed systemd unit by
314 running the following command as the
315 <systemitem class="username">root</systemitem> user:
316 </para>
317
318<screen role="root" revision="systemd"><userinput>systemctl enable bluetooth</userinput></screen>
319
320 <para revision="systemd">
321 To start the <command>obexd</command> daemon for a user session (to
322 support some Bluetooth programs using it), enable the previously
323 installed systemd unit for all users by running the following command
324 as the <systemitem class="username">root</systemitem> user:
325 </para>
326
327<screen role="root" revision="systemd"><userinput>systemctl enable --global obex</userinput></screen>
328
329 <indexterm zone="bluez bluez-init">
330 <primary sortas="f-bluetooth">bluetooth</primary>
331 </indexterm>
332
333<screen role="root" revision="sysv"><userinput>make install-bluetooth</userinput></screen>
334
335
336 <note revision="systemd">
337 <para>
338 <application>Systemd</application> will start the Bluetooth daemon
339 only when a bluetooth device is detected on the system.
340 </para>
341 </note>
342
343 </sect3>
344
345 </sect2>
346
347 <sect2 role="content">
348 <title>Contents</title>
349
350 <segmentedlist>
351 <segtitle>Installed Programs</segtitle>
352 <segtitle>Installed Library</segtitle>
353 <segtitle>Installed Directories</segtitle>
354
355 <seglistitem>
356 <seg>
357 <!--bccmd, -->
358 bluemoon,
359 bluetoothctl,
360 bluetoothd (symlink),
361 btattach,
362 btmon,
363 hex2hcd,
364 l2ping,
365 l2test,
366 mpris-proxy, and
367 rctest
368 </seg>
369 <seg>
370 libbluetooth.so
371 </seg>
372 <seg>
373 /etc/bluetooth,
374 /usr/{include,libexec}/bluetooth, and
375 /usr/share/doc/bluez-&bluez-version;
376 </seg>
377 </seglistitem>
378 </segmentedlist>
379
380 <variablelist>
381 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
382 <?dbfo list-presentation="list"?>
383 <?dbhtml list-presentation="table"?>
384
385 <!--
386 <varlistentry id="bccmd">
387 <term><command>bccmd</command></term>
388 <listitem>
389 <para>
390 is used to issue BlueCore commands to Cambridge Silicon
391 Radio devices
392 </para>
393 <indexterm zone="bluez bccmd">
394 <primary sortas="b-bccmd">bccmd</primary>
395 </indexterm>
396 </listitem>
397 </varlistentry>
398 -->
399
400 <varlistentry id="bluemoon">
401 <term><command>bluemoon</command></term>
402 <listitem>
403 <para>
404 is a Bluemoon configuration utility
405 </para>
406 <indexterm zone="bluez bluemoon">
407 <primary sortas="b-bluemoon">bluemoon</primary>
408 </indexterm>
409 </listitem>
410 </varlistentry>
411
412 <varlistentry id="bluetoothctl">
413 <term><command>bluetoothctl</command></term>
414 <listitem>
415 <para>
416 is the interactive Bluetooth control program
417 </para>
418 <indexterm zone="bluez bluetoothctl">
419 <primary sortas="b-bluetoothctl">bluetoothctl</primary>
420 </indexterm>
421 </listitem>
422 </varlistentry>
423
424 <varlistentry id="bluetoothd">
425 <term><command>bluetoothd</command></term>
426 <listitem>
427 <para>
428 is the Bluetooth daemon
429 </para>
430 <indexterm zone="bluez bluetoothd">
431 <primary sortas="b-bluetoothd">bluetoothd</primary>
432 </indexterm>
433 </listitem>
434 </varlistentry>
435
436 <varlistentry id="btmon">
437 <term><command>btmon</command></term>
438 <listitem>
439 <para>
440 provides access to the Bluetooth subsystem monitor
441 infrastructure for reading HCI traces
442 </para>
443 <indexterm zone="bluez btmon">
444 <primary sortas="b-btmon">btmon</primary>
445 </indexterm>
446 </listitem>
447 </varlistentry>
448
449
450 <varlistentry id="hex2hcd">
451 <term><command>hex2hcd</command></term>
452 <listitem>
453 <para>
454 is used to convert a file needed by Broadcom devices
455 to hcd (Broadcom bluetooth firmware) format
456 </para>
457 <indexterm zone="bluez hex2hcd">
458 <primary sortas="b-hex2hcd">hex2hcd</primary>
459 </indexterm>
460 </listitem>
461 </varlistentry>
462
463 <varlistentry id="l2ping">
464 <term><command>l2ping</command></term>
465 <listitem>
466 <para>
467 is used to send a L2CAP echo request to the Bluetooth MAC
468 address given in dotted hex notation
469 </para>
470 <indexterm zone="bluez l2ping">
471 <primary sortas="b-l2ping">l2ping</primary>
472 </indexterm>
473 </listitem>
474 </varlistentry>
475
476 <varlistentry id="l2test">
477 <term><command>l2test</command></term>
478 <listitem>
479 <para>
480 is a L2CAP testing program
481 </para>
482 <indexterm zone="bluez l2test">
483 <primary sortas="b-l2test">l2test</primary>
484 </indexterm>
485 </listitem>
486 </varlistentry>
487
488 <varlistentry id="rctest">
489 <term><command>rctest</command></term>
490 <listitem>
491 <para>
492 is used to test RFCOMM communications on the
493 Bluetooth stack
494 </para>
495 <indexterm zone="bluez rctest">
496 <primary sortas="b-rctest">rctest</primary>
497 </indexterm>
498 </listitem>
499 </varlistentry>
500
501 <varlistentry id="libbluetooth">
502 <term><filename class="libraryfile">libbluetooth.so</filename></term>
503 <listitem>
504 <para>
505 contains the <application>BlueZ</application> 4 API functions
506 </para>
507 <indexterm zone="bluez libbluetooth">
508 <primary sortas="c-libbluetooth">libbluetooth.so</primary>
509 </indexterm>
510 </listitem>
511 </varlistentry>
512 </variablelist>
513
514 </sect2>
515
516</sect1>
Note: See TracBrowser for help on using the repository browser.