在 Debian Stretch 上使用 SRS-XB40 蓝牙扬声器时出现问题

在 Debian Stretch 上使用 SRS-XB40 蓝牙扬声器时出现问题

我正在尝试配对SRS-XB40便携式扬声器与我的 Debian Stretch 桌面。

使用设置 GUI,扬声器在 Mint 笔记本电脑上运行良好。

我安装了蓝人。由于它不起作用,我还将固件 Linux 升级到了向后移植版本(20170823)。

硬件

该机器是戴尔 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)

软件

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

蓝牙服务启动

蓝牙服务正确启动。

# 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

根据我收集的信息,

Failed to obtain handles for "Service Changed" characteristic

警告应该是无害的。

设备设置

我可以在 blueman 小程序中“设置”扬声器,但无法与其配对。

要配对,我按下扬声器上的“配对”按钮将其置于配对模式,然后要求小程序进行配对。我收到一个错误。

使用 bluetoothctl,它说:

Failed to pair: org.bluez.Error.AuthenticationFailed

老蓝人虫

我在日志中收到这些错误:

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'

这是 blueman 中的一个错误,现已修复这次提交。我无法升级到测试/不稳定版本,因为它依赖于 Python 3.6,因此我将修复应用于/usr/lib/python3/dist-packages/blueman/main/applet/BluezAgent.py.

没有可用的代理

现在,我得到:

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

这个答案,我尝试启动

bluetoothctl -a

PIN码

这让我更进一步。

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

系统要求我提供 PIN 码。

这个答案和评论,我必须输入0000。

我得到了成功的配对。

在 GUI 中,我在设备上设置了“信任”,现在当扬声器打开时它显然会自动配对。

音频接收器

在 blueman 中,我单击“音频接收器”,我可以听到扬声器发出检查声音。 blueman 显示有关连接质量的统计数据,这非常好。

几十秒内,“音频配置文件”菜单不会变灰。我单击“高保真播放(A2DP 接收器)”。

我收到一条错误消息

Failed to change profile to a2dp_sink

我看见这个 Debian 错误但我不认为这是同一个问题。我没有使用 gdm,而是使用 lightdm,所有的pulseaudio 进程都属于我的用户。

当然,我在音频输出设备列表中没有看到扬声器。

我不知道从这里该去哪里。

我知道上面的大多数段落与最后一个问题无关,但我想将它们保留在这里,希望它们能为遇到相同问题的人提供有用的信息。

答案1

我看见这个 Debian 错误但我不认为这是同一个问题。我没有使用 gdm,而是使用 lightdm,所有的pulseaudio 进程都属于我的用户。

好吧,看来就是这样了。我应用了解决方法这个答案我终于让扬声器工作了:

编辑文件:

/etc/pulse/default.pa

并注释掉以下行(在行首添加#):

#load-module module-bluetooth-discover

现在编辑文件:

/usr/bin/start-pulseaudio-x11

并在行之后:

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

添加以下行:

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

我想升级这些文件后我必须重复该过程。

答案2

登录后,我以 root 身份运行此脚本“service bluetooth restart”

“帕武控制”。然后我重新启动蓝牙设备。我在 pavucontrol 中选择蓝牙设备并调整声音。之后我的设备连接并播放音频。

相关内容