Problema ao usar o alto-falante Bluetooth SRS-XB40 no Debian Stretch

0

Estou tentando emparelhar um alto-falante portátil SRS-XB40 com o meu Esticar área de trabalho.

O alto-falante funciona bem em um laptop Mint usando a GUI de configuração.

Eu instalei o blueman. Como isso não funcionou, eu também atualizei o firmware-linux para a versão backport (20170823).

Hardware

A máquina é um Dell XPS 630i.

hciconfig -a
hci0:   Type: Primary  Bus: USB
        BD Address: 00:1C:26:DD:18:A9  ACL MTU: 1017:7  SCO MTU: 64:1
        UP RUNNING PSCAN 
        RX bytes:2607 acl:0 sco:0 events:153 errors:0
        TX bytes:1739 acl:0 sco:0 commands:125 errors:0
        Features: 0xff 0xfe 0x8d 0xfe 0x9b 0xf9 0x00 0x80
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
        Link policy: RSWITCH HOLD SNIFF 
        Link mode: SLAVE ACCEPT 
        Name: 'ChromeLinux_6529'
        Class: 0x1c0104
        Service Classes: Rendering, Capturing, Object Transfer
        Device Class: Computer, Desktop workstation
        HCI Version: 2.0 (0x3)  Revision: 0x214c
        LMP Version: 2.0 (0x3)  Subversion: 0x41f4
        Manufacturer: Broadcom Corporation (15)

Software

Linux 4.15.0-0.bpo.2-amd64 #1 SMP Debian 4.15.11-1~bpo9+1 (2018-04-07) x86_64 GNU/Linux
firmware-amd-graphics 20170823-1~bpo9+1
firmware-linux 20170823-1~bpo9+1
firmware-linux-nonfree 20170823-1~bpo9+1
firmware-misc-nonfree 20170823-1~bpo9+1
bluez 5.43-2+deb9u1
bluez-obexd 5.43-2+deb9u1
blueman 2.0.4-1

inicialização do serviço bluetooth

O serviço de bluetooth é iniciado corretamente.

# systemctl status bluetooth
● bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2018-05-07 13:47:15 CEST; 33min ago
     Docs: man:bluetoothd(8)
 Main PID: 679 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/bluetooth.service
           └─679 /usr/lib/bluetooth/bluetoothd --noplugin=sap

mai 07 13:47:15 bouzin bluetoothd[679]: Excluding (cli) sap
mai 07 13:47:15 bouzin systemd[1]: Started Bluetooth service.
mai 07 13:47:15 bouzin bluetoothd[679]: Bluetooth management interface 1.14 initialized
mai 07 13:47:15 bouzin bluetoothd[679]: Failed to obtain handles for "Service Changed" characteristic
mai 07 13:50:14 bouzin bluetoothd[679]: Endpoint registered: sender=:1.41 path=/MediaEndpoint/A2DPSource
mai 07 13:50:14 bouzin bluetoothd[679]: Endpoint registered: sender=:1.41 path=/MediaEndpoint/A2DPSink

Pelo que eu recolhi, o

Failed to obtain handles for "Service Changed" characteristic

aviso deve ser inofensivo.

Configuração do dispositivo

Eu posso "configurar" o alto-falante no applet blueman, mas não consigo parear com ele.

Para parear, pressiono o botão "pareamento" no alto-falante para colocá-lo no modo de pareamento e, em seguida, peço ao applet para emparelhar. Eu recebo um erro.

Usando o bluetoothctl, diz:

Failed to pair: org.bluez.Error.AuthenticationFailed

Velho blueman bug

Eu recebi esses erros nos registros:

