Introdução ao "BlueZ"
O pacote BlueZ contém a pilha de
protocolos "Bluetooth" para Linux.
Nota
Esse pacote é conhecido por construir e
funcionar adequadamente usando-se uma plataforma LFS 13.0.
Informação do Pacote
-
Transferência (HTTP):
https://www.kernel.org/pub/linux/bluetooth/bluez-5.86.tar.xz
-
Transferência (FTP):
-
Soma de verificação MD5 da transferência:
8b5c680289e703dd2fd2a97b999d4e81
-
Tamanho da transferência: 2,2 MB
-
Espaço em disco estimado exigido: 141 MB (com testes)
-
Tempo de construção estimado: 0,8 UPC (usando paralelismo =
4; com os testes)
Dependências do "BlueZ"
Exigidas
dbus-1.16.2, GLib-2.86.4 e libical-3.0.20
Recomendadas
docutils-0.22.4 (para gerar páginas de
manual)
Configuração do Núcleo
Se você estiver construindo esse pacote para usar dispositivos
"bluetooth" (em vez de uma dependência de construção), [então]
habilite as seguintes opções na configuração do núcleo, também as
opções na seção “Cryptographic API” se você pretende executar
os testes e recompile o núcleo, se necessário:
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]
Instalação do "BlueZ"
Primeiro, corrija uma regressão que impede o BlueZ de inicializar
adaptadores no lançamento mais recente:
sed -i '4967,4968d' src/adapter.c
Instale BlueZ executando os
seguintes comandos:
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--enable-library &&
make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root:
make install &&
ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin
Instale o principal arquivo de configuração como o(a) usuário(a)
root:
install -v -dm555 /etc/bluetooth &&
install -v -m644 src/main.conf /etc/bluetooth/main.conf
Se desejado, instale a documentação da API como o(a) usuário(a)
root:
install -v -dm755 /usr/share/doc/bluez-5.86 &&
install -v -m644 doc/*.txt /usr/share/doc/bluez-5.86
Explicações do Comando
--enable-library: Essa
chave habilita construir a biblioteca de compatibilidade
BlueZ 4 que é exigida por alguns
aplicativos.
--disable-manpages: Essa chave
desabilita gerar as páginas de manual. Adicione essa chave se você
não tiver docutils-0.22.4 instalado.
ln -svf
../libexec/bluetooth/bluetoothd /usr/sbin: Esse
comando torna o acesso ao processo de segundo plano "bluetooth"
mais conveniente.
Configurando o "BlueZ"
Arquivos de
Configuração
/etc/bluetooth/main.conf é
instalado automaticamente durante a instalação. Além disso,
existem dois arquivos de configuração suplementares. Você pode
opcionalmente instalar os seguintes arquivos como o(a) usuário(a)
root:
cat > /etc/bluetooth/rfcomm.conf << "EOF"
# Início rfcomm.conf
# Configura a configuração "RFCOMM" do subsistema "Bluetooth" no núcleo Linux.
# Usa uma linha por comando
# Veja-se a página de manual do "rfcomm" para opções
# Fim do rfcomm.conf
EOF
cat > /etc/bluetooth/uart.conf << "EOF"
# Início uart.conf
# Anexa dispositivos seriais via "UART HCI" à pilha "BlueZ"
# Usa uma linha por dispositivo
# Veja-se a página de manual do "hciattach" para opções
# Fim do uart.conf
EOF
Serviços Bluez do
Systemd
Para iniciar o processo de segundo plano bluetoothd na inicialização,
habilite a unidade do systemd instalada anteriormente executando
o seguinte comando como o(a) usuário(a) root:
systemctl enable bluetooth
Para iniciar o processo de segundo plano obexd para uma sessão de
usuário(a) (para suportar alguns aplicativos "Bluetooth" que o
utilizam), habilite a unidade do "systemd" instalada
anteriormente para todos(as) os(as) usuários(as) executando o
seguinte comando como o(a) usuário(a) root:
systemctl enable --global obex
Nota
Systemd iniciará o processo de
segundo plano "Bluetooth" somente quando um dispositivo
"bluetooth" for detectado no sistema.