我正在运行 Debian Jessie 8.2。我的机器上连接了一个蓝牙 USB 适配器。
我运行sudo bluetoothctl -a
然后执行以下操作:
[NEW] Controller 5C:F3:70:6B:57:60 debian [default]
Agent registered
[bluetooth]# scan on
Discovery started
[CHG] Controller 5C:F3:70:6B:57:60 Discovering: yes
[bluetooth]# devices
[NEW] Device 08:DF:1F:A7:B1:7B Bose Mini II SoundLink
[bluetooth]# pair 08:DF:1F:A7:B1:7B
Attempting to pair with 08:DF:1F:A7:B1:7B
[CHG] Device 08:DF:1F:A7:B1:7B Connected: yes
[CHG] Device 08:DF:1F:A7:B1:7B UUIDs:
0000110b-0000-1000-8000-00805f9b34fb
0000110c-0000-1000-8000-00805f9b34fb
0000110e-0000-1000-8000-00805f9b34fb
0000111e-0000-1000-8000-00805f9b34fb
00001200-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:A7:B1:7B Paired: yes
Pairing successful
[CHG] Device 08:DF:1F:A7:B1:7B Connected: no
[bluetooth]# trust 08:DF:1F:A7:B1:7B
[CHG] Device 08:DF:1F:A7:B1:7B Trusted: yes
Changing 08:DF:1F:A7:B1:7B trust succeeded
[bluetooth]# connect 08:DF:1F:A7:B1:7B
Attempting to connect to 08:DF:1F:A7:B1:7B
Failed to connect: org.bluez.Error.Failed
但是我能以这种方式连接到我的 iPhone。为什么我无法连接到 Bose Mini II SoundLink 扬声器?
答案1
这可能是由于pulseaudio-module-bluetooth
未安装该软件包造成的。如果缺少则安装它,然后重新启动pulseaudio。
sudo apt install pulseaudio-module-bluetooth
pulseaudio -k
pulseaudio --start
如果问题不是由于缺少软件包造成的,那么这种情况下的问题是 PulseAudio 没有跟上。此问题的常见解决方案是重新启动 PulseAudio。请注意,当 PulseAudio 作为用户运行时,以 root 身份运行 bluetoothctl 是完全可以的。重新启动 PulseAudio 后,重试连接。无需重复配对。
仅当上述内容对您不起作用时才继续尝试第二部分:
如果重启 PulseAudio 不起作用,则需要加载 module-bluetooth-discover。
sudo pactl load-module module-bluetooth-discover
可以将相同的加载模块命令添加到/etc/pulse/default.pa
.如果仍然不起作用,或者您正在使用 PulseAudio 的系统范围模式,还请加载以下 PulseAudio 模块(同样可以通过 default.pa 或 system.pa 加载这些模块):
module-bluetooth-policy
module-bluez5-device
module-bluez5-discover
答案2
在配对设备之前先尝试信任该设备。
我在尝试将 AirPods 与 Ubuntu 16.04 配对时遇到了同样的错误。
在 bluetoothctl 和 sudo 我得到
Attempting to pair with XX:XX:XX:XX:XX:XX
Failed to pair: org.bluez.Error.AuthenticationCanceled
Attempting to connect to XX:XX:XX:XX:XX:XX
Failed to connect: org.bluez.Error.Failed
现在这就是我尝试过的(全面进展)
$ sudo bluetoothctl
[bluetooth]# power on
[bluetooth]# agent on
[bluetooth]# default-agent
[bluetooth]# scan on
[NEW] Device XX:XX:XX:XX:XX:XX David's AirPods
[bluetooth]# scan off
[bluetooth]# trust XX:XX:XX:XX:XX:XX
[bluetooth]# pair XX:XX:XX:XX:XX:XX
Attempting to pair with XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes
[CHG] Device XX:XX:XX:XX:XX:XX UUIDs: ...
[CHG] Device XX:XX:XX:XX:XX:XX UUIDs: ...
[CHG] Device XX:XX:XX:XX:XX:XX UUIDs: ...
[CHG] Device XX:XX:XX:XX:XX:XX UUIDs: ...
[CHG] Device XX:XX:XX:XX:XX:XX UUIDs: ...
[CHG] Device XX:XX:XX:XX:XX:XX UUIDs: ...
[CHG] Device XX:XX:XX:XX:XX:XX UUIDs: ...
[CHG] Device XX:XX:XX:XX:XX:XX UUIDs: ...
[CHG] Device XX:XX:XX:XX:XX:XX Paired: yes
Pairing successful
[CHG] Device XX:XX:XX:XX:XX:XX Connected: no
[bluetooth]# connect XX:XX:XX:XX:XX:XX
Attempting to connect to XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes
Connection successful
[bluetooth]# quit
现在,AirPods 在我的 iPhone 和 Ubuntu 之间完美配合。
答案3
这个程序对我有用,谢谢。
补充评论:
我试图添加蓝牙扬声器,这是我收到的错误消息,
[NEW] Device FC:58:FA:B9:BF:A1 Anker A7910
[bluetooth]# connect FC:58:FA:B9:BF:A1
Attempting to connect to FC:58:FA:B9:BF:A1
[CHG] Device FC:58:FA:B9:BF:A1 Connected: yes
Failed to connect: org.bluez.Error.Failed
[CHG] Device FC:58:FA:B9:BF:A1 Connected: no
[CHG] Device FC:58:FA:B9:BF:A1 Connected: yes
[CHG] Device FC:58:FA:B9:BF:A1 Connected: no
我取下了设备,然后重复大卫·荣格分享的所有陡峭动作。
这是现在的样子:
[Anker A7910]# info FC:58:FA:B9:BF:A1
Device FC:58:FA:B9:BF:A1
Name: Anker A7910
Alias: Anker A7910
Class: 0x260404
Icon: audio-card
Paired: yes
Trusted: yes
Blocked: no
Connected: yes
LegacyPairing: yes
UUID: Serial Port (00001101-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-800
再次感谢
答案4
渴望发表评论,因此写下答案以使他人从观察中受益:
就我而言,Ubuntu 17.04,只需安装 bluez ( sudo apt-get install bluez
) 即可。我不需要任何包裹pulseaudio
。我刚刚按照 David Jung 的回答第一次连接了 JBL 蓝牙耳机。确保耳机刚刚开机 - 基本上已设置为可发现模式。
此外,为了重新连接(例如重新启动后),只需调用bluetoothctl -a
然后连接即可。如果您的窗口管理器中有一个小程序,那么当然可以从那里进行连接,否则命令行界面是bluetoothctl -a
.不要忘记devices
在菜单中发出命令sudo bluetoothctl -a
以确保您的设备可用。如果设备列表为空,请首先遵循@David Jung 的答案。
确保服务正在运行。检查sudo systemctl status bluetooth.service
和sudo systemctl status bluetooth.target
。两者都应该处于活动状态并已加载!有时,在 bluetoothctl -a 起作用之前重新启动这两个服务。我在 sudo 权限下执行了所有命令,只是为了避免任何漏洞。
一个有用的实用程序是btmon
监控连接或配对时到底发生了什么,或者与蓝牙命令相关的任何事情。