在 Fedora 上通过蓝牙配对 Bose QC 35

在 Fedora 上通过蓝牙配对 Bose QC 35

我正在使用 Gnome Shell 运行 Fedora 24。我尝试通过蓝牙配对我的新 Bose QuietComfort 35。

我开始使用 Gnome 界面。不幸的是,这种联系似乎并不成立。它显示为不断连接/断开:

https://youtu.be/eUZ9D9rGUZY

我的下一步是使用命令行执行一些检查。首先,我检查蓝牙服务是否正在运行:

$ sudo systemctl status bluetooth
● bluetooth.service - Bluetooth service
   Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since dim. 2016-06-26 11:19:24 CEST; 14min ago
     Docs: man:bluetoothd(8)
 Main PID: 932 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 512)
   Memory: 2.1M
      CPU: 222ms
   CGroup: /system.slice/bluetooth.service
           └─932 /usr/libexec/bluetooth/bluetoothd

juin 26 11:19:24 leonard systemd[1]: Starting Bluetooth service...
juin 26 11:19:24 leonard bluetoothd[932]: Bluetooth daemon 5.40
juin 26 11:19:24 leonard bluetoothd[932]: Starting SDP server
juin 26 11:19:24 leonard bluetoothd[932]: Bluetooth management interface 1.11 initialized
juin 26 11:19:24 leonard bluetoothd[932]: Failed to obtain handles for "Service Changed" characteristic
juin 26 11:19:24 leonard systemd[1]: Started Bluetooth service.
juin 26 11:19:37 leonard bluetoothd[932]: Endpoint registered: sender=:1.68 path=/MediaEndpoint/A2DPSource
juin 26 11:19:37 leonard bluetoothd[932]: Endpoint registered: sender=:1.68 path=/MediaEndpoint/A2DPSink
juin 26 11:20:26 leonard bluetoothd[932]: No cache for 08:DF:1F:DB:A7:8A

然后,我尝试遵循一些来自 Archlinux wiki 的解释没有成功。配对失败配对失败:org.bluez.Error.AuthenticationFailed:

$ sudo bluetoothctl 
[NEW] Controller 00:1A:7D:DA:71:05 leonard [default]
[NEW] Device 08:DF:1F:DB:A7:8A Bose QuietComfort 35
[NEW] Device 40:EF:4C:8A:AF:C6 EDIFIER Luna Eclipse
[bluetooth]# agent on
Agent registered
[bluetooth]# scan on
Discovery started
[CHG] Controller 00:1A:7D:DA:71:05 Discovering: yes
[CHG] Device 08:DF:1F:DB:A7:8A RSSI: -77
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000febe-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A RSSI: -69
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000febe-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000110d-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000110f-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 00001130-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000112e-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 00001108-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 00001131-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 00000000-deca-fade-deca-deafdecacaff
[bluetooth]# devices
Device 08:DF:1F:DB:A7:8A Bose QuietComfort 35
Device 40:EF:4C:8A:AF:C6 EDIFIER Luna Eclipse
[CHG] Device 08:DF:1F:DB:A7:8A RSSI: -82
[CHG] Device 08:DF:1F:DB:A7:8A RSSI: -68
[CHG] Device 08:DF:1F:DB:A7:8A RSSI: -79
[bluetooth]# trust 08:DF:1F:DB:A7:8A
Changing 08:DF:1F:DB:A7:8A trust succeeded
[bluetooth]# pair 08:DF:1F:DB:A7:8A
Attempting to pair with 08:DF:1F:DB:A7:8A
[CHG] Device 08:DF:1F:DB:A7:8A Connected: yes
Failed to pair: org.bluez.Error.AuthenticationFailed
[CHG] Device 08:DF:1F:DB:A7:8A Connected: no

我尝试禁用 SSPMode 但似乎没有效果:

$ sudo hciconfig hci0 sspmode 0

当我使用 bluetoothctl 时,journalctl 会记录以下内容:

juin 26 11:37:21 leonard sudo[4348]: lpellegr : TTY=pts/2 ; PWD=/home/lpellegr ; USER=root ; COMMAND=/bin/bluetoothctl
juin 26 11:37:21 leonard audit[4348]: USER_CMD pid=4348 uid=1000 auid=4294967295 ses=4294967295 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='cwd="/home/lpellegr" cmd="bluetoothctl" terminal=pt
juin 26 11:37:21 leonard audit[4348]: CRED_REFR pid=4348 uid=0 auid=4294967295 ses=4294967295 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:setcred grantors=pam_env,pam_fprintd acct="roo
juin 26 11:37:21 leonard sudo[4348]: pam_systemd(sudo:session): Cannot create session: Already occupied by a session
juin 26 11:37:21 leonard audit[4348]: USER_START pid=4348 uid=0 auid=4294967295 ses=4294967295 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:session_open grantors=pam_keyinit,pam_limits,
juin 26 11:37:21 leonard sudo[4348]: pam_unix(sudo:session): session opened for user root by (uid=0)
juin 26 11:38:06 leonard bluetoothd[932]: No cache for 08:DF:1F:DB:A7:8A

不幸的是,我不明白输出。欢迎任何想法或帮助。我很迷失。

我使用的蓝牙接收器是 CSL-Computer 的 USB 适配器。 Bluetoothctl 版本是 5.40。我正在运行内核 4.5.7-300.fc24.x86_64。

以下是我的蓝牙适配器支持的功能:

