Tento conectar meu Ubuntu 23.10 a uma TV LG C2 para enviar o som do LG para o Ubuntu; o mesmo funciona bem com o meu iPhone, que reproduz algumas músicas através dos alto-falantes conectados ao Ubuntu. Eu uso bluetoothctl
:
devices Paired
Device 20:28:BC:81:F8:D9 [LG] webOS TV OLED55C22LB
connect 20:28:BC:81:F8:D9
Attempting to connect to 20:28:BC:81:F8:D9
[CHG] Device 20:28:BC:81:F8:D9 Connected: yes
Connection successful
[CHG] Device 20:28:BC:81:F8:D9 ServicesResolved: yes
mas não consigo ver no menu "Dispositivo Bluetooth" da LG meu Ubuntu como alto-falante.
O que devo fazer para resolver isso?
Na verdade, para o iPhone emitir áudio para Bluetooth, primeiro tive que especificar que o alvo da conexão Bluetooth (ou seja, o computador) é um alto-falante.
PS: Eu uso pipewire, pipewire-pulse e wireplumber que funcionam bem
info 20:28:BC:81:F8:D9
Device 20:28:BC:81:F8:D9 (public)
Name: LG TV[[LG] webOS TV OLED55C22LB
Alias: LG TV[[LG] webOS TV OLED55C22LB
Class: 0x0008243c (533564)
Icon: audio-card
Paired: yes
Bonded: yes
Trusted: yes
Blocked: no
Connected: yes
LegacyPairing: no
UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: LG Electronics (0000feb9-0000-1000-8000-00805f9b34fb)
Modalias: bluetooth:v0046p1200d1436
ManufacturerData Key: 0x00c4 (196)
ManufacturerData Value:
02 34 15 13 17 fd 80 .4.....
Podemos definir a classe do dispositivo manualmente:
Cole o seguinte em
/etc/systemd/system/bluetooth-class-askubuntu-1504191-1004020.service
:sudo systemctl enable --now bluetooth-class-askubuntu-1504191-1004020.service
Se examinarmos a nova classe de dispositivo, veremos que isso significa que sua classe de serviço é Renderização e Áudio, sua classe de dispositivo principal é Áudio/Vídeo e sua classe de serviço secundária é Alto-falante. Extraí os números do meu alto-falante Bluetooth Logitech, então seu computador fingirá ser o mesmo.
A configuração normal é
0x7C010C
, o que significa que sua classe de serviço é Renderização, Captura, Transferência de objetos, Áudio e Telefonia, sua classe de dispositivo principal é Computador e sua classe de serviço secundária é Laptop. Sua TV LG irá pular dispositivos de classe de informática e mostrar apenas dispositivos de classe de alto-falante:Class = 0x240414
A configuração/etc/bluetooth/main.conf
não funciona porque não define todos os bits. Os dispositivos variam no quanto eles se importam. O Android não se importa nem um pouco, e as TVs podem precisar de alguns ou de todos os bits configurados corretamente. Quando editei aquele arquivo, apenas a parte maior/menor foi0x0414
respeitada de alguma forma, e isso só depois de desabilitar todos os perfis (que também adicionam seus próprios bits à classe) nos parâmetros da linha de comando bluetooth.service. Pode haver uma opção para definir a classe de serviço0x24
, mas é preciso muita depuração.