我正在尝试配对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 中选择蓝牙设备并调整声音。之后我的设备连接并播放音频。