mai 07 14:23:30 bouzin bluetoothd[679]: vendor 0x0 product: 0x0
mai 07 14:23:30 bouzin bluetoothd[679]: Agent /org/blueman/agent/global replied with an error: org.freedesktop.DBus.Python.KeyError, Traceback (most recent call last):
                                          File "/usr/lib/python3/dist-packages/dbus/service.py", line 707, in _message_cb
                                            retval = candidate_method(self, *args, **keywords)
                                          File "/usr/lib/python3/dist-packages/blueman/main/applet/BluezAgent.py", line 167, in RequestPinCode
                                            self.ask_passkey(device, dialog_msg, notify_msg, False, self.notifications, ok, err)
                                          File "/usr/lib/python3/dist-packages/blueman/main/applet/BluezAgent.py", line 122, in ask_passkey
                                            alias = self.get_device_alias(device_path)
                                          File "/usr/lib/python3/dist-packages/blueman/main/applet/BluezAgent.py", line 95, in get_device_alias
                                            name = props["Name"]
                                        KeyError: 'Name'

Este é um bug no blueman que foi corrigido em este commit . Não consigo atualizar para a versão testing / unstable, pois ela depende do Python 3.6, portanto, aplico a correção a /usr/lib/python3/dist-packages/blueman/main/applet/BluezAgent.py .

Nenhum agente disponível

Agora eu recebo:

mai 07 14:30:30 bouzin bluetoothd[4042]: vendor 0x0 product: 0x0
mai 07 14:30:30 bouzin bluetoothd[4042]: No agent available for request type 0
mai 07 14:30:30 bouzin bluetoothd[4042]: device_request_pin: Operation not permitted

De esta resposta , eu tento lançar

bluetoothctl -a

código PIN

Isso me deixa um pouco mais longe.

pair B8:D5:0B:05:A1:62
Attempting to pair with B8:D5:0B:05:A1:62
Request PIN code
[agent] Enter PIN code: 1324
Failed to pair: org.bluez.Error.AuthenticationFailed

Fico perguntando por um código PIN.

De esta resposta e comentários , devo inserir 0000.

Eu tenho um bom par de pares.

Na GUI, eu defino "confiança" no dispositivo e, agora, ele é aparentemente emparelhado automaticamente quando o alto-falante é ligado.

Coletor de áudio

De blueman, clico em "audio sink" e ouço um som de verificação vindo do alto-falante. blueman mostra estatísticas sobre a qualidade da conexão, o que é excelente.

Por algumas dezenas de segundos, o menu "perfil de áudio" não está esmaecido. Clico em "Reprodução de alta fidelidade (dissipador A2DP)".

Eu recebo uma mensagem de erro

Failed to change profile to a2dp_sink

Eu vi este bug do Debian mas não acho que seja o mesmo questão. Eu não estou usando gdm mas lightdm, e todos os processos pulseaudio pertencem ao meu usuário.

Claro, não vejo o alto-falante na lista de dispositivos de saída de áudio.

Eu não sei para onde ir a partir daqui.

Sei que a maioria dos parágrafos acima não está relacionada a esse último problema, mas gostaria de mantê-los aqui, esperando que eles forneçam informações úteis para pessoas com os mesmos problemas.

    
por Jérôme 07.05.2018 / 15:38

2 respostas

0

I saw this Debian bug but I don't think it is the same issue. I'm not using gdm but lightdm, and all pulseaudio processes belong to my user.

Bem, parece ser isso, afinal de contas. Eu apliquei a solução alternativa de esta resposta e finalmente consegui que o orador trabalhasse:

Edit the file:

/etc/pulse/default.pa

and comment out (with an # at the beginning of the line) the following line:

#load-module module-bluetooth-discover

now edit the file:

/usr/bin/start-pulseaudio-x11

and after the lines:

   if [ x"$SESSION_MANAGER" != x ] ; then
        /usr/bin/pactl load-module module-x11-xsmp "display=$DISPLAY session_manager=$SESSION_MANAGER" > /dev/null
    fi

add the following line:

/usr/bin/pactl load-module module-bluetooth-discover

Suponho que terei que repetir o procedimento após uma atualização desses arquivos.

    
por 08.05.2018 / 13:43
0

depois de logar eu corro este script como root "service bluetooth restart"

"pavucontrol". Então eu reinicio o dispositivo bluetooth. Eu seleciono o dispositivo bluetooth no pavucontrol e ajustei o som. Depois disso, meu dispositivo se conecta e reproduz áudio.

    
por 20.05.2018 / 03:49