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.

4.6 9 votos
Nota do Artigo
Author

Um nerd nada tradicional… Desenvolvedor web full-stack, escritor amador e inventor nas horas vagas. Apaixonado por tecnologia e entusiasmado por projetos de código aberto!

Subscribe
Notify of
guest
11 Comentários
newest
oldest most voted
Inline Feedbacks
View all comments
Alexandre
Alexandre
29 dias atrás

Cara, não apenas não funcionou no Pop OS! 21.10, como agora o som não vai nem pro HDMI mais ):

Nuvem Carregada
Nuvem Carregada
5 meses atrás

Muito obrigado por esse Post !!!!!
Fiz aqui no Mint 20.2
E meu Headset Anker Soundcore Q30 agora funciona perfeitamente

phono.png
Junior Lima
Junior Lima
6 meses atrás

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

Wilson
7 meses atrás

Muito bom, funcionou legal, usei uma caixinha de som bluetooth, só faltou mostrar a porcentagem de bateria dela como já vi em outros sistemas.

Jean H S Arouck
Jean H S Arouck
8 meses atrás

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?

wendell
wendell
Reply to  Jean H S Arouck
6 meses atrás

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

Julio Damato
Julio Damato
1 ano atrás

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.

Last edited 1 ano atrás by Julio Damato
João Mello
João Mello
1 ano atrás

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)

Pedro
Pedro
Reply to  João Mello
3 meses atrás

Deu o mesmo erro aqui pra mim, porém fechei e abri o terminal, e rodei novamente os seguintes comandos e funcionou:

$ sudo systemctl daemon-reload
$ sudo systemctl enable ofono-phonesim.service
$ sudo systemctl enable phonesim-enable-modem.service
$ sudo service phonesim-enable-modem start
Ezequiel
Ezequiel
Reply to  João Mello
2 meses atrás

Deu o mesmo erro :/

11
0
Would love your thoughts, please comment.x
()
x