Introduction à BlueZ
Le paquet BlueZ contient la pile
de protocole Bluetooth pour Linux.
This package is known to build and work properly using an LFS-11.0
platform.
Informations sur le paquet
-
Téléchargement (HTTP) :
https://www.kernel.org/pub/linux/bluetooth/bluez-5.61.tar.xz
-
Téléchargement (FTP) :
-
Somme de contrôle MD5 du téléchargement :
a4c98b6bd2411880cba5930e7f10a1c4
-
Taille du téléchargement : 2.0 Mo
-
Estimation de l'espace disque requis : 64 Mo (plus
76 Mo pour les tests)
-
Estimation du temps de construction : 0,1 SBU (avec
parallélisme = 4 ; plus 0,2 SBU pour les tests)
Téléchargements supplémentaires
Dépendances de BlueZ
Requises
dbus-1.12.20, GLib-2.68.4 et libical-3.0.10
Facultatives
docutils-0.17.1 (pour générer les pages de
manuel)
Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/bluez
Configuration du noyau
Si vous construisez ce paquet pour utiliser des appareils bluetooth
(plutôt qu'en tant que dépendance), activez les options suivantes
dans la configuration du noyau, ainsi que les options sous le
paragraphe suivant si vous lancerez les tests, et recompilez le
noyau si nécessaire :
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 de BlueZ
Tout d'abord, corrigez un problème de construction du paquet avec
Glibc-2.34 et supérieur :
sed 's/pause(/bluez_&/' -i profiles/audio/media.c
Maintenant, effectuez quelques changements requis pour les systèmes
SystemV :
patch -Np1 -i ../bluez-5.61-obexd_without_systemd-1.patch
Installez BlueZ en lançant les
commandes suivantes :
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--enable-library \
--disable-manpages \
--disable-systemd &&
make
Pour tester les résultats, tapez : make check
.
Maintenant, en tant qu'utilisateur root
:
make install &&
ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin
Installez le fichier principal de configuration en tant
qu'utilisateur root
:
install -v -dm755 /etc/bluetooth &&
install -v -m644 src/main.conf /etc/bluetooth/main.conf
Si vous le souhaitez, installez la documentation de l'API en tant
qu'utilisateur root
:
install -v -dm755 /usr/share/doc/bluez-5.61 &&
install -v -m644 doc/*.txt /usr/share/doc/bluez-5.61
Explication des commandes
--disable-manpages
:
ce paramètre désactive la génération des pages de manuel à cause de
la dépendance à « rst2man » de docutils. Supprimez ce
paramètre si vous avez installé docutils-0.17.1 et souhaitez générer les
pages de manuel.
--enable-library
:: Ce
paramètre active la construction de la bibliothèque de
compatibilité BlueZ 4 qui est
requises par certaines applications.
--disable-systemd
: Ce
paramètre est nécessaire car systemd ne fait pas partie de LFS/BLFS. Si
vous utilisez systemd, enlevez ce paramètre.
ln -svf
../libexec/bluetooth/bluetoothd /usr/sbin :
Cette commande donne accès au démon bluetooth de façon plus
cohérente.
Configuration de BlueZ
Fichiers de
configuration
/etc/bluetooth/main.conf
est
installé automatiquement pendant l'installation. En supplément,
il y a trois fichiers de configuration en plus.
/etc/sysconfig/bluetooth est installé comme une partie des
scripts de démarrage. De plus, vous pouvez éventuellement
installer la suite en tant qu'utilisateur root
:
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
Scripts de démarrage
Pour démarrer automatiquement le démon bluetoothd quand le système est
redémarré, installez le script de démarrage /etc/rc.d/init.d/bluetooth
depuis le paquet
blfs-bootscripts-20210826.
make install-bluetooth