我可以在 Linux 中添加并连接蓝牙扬声器(UE BOOM 扬声器;此答案中的一些详细信息这里)。此时,它已配对并可信任并且可以完美运行。
问题是,几乎每次注销和每次重新启动后,蓝牙扬声器都不会出现在可以选择的输出设备列表中。pavucontrol
或者在面板小程序我已经安装在这个 Mint Xfce 中了。
如果扬声器断开连接并被另一台机器或电话使用,也会发生同样的情况。
它仍然存在于蓝牙设置的设备列表中,但已被禁用且无法启用
在极少数情况下,设备在 中被标记为“软阻止” sudo rfkill list
。在这种情况下,我可以使用 解锁它sudo rfkill unblock bluetooth
,有时这已经足够了,但在大多数情况下那些案例还不够(我必须手动连接)。但在大多数情况下全部情况(即:当设备可见但未连接时),它是不是被阻止。
什么在所有情况下都有效
(但我想避免在每次重新启动/登录后执行此操作):
- 从 Xfce 蓝牙设置中完全删除设备,
- 按下扬声器的蓝牙按钮(图像),
- 让笔记本电脑再次找到 UE BOOM 扬声器。 (在大多数情况下,这足以让扬声器自动连接并出现在
pavucontrol
面板小程序中。在某些情况下,sudo rfkill unblock bluetooth
需要该命令才能让计算机看到扬声器。)
因此,这里似乎有两个问题可能会或可能不会在同一场合发生:
扬声器被“软屏蔽”
可以看到扬声器但没有连接
这个问题不是 Ubuntu、Xfce 或内核特有的,我在 Ubuntu Gnome、KDE-neon 和 Solus(Gnome 和 Budgie)中以相同的术语看到过它。
更改#AutoEnable=false
为AutoEnable=true
没有/etc/bluetooth/main.conf
帮助。
我遇到这个问题的系统:
Linux Mint 18.2 Xfce
Ubuntu-Gnome 17.04
KDE-neon(基于 ubuntu-16.04),
Solus(侏儒和虎皮鹦鹉)
Ubuntu 17.10
答案1
首先:确保没有其他设备(例如智能手机或笔记本电脑)连接到同一个 USB 外部设备。
我认为在这个问题下提及我发现的实际解决方案是正常的——或者更准确地说是问题消失的实际情况——这可能会揭示问题到底是什么(或不是)。
所以 - 在 Linux Mint 18.2 Xfce、Ubuntu-Gnome(17.04,如果我没记错的话)、KDE-neon(我认为基于 ubuntu-16.04)和 Solus(Gnome 和 Budgie,滚动版本)中看到这个问题之后),我可以确认Ubuntu 16.04 本身(“Ubuntu Desktop”,又名 Unity)不受此影响。
添加并连接后,扬声器蓝牙设备就会被记住,并且在开机时会自动连接,无需事先或进一步处理。
只需要在声音设置中选择即可。
就是这样,我不知道该得出什么结论,除了在关键情况下建议使用最中心的分布。
更新〜不受此问题影响的其他系统:
Linux Mint 18.3 KDE
Linux Mint 18.3 伴侣
出现此问题的系统上的工作原理:
在这种情况下,运行sudo rfkill list
给出Soft blocked: yes
,可以使用sudo rfkill unblock bluetooth
或 来解锁rfkill unblock bluetooth
。
如果这不起作用(甚至在任何情况下),那么这样做可能是个好主意:
systemctl enable bluetooth.service
systemctl start bluetooth.service
(如..所示这里;第一个命令将多次要求输入密码)
UE BOOM2 设备可以是重置同时长按电源按钮和降低音量按钮(直到听到声音并且设备关闭),这与上述内容结合使用可能会有所帮助。
答案2
UE Boom 2 扬声器使用低功耗蓝牙 (LE) 定期报告其功率水平,并在关机时使用手机应用程序启用远程开机功能。
经历了与OP相同的问题,我相信这就是问题的原因......无论出于何种原因,Bluez尝试使用LE而不是BR/EDR(普通蓝牙)连接到扬声器并立即失败。日志消息通常与 GATT 相关,并且作为附加证据,当设备断电时,它仍会尝试连接,但不会返回预期的“主机已关闭”消息,因为 LE 始终开启且可用。它实际上并未连接到音频接收器,并且大多数时候报告“资源不可用”。
所以...在配对过程中,配置文件记录了设备支持LE。为了解决这个问题,我干脆删除了这个支持属性。从那以后我就没有遇到过连接问题(除非扬声器已经连接到我的手机,但这是另一个问题)即使重新启动或注销时也是如此。
配对扬声器后。关闭蓝牙:
sudo rfkill block bluetooth
以 root 身份在编辑器 (nano/vim) 中打开文件:
/var/lib/bluetooth/<bluetooth-adapter-mac-address>/<speaker-mac-address>/info
如果您不知道蓝牙适配器 mac 地址或扬声器 mac 地址,那么运行sudo grep -rnw '/var/lib/bluetooth/' -e 'UE'
应该会给您提示。如果您重命名了扬声器,请将字符串“UE”替换为名称。
在此文件中,您应该看到以下行:
SupportedTechnologies=BR/EDR;LE;
将其替换为:
SupportedTechnologies=BR/EDR;
保存文件。确保扬声器已关闭。启用蓝牙最好重新启动计算机 - 但重新启动蓝牙服务可能会起作用:
sudo rfkill unblock bluetooth
sudo systemctl restart bluetooth
现在,即使在重新启动和注销时,它也不应该再次使用 LE 连接。如果您出于某种原因重新配对设备,则此更改将会丢失。之前给出,我希望它也适用于任何寻求解决此问题的人......
在使用上面的文件进行更改之前,我使用了另一种尝试方法,但效率低得多的解决方案是使用以下命令禁用适配器上的 LE: sudo btmgmt le off - 其结果相同。