Review: Adaptador bluetooth Orico BTA-508 no Linux

O adaptador Bluetooth Orico BTA-508 é um produto com um custo-benefício interessante, sendo que dentre os produtos de “marca” provavelmente é um dos mais baratos, podem ser encontrados no mercado nacional por menos de R$70.

O adaptador utiliza o padrão Bluetooth 5.0 LE que indica baixo consumo de energia, o tornando bastante interessante para utilização em notebooks e outros gadgets com conexão USB.

Trazendo um chip da realtek (que pode variar conforme a versão do adaptador), o modelo que estou usando utiliza o chip Realtek RTL8761B.

:arrow_right: Outra opção de adaptador interessante é o TP-Link UB400, você pode conferir mais informações sobre ele neste review do @henriquead7.

Qualidade do áudio e alcance

O alcance médio gira em torno de 5 metros, além desse limite começam a ocorrer interferências. Estou utilizando um headset Awei A600BL e notei uma melhora significativa na qualidade do áudio e o atraso (latência) praticamente foi eliminado.


Este guia foi testado nas seguintes distribuições

Distros: Debian 11 e SID, Pop!_OS 20.10 e 21.04, elementary OS 5.1/6 e Zorin OS 16 Pro.
Versões do kernel testadas: 5.10, 5.11, 5.12 e 5.13 (liquorix)

IMPORTANTE: Conforme relato de diversos membros da comunidade, o driver indicado neste guia não funciona em versões antigas do kernel como: 5.4.x, 5.8.x.

Instalando o adaptador Bluetooth Orico BTA-508 no Linux

O fabricante não disponibiliza drivers oficiais para Linux, porém, como o chipset é bastante comum e está presente em diversos dispositivos, outras empresas disponibilizaram drivers compatíveis que podem ser instalados manualmente nas mais diversas distribuições. Encontrei as instruções e um driver funcional no fórum do Raspberry Pi.

Baixe o driver

Pesquise neste link por "BH456A" e baixe os drivers Linux: https://www.xmpow.com/pages/download

Extraia o arquivo 7z (o nome do arquivo pode ser diferente):

7z x 20201202_mpow_BH456A_driver+for+Linux.7z

Copie os arquivos fw e config (o nome da pasta de origem pode ser diferente):

sudo cp -iv 20201202_LINUX_BT_DRIVER/rtkbt-firmware/lib/firmware/rtlbt/rtl8761b_fw /lib/firmware/rtl_bt/rtl8761b_fw.bin
sudo cp -iv 20201202_LINUX_BT_DRIVER/rtkbt-firmware/lib/firmware/rtlbt/rtl8761b_config /lib/firmware/rtl_bt/rtl8761b_config.bin

Reinicie o computador.
Agora seu adaptador deve funcionar corretamente.


Adaptador USB Orico USB 5.0 - Link afiliado

18 curtidas

Ótimo artigo. Parabéns e obrigado por compartilhar. Vai ajudar muita gente.

1 curtida

Sabe se é necessário ter que refazer esse procedimento toda vez que houver uma atualização de Kernel ?

1 curtida

Ainda não tive nenhuma atualização aqui, então, não posso afirmar com certeza.

Mas, considerando que o “driver” está sendo copiado para o “/lib/” e não no “initram” ou algo do gênero, acredito que não será necessário copiar novamente, caso o kernel mude.

:vulcan_salute:

2 curtidas

Tava pensando em comprar esse dispositivo, mas tava com receio de ter que fazer esse procedimento toda vez que o Ubuntu atualizar o kernel. Se vc puder atualizar sobre isso depois, acho que seria interessante.

1 curtida

Não é necessário, pois o driver está sendo copiado para um diretório que será lido por futuras atualizações do Kernel.

3 curtidas

O driver é independente do kernel. Não precisa reinstalar ao atualizar o kernel não.

2 curtidas

Obrigado pela dica. Por anos, tentei várias marcas, sem sucesso. Então, ao ler o seu tuto, criei coragem para comprar a marca e modelo indicados. Acabei de fazer acompra por 23 reais no Aliexpress, com frete expresso gratis. Agora, é aguardar chegar e testar com o fone JBL bluethooth e com meu Motorola One Action. Um abraço.

3 curtidas

Acabou de chegar o meu Orico BTA-508. Fiz todo o procedimento do tutorial, mas não funcionou… Ainda não entendi o motivo. Tenho a seguinte saída;

$ systemctl status bluetooth
● bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset
   Active: active (running) since Wed 2021-06-30 16:38:08 -03; 7min ago
     Docs: man:bluetoothd(8)
 Main PID: 1932 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 4915)
   Memory: 2.9M
   CGroup: /system.slice/bluetooth.service
           └─1932 /usr/lib/bluetooth/bluetoothd

