Se você usa ou acabou de migrar para o ambiente linux, especialmente nas distros Ubuntu ou Mint, derivados do Debian, você pode encontrar problemas com o microfone do seu headset bluetooth.
Especialmente agora durante a pandemia, as famosas call (videoconferência) fazem cada vez mais parte do nosso cotidiano. Então você resolveu comprar aquele fone bluetooth bacana pra usar e quando conectou o seu microfone não funcionou? Não se preocupe, existe uma maneira de conseguir fazer o microfone do seu headset bluetooth funcionar no linux.
Esse tutorial foi testado com fones da JBL e Air Pods, mas ele deverá funcionar para a maioria dos casos.
Ativando o microfone do headset bluetooth
Para que o headset consiga funcionar corretamente com o microfone, você precisará habilitar o perfil de áudio HSP/HFP. Porém, por padrão, o pulseaudio (servidor de som embarcado nessas distribuições do linux) só oferece suporte para o HSP. Para fazer o HSP/HFP funcionar, precisamos habilitar o HFP no pulseaudio e para isso vamos utilizar o serviço ofono.
1. Instale o ofono
$ sudo apt install ofono
2. Configure o pulseaudio
para usar o ofono
Edite o arquivo /etc/pulse/default.pa
, encontre a linha load-module module-bluetooth-discover
e mude para load-module module-bluetooth-discover headset=ofono
3. Adicione o usuário pulse
ao grupo bluetooth
para que ele tenha as permissões necessárias
$ sudo usermod -aG bluetooth pulse
4. Edite e adicione as permissões no arquivo /etc/dbus-1/system.d/ofono.conf
adicione o código abaixo logo antes do fechamento </busconfig>
<policy user="pulse">
<allow send_destination="org.ofono"/>
</policy>
5. Para fazer o ofono funcionar é necessário fornecer um modem para ele. E para isso vamos instalar um emulador de modem chamado phonesim que será implementado pelo ofono para funcionar. Instale o ofono-phonesim
:
$ sudo add-apt-repository ppa:smoser/bluetooth
$ sudo apt-get update
$ sudo apt-get install ofono-phonesim
6. Configure o phonesim
adicionando as seguintes linhas no arquivo /etc/ofono/phonesim.conf
[phonesim]
Driver=phonesim
Address=127.0.0.1
Port=12345
Agora, reinicie o serviço ofono:
$ sudo systemctl restart ofono.service
7. Agora precisamos definir e habilitar alguns serviços para iniciar o ofono-phonesim como serviço.
Para executar ofono-phonesim -p 12345 /usr/share/phonesim/default.xml
na inicialização do sistema, crie como root o arquivo /etc/systemd/system/ofono-phonesim.service
com o seguinte conteúdo:
[Unit]
Description=Run ofono-phonesim in the background
[Service]
ExecStart=ofono-phonesim -p 12345 /usr/share/phonesim/default.xml
Type=simple
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Depois que o ofono-phonesim
for executado, você também precisará habilitar e colocar o modem phonesim online.
Para isso vamos usar o código de um repositório git:
$ cd /tmp
$ git clone git://git.kernel.org/pub/scm/network/ofono/ofono.git
$ sudo mv ofono /opt/
Agora você pode habilitar e tornar o modem phonesim online criando outro serviço do que depende do serviço ofono-phonesim.Novamente, crie um novo arquivo de serviço como root o arquivo em /etc/systemd/system/phonesim-enable-modem.service
e coloque o seguinte conteúdo:
[Unit]
Description=Enable and online phonesim modem
Requires=ofono-phonesim.service
[Service]
ExecStart=/opt/ofono/test/enable-modem /phonesim
ExecStart=/opt/ofono/test/online-modem /phonesim
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Em seguida, execute os seguintes comandos para habilitar e executar os dois daemons:
$ sudo systemctl daemon-reload
$ sudo systemctl enable ofono-phonesim.service
$ sudo systemctl enable phonesim-enable-modem.service
$ sudo service phonesim-enable-modem start
Verifique se tudo ocorreu como esperado e se o serviço está sendo executado:
$ sudo service phonesim-enable-modem status
8. Por fim, reinicie o pulseuadio
:
$ pulseaudio -k.
Agora você já deve conseguir enxergar o seu headset como dispositivo de input na parte de configuração de som. Existe uma certa instabilidade nesse setup, de vez em quando pode ser que o seu fone de uma desconfigurada ou a troca de perfil de áudio não funcione, quando isso ocorrer, reinicie os serviços como descrito acima e também o pulseaudio.
Olá pessoal, fiz todo procedimento, inclusive, verifiquei se a adição da linha em /etc/dbus-1/system.d/ofono.conf está antes do fechamento da TAG, e está tudo certo. Reiniciando todos os serviços, ainda sim não aparece. Por padrão ele sempre aparece os dois modos de entrada (A2DP) e (HSP/HFP), e alterando para o HFP o dispositivo de entrada não altera, aparecendo apenas o microfone embutido do notebook, meu Fone é um JBL 701 BT e estou usando o Ubuntu 20.04.6 LTS
Olá pessoal, fiz todo procedimento, inclusive, verifiquei se a adição da linha em /etc/dbus-1/system.d/ofono.conf está antes do fechamento da TAG, e está tudo certo. Reiniciando todos os serviços, ainda sim não aparece. Por padrão ele sempre aparece os dois modos de entrada (A2DP) e (HSP/HFP), e alterando para o HFP o dispositivo de entrada não altera, aparecendo apenas o microfone embutido do notebook, meu Fone é um JBL 701 BT
Então. Funcionou. Ubuntu 22.04.
Mas precisa escolher entre ouvir áudio bom ou funcionar o microfone.
Pro som ficar bom tem que usar A2DP, mas com A2DP não funciona mic.
Já com HSP/HSF funciona o mic, mas a qualidade eh horrível do som (de ouvir)
Algum workaround pra isso?
Infelizmente não (pelo menos eu não encontrei ainda), nesse modo de áudio fica um lixo mesmo :(((
onde vc encontrou o ofono-phone ? adicionando o ppa dele nao consigo instalar.
Então. Funcionou. Ubuntu 22.04.
Mas precisa escolher entre ouvir áudio bom ou funcionar o microfone.
Pro som ficar bom tem que usar A2DP, mas com A2DP não funciona mic.
Já com HSP/HSF funciona o mic, mas a qualidade eh horrível do som (de ouvir)
Não entendi o passo 2, onde está esse arquivo??
Cara, não apenas não funcionou no Pop OS! 21.10, como agora o som não vai nem pro HDMI mais ):
Muito obrigado por esse Post !!!!!
Fiz aqui no Mint 20.2
E meu Headset Anker Soundcore Q30 agora funciona perfeitamente
Olá, estou com tendo problema com meu JBL Tune 500. Uso ubuntu 20.04. tentando resolver usando esse procedimento, mas não conisgo intalar o pacote ofono, aparece a seguinte mensagem: E: Impossível encontrar o pacote ofono
Muito bom, funcionou legal, usei uma caixinha de som bluetooth, só faltou mostrar a porcentagem de bateria dela como já vi em outros sistemas.
fiz a instalação eu o microfone foi reconhecido, porém ao usá-lo não consigo manter no modo de alta fidelidade A2DP. Alguém sabe como resolver?
Infelizmente não achei como, ele precisa ficar no modo HSP para conseguir funcionar o microfone.
O perfil A2DP não permite entrada de audio. Não é um problema e sim uma caracteristica dele pra manter a alta qualidade do audio
Uso o mint 18.04. Executei a instalação deste artigo, porém não funcionou e ainda impediu a instalação antiga de som de funcionar. Fiz o retorno aos parâmetros antigos e consegui retornar o funcionamento.
Na configuração do som já tem HSP/HFP, mudo para ela mas não fica. Ubuntu 20.04
Job for phonesim-enable-modem.service failed because the control process exited with error code.
phonesim-enable-modem.service – Enable and online phonesim modem
Loaded: loaded (/etc/systemd/system/phonesim-enable-modem.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2021-05-04 16:12:16 -03; 42s ago
Process: 4342 ExecStart=/opt/ofono/test/enable-modem /phonesim (code=exited, status=1/FAILURE)
Main PID: 4342 (code=exited, status=1/FAILURE)
Deu o mesmo erro aqui pra mim, porém fechei e abri o terminal, e rodei novamente os seguintes comandos e funcionou:
Funcionou no ubunto 20.04 após esses comandos
Olá pessoal, fiz todo procedimento, inclusive, verifiquei se a adição da linha em /etc/dbus-1/system.d/ofono.conf está antes do fechamento da TAG, e está tudo certo. Reiniciando todos os serviços, ainda sim não aparece. Por padrão ele sempre aparece os dois modos de entrada (A2DP) e (HSP/HFP), e alterando para o HFP o dispositivo de entrada não altera, aparecendo apenas o microfone embutido do notebook, meu Fone é um JBL 701 BT e estou usando o Ubuntu 20.04.6 LTS
Deu o mesmo erro :/
to com o mesmo erro ai…
Pessoas podem estar tendo problemas aqui
<
policy
user
=
"pulse"
>
<
allow
send_destination
=
"org.ofono"
/>
</
policy
>
tem que colocar antes do fechamento da tag </busconfig>
na leitura do tutorial passa a impressão que é depois da tag, mas o correto é dentro. ficando assim
</policy>
</busconfig>