Estou tendo um problema com meus novos fones de ouvido Bluetooth (HONOR CHOICE Open-Ear Earbuds). Posso pareá-los com meu PC Ubuntu 24.10 (é um computador de mesa com um dongle Bluetooth), depois disso eles funcionam perfeitamente, até eu reiniciar o computador (ou reiniciar o bluetooth
serviço), momento em que ele não consegue se conectar. Isso não aconteceu com meus fones de ouvido Bluetooth anteriores, que funcionaram perfeitamente no Ubuntu.
A única maneira de conectar os fones de ouvido após uma reinicialização é passando pelo que parece ser outro processo de pareamento: depois de alguns ajustes (desligando e ligando os fones de ouvido ou o dongle, tentando conectar repetidamente), o Ubuntu me pede para confirmar um código de 6 dígitos e, depois que clico em "Confirmar", os fones de ouvido funcionam novamente. (A questão do código de 6 dígitos é estranha por si só, a propósito: fones de ouvido anteriores não exigiam um, e não há como os fones de ouvido exibirem um código, de qualquer forma, então não estou realmente comparando esse código com nada.)
Após esse procedimento, o LinkKey
in /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/XX:XX:XX:XX:XX:XX/info
muda; também, o programa Bluetooth Manager que eu instalei ( blueman
pacote) mostra o mesmo código em uma notificação rotulada como "Bluetooth Pairing Request". Isso me deixa razoavelmente certo de que esse é, de fato, outro pareamento que acontece.
Esse problema é específico do Ubuntu: ele não acontece em uma instalação do Windows 11 na mesma máquina, que não tem problemas para se reconectar após uma reinicialização. (Observe que esse não é o problema de ter que sincronizar a chave Bluetooth entre dois sistemas operacionais diferentes em caso de inicialização dupla: aqui estou pareando os fones de ouvido com o Ubuntu e, em seguida, reiniciando no Ubuntu novamente, sem tocar no Windows. Estou mencionando o Windows apenas para restringir o problema ao Ubuntu, em vez dos fones de ouvido ou do hardware do PC.)
Se eu tentar conectar os fones de ouvido via linha de comando, aparece a seguinte mensagem de erro (eu redigi o endereço do dispositivo):
$ bluetoothctl connect XX:XX:XX:XX:XX:XX
Attempting to connect to XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes
Failed to connect: org.bluez.Error.Failed br-connection-unknown
Como posso corrigir esse problema?
EDIT: Descobri a btmon
ferramenta que parece despejar o rastro completo das mensagens Bluetooth trocadas entre o computador e os dispositivos com os quais ele interage.
No rastreamento de uma tentativa de conexão com falha, encontrei a seguinte troca:
> HCI Event: Link Key Request (0x17) plen 6 #55 [hci0] 13.039915
Address: XX:XX:XX:XX:XX:XX (Tiinlab Corporation)
< HCI Command: Link Key Request Negative Reply (0x01|0x000c) plen 6 #56 [hci0] 13.039939
Address: XX:XX:XX:XX:XX:XX (Tiinlab Corporation)
Aqui está a parte correspondente do rastreamento de uma tentativa de conexão bem-sucedida (após um pareamento e antes de uma reinicialização):
> HCI Event: Link Key Request (0x17) plen 6 #34 [hci0] 13.524821
Address: XX:XX:XX:XX:XX:XX (Tiinlab Corporation)
< HCI Command: Link Key Request Reply (0x01|0x000b) plen 22 #35 [hci0] 13.524834
Address: XX:XX:XX:XX:XX:XX (Tiinlab Corporation)
Link key[16]: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Parece que o Ubuntu não se lembra de que tem uma chave de link para o dispositivo depois que o bluetooth
serviço é reiniciado.
Aparentemente, o lugar correto para procurar ajuda era o
bluez
repositório do GitHub ☺️Encontrei o problema 973 , que descreve exatamente minha situação. Aparentemente, isso se deve a um bug
bluez
que foi corrigido na versão 5.78, enquanto os repositórios do Ubuntu 24.10 contêm a versão 5.77. Após instalar a versão mais recente desse pacote compilado a partir da fonte, o problema foi corrigido.