O Bluetooth está ativado, mas não pode ser encontrado ou encontrado por outros dispositivos.
Saída de sudo service bluetooth status
:
● bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Active: active (running) since ხუთ 2015-06-04 22:33:18 GET; 13min ago
Main PID: 26678 (bluetoothd)
CGroup: /system.slice/bluetooth.service
└─26678 /usr/sbin/bluetoothd -n
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPAG
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPHS
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSource
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSink
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPAG
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPHS
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSource
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSink
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Adapter /org/bluez/26678/hci0 has been enabled
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Adapter /org/bluez/26678/hci0 has been enabled
Saída de lsusb
:
Bus 003 Device 005: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0
Como posso corrigir isso?
Respostas:
Você precisa instalar o firmware.
A distribuição do firmware da Broadcom não é permitida pela licença da Broadcom. Então você precisa obtê-lo. É um pouco complexo, mas não há outro caminho legal .
Faça o download do driver do Broadcom Windows 8 ou AQUI .
Se o seu dispositivo não estiver listado nesses drivers, você precisará encontrar uma versão mais recente em algum lugar. A Broadcom removeu os drivers mais recentes do site para torná-lo mais difícil.
Alguns fornecedores de laptops possuem drivers Bluetooth em seus sites, mas alguns não são descompactáveis. Então é uma busca. Eu poderia baixar os drivers Broadcom mais recentes do site deles, mas ele não existe mais.
Abra este arquivo pelo Archive Manager e encontre o
bcbtums-win8x86-brcm.inf
arquivo. O nome do arquivo pode ser diferente em alguns drivers. Ele pode estarbcbtums.inf
localizado no diretório Win32 ou Win64. Não importa 32 ou 64 bits para fazer o download.Procure neste arquivo por VID_ 0A5C & PID_ 21D7 . Esses números são da sua
lsusb
saída0a5c: 21d7 Broadcom Corp. BCM43142 Bluetooth 4.0.
Comentário: Alguns dispositivos não são reconhecidos como Broadcom BT em
lsusb
. Se você não souber qual é o seu dispositivo BT, execute ousb-devices
comando, ele fornecerá informações mais detalhadas. Lá você pode encontrar IDs de produtos e fornecedores.Você verá alguma linha que termina com RAMUSB21D7
Procure este arquivo por RAMUSB21D7. Você encontrará uma seção assim:
É isso que estamos procurando. Nome do arquivo de firmware. BCM43142A0_001.001.011.0122.0126.hex
Agora extraia esse firmware do mesmo arquivo de táxi.
Então você precisa converter esse arquivo do formato hexadecimal para o hcd.
Baixe a ferramenta para isso
Você receberá a pasta hex2hcd em seu diretório pessoal.
Coloque o arquivo de firmware na sua pasta pessoal e execute
Você vê que 0a5c-21d7 é o ID do seu adaptador a partir de lsusb .
Importante: para os kernels 4.2+, você chama esse arquivo como
BCM.hcd
alternativa.Para os kernels, o nome do arquivo 4.8+ deve ser
BCM-<VID>-<PID>.hcd
, comoBCM-0a5c-21d7
.Para o kernel 5.0, o nome do arquivo é novamente
BCM43142A0-0a5c-21d7.hcd
Agora basta copiar
BCM43142A0-0a5c-21d7.hcd
ou outro arquivo de acordo com a versão do kernel para o/lib/firmware/brcm
diretórioPara kernels 4.2+
Para kernels 4.8+
Você sempre pode verificar se o nome do arquivo está correto executando
dmesg | grep -i blue
. Haverá uma mensagem de erro se o arquivo não for encontrado.Se o nome do arquivo solicitado não corresponder ao arquivo que você criou, renomeie o
hcd
arquivo.Desligue e ligue o computador novamente. Não basta reiniciar!
Seu adaptador receberá firmware e o bluetooth deve funcionar.
Tudo isso parece complicado, mas os advogados da Broadcom são os responsáveis por isso. A maioria dos outros fornecedores permite redistribuir o firmware sob a condição de que seja feito acompanhado da licença.
Isso permite que os mantenedores do Linux incluam firmware nas distribuições.
Mas não no caso da Broadcom. É por isso que não é feito de maneira fácil.
Muitas pessoas podem converter todos os arquivos hexadecimais para hcd e disponibilizá-los. Ou apenas adicione-os ao
linux-firmware
pacote do Ubuntu.Mas não é legal : - ((
fonte
sudo modprobe -r btusb
) e recarregá-lo (sudo modprobe btusb
) para que o blueooth funcione novamente. bugzilla.kernel.org/show_bug.cgi?id=81821dmesg
para saber meu arquivo correto. Exemplo de saída do dmesg:[ 3.479417] bluetooth hci0: Direct firmware load for brcm/BCM-0a5c-6410.hcd failed with error -2 [ 3.479421] Bluetooth: hci0: BCM: Patch brcm/BCM-0a5c-6410.hcd not found
.hex
arquivo, que pode ser copiado para o seu sistema Linux. Depois disso, siga as etapas 5 a 8. Esta resposta é excelente, a propósito.Aqui está um projeto que visa automatizar um pouco o processo: https://github.com/winterheart/broadcom-bt-firmware
copie o BCM para o diretório / nome correto, dependendo do kernel (como descrito acima).
No 4.8, eu não precisava de uma reinicialização, simplesmente em um terminal:
deve mostrar se está carregado. Verifique se o ID do hardware corresponde ao arquivo. Pode ser encontrado com:
o que mostra isso no meu Lenovo (somente essa linha):
Espero que ajude :)
fonte
hcitool dev
ainda não mostraram nenhum dispositivo, e houve um erro no syslog. Encontrei outro driver em plugable.com/2014/06/23/… que funcionou.É tudo o que você precisa: https://github.com/winterheart/broadcom-bt-firmware
Neste repositório, você pode encontrar mais informações e todos os drivers de placa sem fio Broadcom necessários .
Para ser mais concreto, dou as instruções que escrevi para mim:
Este tutorial pretende fazer com que a placa de rede sem fio / bluetooth Broadcom Corporation BCM43142 802.11b / g / n (rev 01) (ID do dispositivo: 0a5c: 216d) funcione em sistemas Linux (eu tentei no Elementary OS 0.4.1 Loki, com base em no Ubuntu 16.04.3 LTS).
Ele não funcionou para outros dispositivos, mas não deve variar muito deste procedimento para outros dispositivos Broadcom. Os drivers Broadcom necessários estão na pasta de repositório do GitHub no formato .hcd.
Digite o seguinte comando para descobrir qual nome de driver o kernel está procurando ao carregar as unidades durante a inicialização:
Tente este caso não encontre nada:
O resultado deve ser algo como isto:
Explicação: no meu caso, o kernel está procurando o arquivo
BCM.hcd
no diretório em/lib/firmware/brcm
que os drivers da Broadcom devem estar. Se o Kernel estiver procurando outro nome de driver, você deverá renomear o arquivo do driver (BCM43142A0-0a5c-216c.hcd
no meu caso, para o BCM43142 (0a5c: 216d)) como o nome exigido pelo kernel.Mova o driver renomeado (BCM.hcd) para o diretório inicial (/ home / YourUsername /) e execute o seguinte comando para movê-lo para a pasta que o kernel está visualizando durante a inicialização:
Você deve usar o driver correspondente, dependendo do seu dispositivo, e renomeá-lo, se solicitado pelo kernel.
Reinicie o computador e ele deve funcionar! * (Você pode entrar
dmesg | grep -i 'bluetooth'
novamente para verificar se o driver foi carregado)fonte