BlueZ-5.66
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 in the “Cryptographic
API” section if you intend to run the tests,
and recompile the kernel if necessary:
General Setup --->
[ /*] Configure standard kernel features (expert users) [CONFIG_EXPERT]
(Note: if CONFIG_EXPERT is disabled, the following options will be
hidden and enabled implicitly. We DO NOT recommend to enable
CONFIG_EXPERT unless you are really an expert user.)
[*] 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 --->
Crypto core or helper --- >
<*/M> User-space cryptographic algorithm configuration [CONFIG_CRYPTO_USER]
Block ciphers --->
<*/M> AES (Advanced Encryption Standard) [CONFIG_CRYPTO_AES]
AEAD (authenticated encryption with associated data) ciphers --->
<*/M> CCM (Counter with Cipher Block Chaining-MAC) [CONFIG_CRYPTO_CCM]
Hashes, digests, and MACs --->
<*/M> CMAC (Cipher-based MAC) [CONFIG_CRYPTO_CMAC]
Userspace interface --->
<*/M> Hash algorithms [CONFIG_CRYPTO_USER_API_HASH]
<*/M> Symmetric key cipher algorithms [CONFIG_CRYPTO_USER_API_SKCIPHER]
<*/M> AEAD cipher algorithms [CONFIG_CRYPTO_USER_API_AEAD]
Installation of BlueZ
Now, make some changes needed for SystemV systems:
patch -Np1 -i ../bluez-5.66-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.66 &&
install -v -m644 doc/*.txt /usr/share/doc/bluez-5.66
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-20230101 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.66
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
|