hciconfig -a hci0 features
hci0:   Type: BR/EDR  Bus: USB
    BD Address: 00:1A:7D:DA:71:05  ACL MTU: 310:10  SCO MTU: 64:8
    Features page 0: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87
        <3-slot packets> <5-slot packets> <encryption> <slot offset> 
        <timing accuracy> <role switch> <hold mode> <sniff mode> 
        <park state> <RSSI> <channel quality> <SCO link> <HV2 packets> 
        <HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme> 
        <power control> <transparent SCO> <broadcast encrypt> 
        <EDR ACL 2 Mbps> <EDR ACL 3 Mbps> <enhanced iscan> 
        <interlaced iscan> <interlaced pscan> <inquiry with RSSI> 
        <extended SCO> <EV4 packets> <EV5 packets> <AFH cap. slave> 
        <AFH class. slave> <LE support> <3-slot EDR ACL> 
        <5-slot EDR ACL> <sniff subrating> <pause encryption> 
        <AFH cap. master> <AFH class. master> <EDR eSCO 2 Mbps> 
        <EDR eSCO 3 Mbps> <3-slot EDR eSCO> <extended inquiry> 
        <LE and BR/EDR> <simple pairing> <encapsulated PDU> 
        <non-flush flag> <LSTO> <inquiry TX power> <EPC> 
        <extended features> 
    Features page 1: 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00

该配对与 EDIFIER Luna Eclipse 扬声器配合良好。我怀疑这个问题确实与我尝试配置的耳机有关。

答案1

我也有这些耳机,还有一台运行 Fedora 24 的便携式笔记本电脑。在 IRC 上与一位 Bluez 开发人员聊天后,我的工作顺利进行了。以下是我发现的。 (请注意,我对蓝牙知之甚少,因此我可能使用了不正确的术语。)

耳机支持(或者至少说支持)蓝牙 LE,但不支持 LE 配对。 Bluez 尚不支持此功能,并且除了在配置文件中静态设置外,无法设置支持的 BT 模式。不过,您可以通过普通蓝牙使用耳机。这正是 Bluez 4 工作的原因;它并不真正支持 LE。

因此,创建/etc/bluetooth/main.conf。 Fedora 24 没有附带此文件,因此请从以下位置获取副本上游,找到包含的行

#ControllerMode = dual

并将其更改为:

ControllerMode = bredr

或创建一个仅包含以下内容的新文件:

[General]
ControllerMode = bredr

然后重新启动蓝牙并配对。 (我通过 bluetoothctl 手动完成此操作,但仅使用蓝牙管理器就可以了。)

现在,这对我来说已经奏效了,但如果您不强制 pulseaudio 使用 A2DP-Sink 协议,耳机会出于某种原因宣布您有来电。但是,我的鼠标需要蓝牙 LE,所以我进去并移除了 ControllerMode 线。而且……耳机和鼠标仍然可以工作。我想一旦它们配对,一切都会好起来。

答案2

我阅读了您的特定耳机,它们使用近场通信 (NFC) 来促进配对,这一点在蓝兹5.3,虽然,它提到至少一个博客“新键盘内置了 NFC,但是不幸的是 Gnu/Linux 还不能很好地支持 NFC。尽管 Linux 内核内置了 NFC 支持,Gnome 和 KDE 都不是对此没有任何支持,并且我的 Fedora 20 存储库中支持 NFC 的应用程序数量几乎为零。 NFC 无法帮助我配对设备,因此我们需要以老式方式进行......”那么,这让我们回到您的方法。

然而,布鲁兹5.3 不支持与使用 PIN 码进行配对的设备(例如 Bose 耳机)进行配对。
有一个错误报告来自以前的版本,在另一个发行版上。因此,虽然 Fedora 上没有专门报道这一点,Bluez 官方网站至少从我所看到的来看,没有具体提及修复。

所以不支持该功能;至少现在这就是答案。

此外,正如您所怀疑的,可能还存在其他问题,例如需要特定的专有驱动程序,除非您已经排除了这一点(即通过在 OSX 或 Windows 或它们支持的任何设备上测试耳机类兼容)。我真的非常怀疑情况确实如此,或者它给了你或其他人一些可以跳板的东西。

答案3

如果这对某人有帮助,在我的 ubuntu 16.04 中实际尝试上述所有内容后,最后,通过“Bose Connect 应用程序”(在我的情况下为 Android)进行连接非常简单。我使用blueman做到了这一点,最后我能够配对耳机。

就我而言,我有 bluez 5.37v、blueman 2.0.4,最后我不需要对默认的 /etc/bluetooth/main.conf 进行任何更改,默认的“ControllerMode”设置为双重工作了。

对我有用的步骤是:

1.- 打开应用程序并选择连接新设备或类似设备的选项。 (我不记得确切的名字了) 2.- 从blueman 搜索一个新设备。 3.- 找到耳机后,我就可以毫无问题地配对它们并选择工作模式。

如果没有第一步,我就无法将它们配对。

我花了很长时间才找到如何做,但是一旦你知道如何做,做起来就很容易了。

答案4

几天前我还买了 Bose QC 35。在遇到一些最初的问题后,我设法让它在 Debian、ALSA 和 bluez 4.x 上运行

apt-get install bluetooth
apt-get install bluez-alsa
apt-get install blueman

安装这些包后,仍然无法运行。问题出在 dbus 权限上。我通过将我的用户(uid 1000)添加到蓝牙组来解决这个问题,即:

usermod -a -G bluetooth martin

之后一切正常,耳机每次启动时都会自动与我的笔记本电脑配对

相关内容