美文网首页
解决Linux无法连接蓝牙耳机Bose QuietComfort

解决Linux无法连接蓝牙耳机Bose QuietComfort

作者: 漫月者 | 来源:发表于2018-01-18 10:48 被阅读1359次

    切换到Arch也有一段时间了,一直在用的QC35也又一次遇到了蓝牙配对的问题。以前都是用Blueman,或者直接连接有线,但是问题只是被隐藏了,这次还是好好把这个问题解决了一下。

    问题描述

    Linux下连接蓝牙设备的方法可以参照Arch Wiki:Bluetooth,我使用的蓝牙设备是USB CSR8510蓝牙适配器,按页面说明安装好软件包后,启动蓝牙服务,进入bluetoothctl,耳机打开配对模式,scan on查找到我的耳机的MAC,pair 04:52:C7:5B:CB:65,出现问题:

    [bluetooth]# pair 04:52:C7:5B:CB:65
    Attempting to pair with 04:52:C7:5B:CB:65
    [CHG] Device 04:52:C7:5B:CB:65 Connected: yes
    Failed to pair: org.bluez.Error.AuthenticationFailed
    [CHG] Device 04:52:C7:5B:CB:65 Connected: no
    

    如果你在蓝牙设置界面进行配对尝试,不同桌面也有不同的错误提示,反正就是无法完成配对。如果使用Blueman等软件,有机会可以通过多次重试成功连接,但是问题还是间歇出现,并不能治本。

    问题解决

    百度是找不到什么好解决方案的,直接Google,不一会就找到了有用的解决方法,Pairing Bose QC 35 over Bluetooth on Fedora,问题上看基本就是我的问题,最高票的回答也很简单,QC35声称支持低功耗蓝牙(LE)但不支持低功耗模式下的配对,Bluez也还不支持明明配对一个LE设备,却要切换到BR模式来配对(大概是这个意思),除非你在配置文件里指定所有设备都应该工作在BR模式,所以打开配置文件/etc/bluetooth/main.conf(没有的话新建一个),找到下面的

      # Restricts all controllers to the specified transport. Default value
      # is "dual", i.e. both BR/EDR and LE enabled (when supported by the HW).
      # Possible values: "dual", "bredr", "le"
      # ControllerMode = dual
    

    将 # ControllerMode = dual改为ControllerMode = bredr,然后保存,对于新建的文档,直接输入下面的然后保存

    [General]
    ControllerMode = bredr
    

    然后重启bluetooth服务

    sudo systemctl restart bluetooth
    

    现在你应该能在bluetooth里愉快地配对了----才怪,你还需要删除以前的配对设置,否则会出现org.bluez.Error.AuthenticationRejected错误

    [bluetooth]# untrust 04:52:C7:5B:CB:65 
    [CHG] Device 04:52:C7:5B:CB:65 Trusted: no
    Changing 04:52:C7:5B:CB:65 untrust succeeded
    [bluetooth]# disconnect 04:52:C7:5B:CB:65 
    Attempting to disconnect from 04:52:C7:5B:CB:65
    Successful disconnected
    [bluetooth]# remove 04:52:C7:5B:CB:65 
    [DEL] Device 04:52:C7:5B:CB:65 Bose QuietComfort 35
    Device has been removed
    

    再次尝试配对,信任,连接,如果连接时出现Failed to connect: org.bluez.Error.Failed错误,那是你没装pulseaudio-bluetooth包,无法支持A2DP协议,装一个再试就可以了。
    成功连接后声音输出可能会默认走的是HSP/HFP,音质会极差,在音频设置里切换到A2DP就正常了。更多蓝牙音频设备的设置可以查看Arch Wiki:Bluetooth headset

    更多

    关于蓝牙协议可以查看百科,或者这里有简短的科普蓝牙协议分析(1)_基本概念
    关于这里bluetooth和QC35在配对时鸡同鸭讲的问题,给出解决问题的人也表示自己的蓝牙鼠标是LE,为了使用他后来把配置文件里的ControllerMode删掉了,但是耳机和鼠标都没受影响,他猜想可能配对后的设备是不受配置文件的影响的。

    相关文章

      网友评论

          本文标题:解决Linux无法连接蓝牙耳机Bose QuietComfort

          本文链接:https://www.haomeiwen.com/subject/vkpioxtx.html