BlueZ-5.65
Kernel Configuration
If you are building this package to use bluetooth devices (rather
than as a build dependency), enable the following options in the
kernel configuration, also the options below the next paragraph if
you intend to run the tests, and recompile the kernel if necessary:
General Setup --->
[*] Configure standard kernel features (expert users) [CONFIG_EXPERT]
[*] Enable timerfd() system call [CONFIG_TIMERFD]
[*] Enable eventfd() system call [CONFIG_EVENTFD]
[*] Networking support ---> [CONFIG_NET]
<*/M> Bluetooth subsystem support ---> [CONFIG_BT]
<*/M> RFCOMM protocol support [CONFIG_BT_RFCOMM]
[*] RFCOMM TTY support [CONFIG_BT_RFCOMM_TTY]
<*/M> BNEP protocol support [CONFIG_BT_BNEP]
[*] Multicast filter support [CONFIG_BT_BNEP_MC_FILTER]
[*] Protocol filter support [CONFIG_BT_BNEP_PROTO_FILTER]
<*/M> HIDP protocol support [CONFIG_BT_HIDP]
Bluetooth device drivers --->
(Select the appropriate drivers for your Bluetooth hardware)
<*/M> RF switch subsystem support ---- [CONFIG_RFKILL]
-*- Cryptographic API --->
<*/M*> User-space cryptographic algorithm configuration [CONFIG_CRYPTO_USER]
<*/M*> User-space interface for hash algorithms [CONFIG_CRYPTO_USER_API_HASH]
<*/M*> User-space interface for symmetric key cipher algorithms [CONFIG_CRYPTO_USER_API_SKCIPHER]
<*/M*> MD5 digest algorithm [CONFIG_CRYPTO_MD5]
<*/M*> SHA1 digest algorithm [CONFIG_CRYPTO_SHA1]
Security Options --->
<*/M*> Diffie-Hellman operations on retained keys [CONFIG_KEY_DH_OPERATIONS]
Installation of BlueZ
Now, make some changes needed for SystemV systems:
patch -Np1 -i ../bluez-5.65-obexd_without_systemd-1.patch
Install BlueZ by running the
following commands:
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--enable-library \
--disable-manpages \
--disable-systemd &&
make
To test the results, issue: make
check
.
Now, as the root
user:
make install &&
ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin
Install the main configuration file as the root
user:
install -v -dm755 /etc/bluetooth &&
install -v -m644 src/main.conf /etc/bluetooth/main.conf
If desired, install the API documentation as the root
user:
install -v -dm755 /usr/share/doc/bluez-5.65 &&
install -v -m644 doc/*.txt /usr/share/doc/bluez-5.65
Command Explanations
--disable-manpages
: This
switch disables generating the manual pages because of the reliance
on 'rst2man' in docutils. Remove this switch if you have docutils-0.19 installed and wish to generate
the manual pages.
--enable-library
: This
switch enables building the BlueZ
4 compatibility library which is required by some applications.
--disable-systemd
: This
switch is needed because systemd
is not part of LFS/BLFS. If you are using systemd, remove this
switch.
ln -svf
../libexec/bluetooth/bluetoothd /usr/sbin: This
command makes access to the bluetooth daemon more convenient.
Configuring BlueZ
Configuration Files
/etc/bluetooth/main.conf
is
installed automatically during the install. Additionally, there
are three supplementary configuration files.
/etc/sysconfig/bluetooth is installed as a part of the boot
script below. In addition, you optionally can install the
following, as the root
user:
cat > /etc/bluetooth/rfcomm.conf << "EOF"
# Start rfcomm.conf
# Set up the RFCOMM configuration of the Bluetooth subsystem in the Linux kernel.
# Use one line per command
# See the rfcomm man page for options
# End of rfcomm.conf
EOF
cat > /etc/bluetooth/uart.conf << "EOF"
# Start uart.conf
# Attach serial devices via UART HCI to BlueZ stack
# Use one line per device
# See the hciattach man page for options
# End of uart.conf
EOF
Boot Script
To automatically start the bluetoothd daemon when the
system is rebooted, install the /etc/rc.d/init.d/bluetooth
bootscript from the
blfs-bootscripts-20220722 package.
make install-bluetooth
Contents
Installed Programs:
bluemoon, bluetoothctl, bluetoothd
(symlink), btattach, btmon, hex2hcd, l2ping, l2test,
mpris-proxy, and rctest
Installed Library:
libbluetooth.so
Installed Directories:
/etc/bluetooth,
/usr/{include,libexec}/bluetooth, and
/usr/share/doc/bluez-5.65
Short Descriptions
bluemoon
|
is a Bluemoon configuration utility
|
bluetoothctl
|
is the interactive Bluetooth control program
|
bluetoothd
|
is the Bluetooth daemon
|
btmon
|
provides access to the Bluetooth subsystem monitor
infrastructure for reading HCI traces
|
hex2hcd
|
is used to convert a file needed by Broadcom devices to
hcd (Broadcom bluetooth firmware) format
|
l2ping
|
is used to send a L2CAP echo request to the Bluetooth MAC
address given in dotted hex notation
|
l2test
|
is a L2CAP testing program
|
rctest
|
is used to test RFCOMM communications on the Bluetooth
stack
|
libbluetooth.so
|
contains the BlueZ 4 API
functions
|