BlueZ-5.78

Introduksjon til BlueZ

BlueZ pakken inneholder Bluetooth protokollstabel for Linux.

[Notat]

Notat

Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den siste stabile versjonene av bøkene.

Pakkeinformasjon

BlueZ Avhengigheter

Påkrevd

dbus-1.14.10, GLib-2.82.1, og libical-3.0.18

Valgfri

docutils-0.21.2 (for å generere man sider)

Kjernekonfigurasjon

Hvis du bygger denne pakken for å bruke bluetooth enheter (i stedet for som en byggeavhengighet), aktiverer følgende alternativer i kjernekonfigurasjonen, også alternativene i «Cryptographic API» seksjonen hvis du har tenkt å kjøre testene, og kompilere kjernen på nytt om nødvendig:

General setup --->
  # If it is disabled, [TIMERFD] and [EVENTFD] will be hidden and
  # enabled implicitly.  We DO NOT recommend to enable [EXPERT]
  # unless you are really an expert user:
  [ /*] Configure standard kernel features (expert users) --->          [EXPERT]
    [*] Enable timerfd() system call                                   [TIMERFD]
    [*] Enable eventfd() system call                                   [EVENTFD]

[*] Networking support --->                                                [NET]
  <*/M> Bluetooth subsystem support --->                                    [BT]
    [*]   Bluetooth Classic (BR/EDR) features                         [BT_BREDR]
    <*/M>   RFCOMM protocol support                                  [BT_RFCOMM]
    [*]       RFCOMM TTY support                                 [BT_RFCOMM_TTY]
    <*/M>   BNEP protocol support                                      [BT_BNEP]
    [*]       Multicast filter support                       [BT_BNEP_MC_FILTER]
    [*]       Protocol filter support                     [BT_BNEP_PROTO_FILTER]
    <*/M>   HIDP protocol support                                      [BT_HIDP]
    Bluetooth device drivers --->
      # Select the appropriate drivers for your bluetooth hardware.
      # There are more vendor-specific drivers not listed here:
      < /*/M> HCI USB driver                                       [BT_HCIBTUSB]
      < /*/M> HCI SDIO driver                                     [BT_HCIBTSDIO]
      < /*/M> HCI UART driver                                       [BT_HCIUART]
  <*/M> RF switch subsystem support --->                                [RFKILL]

-*- Cryptographic API --->                                              [CRYPTO]
  Crypto core or helper --->
    <*/M> Userspace cryptographic algorithm configuration          [CRYPTO_USER]
  Block ciphers --->
    <*/M> AES (Advanced Encryption Standard)                        [CRYPTO_AES]
  AEAD (authenticated encryption with associated data) ciphers --->
    <*/M> CCM (Counter with Cipher Block Chaining-MAC)              [CRYPTO_CCM]
  Hashes, digests, and MACs --->
    <*/M> CMAC (Cipher-based MAC)                                  [CRYPTO_CMAC]
  Userspace interface --->
    <*/M> Hash algorithms                                 [CRYPTO_USER_API_HASH]
    <*/M> Symmetric key cipher algorithms             [CRYPTO_USER_API_SKCIPHER]
    <*/M> AEAD cipher algorithms                          [CRYPTO_USER_API_AEAD]

Installasjon av BlueZ

Installer BlueZ ved å kjøre følgende kommandoer:

./configure --prefix=/usr         \
            --sysconfdir=/etc     \
            --localstatedir=/var  \
            --enable-library      \
            --disable-manpages    \
            --disable-systemd     &&
make

For å teste resultatene, kjør: make check.

Nå, som root bruker:

make install &&
ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin

Installer hovedkonfigurasjonsfilen som root bruker:

install -v -dm755 /etc/bluetooth &&
install -v -m644 src/main.conf /etc/bluetooth/main.conf

Hvis ønskelig, installer API dokumentasjonen som root bruker:

install -v -dm755 /usr/share/doc/bluez-5.78 &&
install -v -m644 doc/*.txt /usr/share/doc/bluez-5.78

Installer en manglende D-Bus-tjeneste som root bruker:

install -m644 ./obexd/src/org.bluez.obex.service /usr/share/dbus-1/services

Parameterforklaringer

--disable-manpages: Denne bryteren deaktiverer generering av manualsidene på grunn av avhengigheten av 'rst2man' i docutils. Fjern denne bryteren hvis du har docutils-0.21.2 installert og ønsker å generere manualsidene.

--enable-library: Denne bryteren gjør det mulig å bygge BlueZ 4 kompatibilitetsbibliotek som kreves av noen applikasjoner.

--disable-systemd: Denne bryteren er nødvendig pga at systemd ikke er en del av LFS/BLFS. Hvis du bruker systemd, fjern denne bryteren.

ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin: Denne kommandoen gjør tilgangen til bluetooth nissen mer praktisk.

Konfigurere BlueZ

Konfigurasjonsfiler

/etc/bluetooth/main.conf installeres automatisk under installasjonen. I tillegg er det tre tilleggs konfigurasjonsfiler. /etc/sysconfig/bluetooth er installert som en del av oppstartsskriptet nedenfor. I tillegg kan du eventuelt installere følgende, som root bruker:

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

Oppstartsskript

For å starte bluetoothd nissen automatisk når systemet startes på nytt, installer /etc/rc.d/init.d/bluetooth oppstartsskript fra blfs-bootscripts-20240913 pakken.

make install-bluetooth

Innhold

Installerte Programmer: bluemoon, bluetoothctl, bluetoothd (symlink), btattach, btmon, hex2hcd, l2ping, l2test, mpris-proxy, og rctest
Installert Bibliotek: libbluetooth.so
Installerte Mapper: /etc/bluetooth, /usr/{include,libexec}/bluetooth, og /usr/share/doc/bluez-5.78

Korte Beskrivelser

bluemoon

er et Bluetooth konfigurasjonsverktøy

bluetoothctl

er det interaktive Bluetooth kontrollprogrammet

bluetoothd

er Bluetooth nissen

btmon

gir tilgang til Bluetooth undersystemmonitoren infrastruktur for lesing av HCI spor

hex2hcd

brukes til å konvertere en fil som trengs av Broadcom enheter til hcd format (Broadcom bluetooth firmware).

l2ping

brukes til å sende en L2CAP ekkoforespørsel til Bluetooth MAC adresse oppgitt i stiplet sekskantet notasjon

l2test

er et L2CAP testprogram

rctest

brukes til å teste RFCOMM kommunikasjon på Bluetooth stabelen

libbluetooth.so

inneholder BlueZ 4 API funksjoner