Bluetooth A2DP pulseaudio fonte para reproduzir som do telefone para o linux com bluez 5.45

1

Estou tentando fazer com que o som do meu telefone apareça como uma entrada pulseaudio para que eu possa tocar música nos alto-falantes do meu computador usando o bluetooth A2DP. Estou usando o arch linux com bluez 5.45.

Existem milhares de guias sobre isso na web, mas todos parecem desatualizados. Em particular, com o bluez 5.45 (e o bluez-utils 5.45 e o bluez-tools 0.2) não existe mais o arquivo /etc/bluetooth/audio.conf . hcitool e sdptool não existem mais. Não há mais uma interface org.bluez.AudioSource que eu possa chamar nos dispositivos hci através do dbus. Algumas páginas da Web sugerem que as coisas devem "funcionar" agora, mas eu certamente não vejo nenhuma fonte ou receptor depois de emparelhar meu telefone (um Pixel) com meu computador.

O que funciona: consigo emparelhar meu telefone em bluetoothctl e fazer ping com l2ping . Coloquei meu usuário no grupo lp e editei /etc/dbus-1/system.d/bluetooth.conf para ter todas as permissões possíveis de Bluetooth. pacmd list-modules mostra que carreguei module-bluetooth-policy , module-bluetooth-discover e module-bluez5-discover . No menu Bluetooth do meu telefone, meu computador aparece como usado para "Mídia de áudio" (não sei se isso está certo ou não).

No entanto, pacmd list-sources não lista nada sobre o bluetooth, e não há nada de bluetooth em pavucontrol .

    
por user3188445 24.07.2017 / 07:55

1 resposta

1

Bem, passei horas trabalhando nisso e, por algum motivo, não consegui me conectar ao meu telefone. No entanto, eu tentei em um computador diferente, e simplesmente digitar connect xx:xx:xx:xx:xx:xx no shell bluetoothctl foi o suficiente para conectar e fazer o áudio funcionar. Então voltei para o primeiro computador, executei remove xx:xx:xx:xx:xx:xx e reemparalei, e então funcionou.

A única coisa que eu fiz de forma diferente foi tocar música durante o emparelhamento e conexão nos casos que funcionavam, enquanto no primeiro caso eu tentei me conectar antes de enviar o áudio.

Então, basicamente, para resumir para outras pessoas que estão tentando fazer o bluetooth trabalhar em arco, estas são as etapas:

pacman --needed -S pulseaudio-bluetooth bluez-utils bluez-tools rfkill
systemctl enable bluetooth
systemctl start bluetooth
rfkill unblock bluetooth
gpasswd -a 'logname' lp

Então, como você executa pulseaudio -k , efetua logout e efetua login novamente para entrar no grupo lp (que fornece acesso ao bluetooth).

Agora, toque música no alto-falante interno do seu telefone e coloque o telefone no modo de pareamento.

Finalmente, mais uma vez como root run bluetoothctl , e dentro do utilitário, execute os seguintes comandos:

power on
scan on
pair xx:xx:xx:xx:xx:xx
[confirm pin]
scan off
connect xx:xx:xx:xx:xx:xx
trust xx:xx:xx:xx:xx:xx

Neste ponto, se as coisas estiverem funcionando, o telefone parará de tocar no alto-falante e você verá uma nova entrada no aplicativo pavucontrol .

Note que o comando trust é necessário se você quiser que seu telefone se conecte automaticamente quando estiver ao alcance, sem a necessidade de executar uma cópia de bt-agent para autorizar o acesso do telefone ao seu som. Caso contrário, você precisará iniciar todas as conexões do seu computador, seja com o comando connect em bluetoothctl ou com um comando como este:

dbus-send --system --type=method_call --dest=org.bluez \
    /org/bluez/hci0/dev_xx_xx_xx_xx_xx_xx org.bluez.Device1.Connect
    
por 24.07.2017 / 10:16