jun 30 16:38:08 kali systemd[1]: Starting Bluetooth service...
jun 30 16:38:08 kali bluetoothd[1932]: Bluetooth daemon 5.50
jun 30 16:38:08 kali systemd[1]: Started Bluetooth service.
jun 30 16:38:08 kali bluetoothd[1932]: Starting SDP server
jun 30 16:38:08 kali bluetoothd[1932]: Bluetooth management interface 1.14 initi
lines 1-16/16 (END)...skipping...
● bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-06-30 16:38:08 -03; 7min ago
     Docs: man:bluetoothd(8)
 Main PID: 1932 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 4915)
   Memory: 2.9M
   CGroup: /system.slice/bluetooth.service
           └─1932 /usr/lib/bluetooth/bluetoothd

jun 30 16:38:08 kali systemd[1]: Starting Bluetooth service...
jun 30 16:38:08 kali bluetoothd[1932]: Bluetooth daemon 5.50
jun 30 16:38:08 kali systemd[1]: Started Bluetooth service.
jun 30 16:38:08 kali bluetoothd[1932]: Starting SDP server
jun 30 16:38:08 kali bluetoothd[1932]: Bluetooth management interface 1.14 initialized


dmesg | grep -i 'blue\|firm'
[    0.172583] Spectre V2 : Enabling Restricted Speculation for firmware calls
[    1.578448] usb 1-1.1: Product: Bluetooth Radio
[    4.606663] Bluetooth: Core ver 2.22
[    4.606684] Bluetooth: HCI device and connection manager initialized
[    4.606688] Bluetooth: HCI socket layer initialized
[    4.606691] Bluetooth: L2CAP socket layer initialized
[    4.606695] Bluetooth: SCO socket layer initialized
[    6.712178] Bluetooth: hci0: command 0x1001 tx timeout
[    6.873025] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    6.873027] Bluetooth: BNEP filters: protocol multicast
[    6.873031] Bluetooth: BNEP socket layer initialized
[   14.708231] Bluetooth: hci0: RTL: HCI_OP_READ_LOCAL_VERSION failed (-110)

Alguma luz?

Qual distro vc está usando ? Qual versão do kernel ?

19.10
5.3.0-64-generic

Acredito que esse adaptador só funcione a partir da versão 5.8 do Kernel

1 curtida

Humm! Será que 19.10 aceita 5.8 de kernel?

Acredito que dê pra vc instalar manualmente o Kernel. Mas de toda forma recomendo vc atualizar o sistema pra uma versão mais recente. O Ubuntu 19.10 já teve seu suporte encerrado e não recebe updates de segurança desde Agosto de 2020. Recomendo vc fazer o update pra versão 20.04 que é uma LTS e vai ter suporte com atualizações de segurança até 2025.

2 curtidas

Até hj, optei por não fazer o upgrade de versão, por 2 motivos… Uso muito, no meu dia a dia, o Youtube DGL Gui, que foi descontinuado nas versões superiores. Além disso, a minha install do Win7, no virtual Box, para de funcionar, quando atualiza a versão do ubuntu. Ou seja, não vou conseguir rodar a imagem, que já está toda configurada com o Corel.

Acho que tem alternativas com Youtube DLG Gui, dá uma olhada nesse tópico:

Vc não consegue fazer um backup da sua máquina virtual de Win 7 do Virtual Box ? Pq vc pode fazer esse backup e depois instalar o Virtual Box novamente na sua nova versão do Ubuntu e adicionar esse backup que acredito que vai funcionar.

Pq se vc atualizar o Kernel na sua atual instalação pode ter problemas com o Virtual Box, seria preciso verificar se a sua versão do Virtual Box tem suporte a uma versão mais recente do kernel.

2 curtidas

Muito obrigado pelo artigo!
Uso o Ubuntu 20.04 e, a princípio, funcionou plug and play.
Logo que inseri o dongle, o bluetooth já foi reconhecido (não sei se pq já tinha o drive rtl8821CU instalado pra rodar meu dongle wi-fi), mas o bluetooth ainda assim insistia em ficar ‘off’.
Dai fiz os passos sugeridos, reiniciei o pc e funcionou perfeitamente =).
No fim, não sei se o que resolveu foi resetar o pc ou instalar o driver sugerido (& resetar o pc), o fato é que tá uma beleza aqui e sou muito grato.
Cheers!

2 curtidas

Agora um relato…
No Xubuntu 21.04 eu finalmente consegui, pela primeira vez, depois de 13 anos, rodar bluetooth no Linux. :raised_hands: Obrigado por esse tutorial!

Agora uma dica…
Porém, deixo uma dica importante… Mude de porta usb, se não funcionar, pois comigo só deu certo nas portas frontais.

Agora uma dúvida…
Alguém conseguiu usar o microfone do headset bluetooth?

2 curtidas

Em nenhum dos headsets que eu tenho, o microfone funciona no PC - tanto no Windows quanto no Linux. Conectado no celular funciona normalmente, provavelmente precisa de alguma configuração extra.

:vulcan_salute:

1 curtida

“Além disso, a minha install do Win7, no virtual Box, para de funcionar, quando atualiza a versão do ubuntu.”

Isso não é normal! Uso o Virtualbox aqui e minhas atualizações do Ubuntu não interferem no mesmo. Recomendo que sempre instale a versão do Virtualbox disponível na Ubuntu Software Store.
Tmb tenho uma vm do Win 7 para eventuais necessidades.