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


26

我正在使用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扬声器搭配使用。我怀疑问题确实与我要配置的耳机有关。

Answers:


26

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

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

因此,创建/etc/bluetooth/main.conf。Fedora 24没有随附此文件,因此可以从Upstream获取副本,找到包含以下内容的行

#ControllerMode = dual

并将其更改为:

ControllerMode = bredr

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

[General]
ControllerMode = bredr

然后重新启动蓝牙并配对。(我是通过bluetoothctl手动完成的,但仅使用蓝牙管理器即可。)

现在,这对我来说很有用,尽管如果您不强迫Pulseaudio使用A2DP-Sink协议,则耳机会出于某种原因宣布您有来电。但是,我的鼠标需要Bluetooth LE,因此我进去并卸下了ControllerMode行。而且...耳机和鼠标仍然可以使用。我想一旦配对,一切就OK了。


我已经在指定文件中添加了您提到的行,但是当我重新启动蓝牙守护程序时,出现“解析/etc/bluetooth/main.conf失败:密钥文件不是以组开头”的信息。您是否正在使用5.40版的蓝牙守护程序?你有一行/etc/bluetooth/main.conf吗?
洛朗

1
我不得不[General]在网上添加群组。重新启动后,一切运行正常。非常感谢!
洛朗

啊,对不起,Fedora根本没有附带该文件,因此我直接从上游git提取了该文件并更改了其中一行。我什至没有想到要仔细寻找需要存在的其他环境。看起来就像是评论之海。我将编辑答案。
杰森·提比兹

这对我
有用

在Fedora 23上也对我有用,但我的问题仍然是音量,它比我的手机低很多,你们中有人吗?我还不得不将音频模式更改为A2DP接收器,除了耳机上出现奇怪的干扰。我对此表示感谢,也许@JasonTibbitts对此有所了解
Renato Mefi

3

我阅读了您的特定耳机,并且它们使用了近场通信(NFC)来促进配对,这是Bluez 5.3中特别提到的内容,尽管至少在一个博客中提到了“ NFC内置于新键盘中” ,但不幸的是Gnu / Linux尚未很好地支持NFC。尽管NFC支持内置在Linux内核中,但Gnome和KDE均不支持NFC,并且Fedora 20存储库中启用NFC的应用程序的数量最初为零。 NFC不会帮助我配对设备,因此我们需要以老式的方式进行操作……”然后,这使我们回到了您的方法上。

但是,Bluez 5.3不支持与使用PIN码进行配对的设备(例如Bose耳机)配对。在另一个发行版中,有以前版本
错误报告。因此,尽管未在Fedora上对此进行专门报道,但至少从我的观察中,Bluez官方网站并未特别提及修复程序。

因此不支持此功能。至少现在,这就是答案。

同样,正如您所怀疑的那样,可能还存在其他问题,例如需要特定的专有drvier,除非您已经排除了这种情况(例如,通过在OSX或Windows上测试兼容的耳机类或其支持的设备)。我真的非常怀疑是这种情况,或者它给您或其他东西带来了帮助。


因此,这里的其他一些答案已验证了较旧的操作系统和/或向后移植的bluez(4.99)版本上的至少一个有效设置,该版本可能还包含非默认的“非免费” Debian存储库中的软件包。你可以在Fedora尝试这个位置,在为4年前:) Fedora的土地
forgotstackxpassword

降级到您提到的版本似乎是一场噩梦。我尝试使用降级到5.39-1.fc24,sudo dnf downgrade bluez --allowerasing但它没有任何改变。
洛朗

我刚才提到过,因为下面提到它在Debian 4.99上是兼容的。否则,我完全不会建议您这样做,就像您说的Fedora完全不同一样。我坚持认为,只有手动配对后,它才能工作,另外,我没有合适的硬件(如这些耳机),并且可能不支持NFC和其他Blob。
forgotstackxpassword

啊,这是Jason Tibbitts的出色回答,很高兴您能正常使用,并且他附近有耳机和系统。
forgotstackxpassword

1

如果这对某人有帮助,请在实际尝试完我的ubuntu 16.04中上述所有内容后,最后,它非常简单,只需通过“ Bose Connect应用程序”(在我的情况下为Android)连接即可。我用blueman来做,最后我可以配对耳机了。

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

对我有用的步骤是:

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

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

我花了很多时间找到如何做的方法,但是一旦您知道如何做,就很容易做到。


这是对我有用的方法。我正在使用带有blueman和PulseAudio / pavucontrol的Arch Linux。我按照Arch Wiki中的常规步骤进行安装和故障排除,而您的技术对我来说是成功的。谢谢 !
DjebbZ

0

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

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

安装这些软件包后,它仍然无法正常工作。问题出在dbus权限上。我通过将用户(uid 1000)添加到蓝牙组来解决了该问题,即:

usermod -a -G bluetooth martin

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


它配对,但是连接是否还能保留很长时间?
phk

@phk-是的。它像一种魅力一样工作
Martin Vegter '16

您可以列出正在使用的GUI以及bluez的版本号(例如,在jessie [current stable]中为5.23-2 + b1。它可能有助于将解决方案移植到他的fedora设置上
forgotstackxpassword

@forgotstackxpassword-正如我在原始帖子中所说,我正在使用bluez 4.x(特别是版本4.99)并blueman作为gui。
Martin Vegter '16

谢谢,4.99有点具体。这是Wheezy的默认设置,所以我也想您正在使用旧的马stable。
forgotstackxpassword

0

我在Fedora 24上的QC35也遇到了同样的问题。我在这里尝试了一个自定义的bluez软件包:https : //copr.fedorainfracloud.org/coprs/npmccallum/jelling/packages/ :

# dnf copr enable npmccallum/jelling
# dnf install bluez-5.37-1.gatt.fc24

从5.40降级到修改后的5.37-1版本后,我可以通过以下方式手动配对耳机bluetoothctl(不幸的是GNOME蓝牙设置不起作用):

$ bluetoothctl
[bluetooth]# devices
Device 08:DF:xx:xx:xx:xx QC35
[bluetooth]# trust 08:DF:xx:xx:xx:xx 
[CHG] Device 08:DF:xx:xx:xx:xx Trusted: yes
Changing 08:DF:xx:xx:xx:xx trust succeede
[bluetooth]# pair 08:DF:xx:xx:xx:xx 
Attempting to pair with 08:DF:xx:xx:xx:xx
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 00000000-deca-fade-deca-deafdecacaff
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 00001108-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 0000180a-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 0000febe-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx Paired: yes
Pairing successful
[bluetooth]# connect 08:DF:xx:xx:xx:xx 
Attempting to connect to 08:DF:xx:xx:xx:xx
Connection successful
[QC35]# connect 08:DF:xx:xx:xx:xx 
Attempting to connect to 08:DF:xx:xx:xx:xx
[CHG] Device 08:DF:xx:xx:xx:xx RSSI is nil
Connection successful
[QC35]# info 08:DF:xx:xx:xx:xx 
Device 08:DF:xx:xx:xx:xx
    Name: QC35
    Alias: QC35
    Class: 0x240418
    Icon: audio-card
    Paired: yes
    Trusted: yes
    Blocked: no
    Connected: yes
    LegacyPairing: no
    UUID: Vendor specific           (00000000-deca-fade-deca-deafdecacaff)
    UUID: Serial Port               (00001101-0000-1000-8000-00805f9b34fb)
    UUID: Headset                   (00001108-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-8000-00805f9b34fb)
    UUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)
    UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
    UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
    UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
    UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
    UUID: Bose Corporation          (0000febe-0000-1000-8000-00805f9b34fb)
    Modalias: bluetooth:v009Ep400Cd0103

然后可以在GNOME声音设置中激活我的QC35。初始配对后,它可以正常工作,之后可以自动重新连接到我的笔记本电脑。

这个版本的bluez也可以与我的蓝牙鼠标和触控板一起使用。我不知道它起作用的确切原因。也许最新版本的bluez对蓝牙LE有某种回归(Jason Tibbitts的答案指出了这一点)?无论如何,希望这个答案能有所帮助。:)


这打破了我的Fedora 26,谢谢!::(
Diego Mora Cespedes

0

Ubuntu 16.04,Bose QC35:安装了“蓝牙适配器”软件,并且能够轻松连接。


对我来说,“ Ubuntu遇到内部错误”失败。
洛朗

0

我在Arch Linux上也遇到过同样的问题,这些是我必须要做的事情,运行“等效”命令对Linux发行版上的许多其他人很有帮助的可能性不大:

  • 安装软件包pulseaudio-bluetooth pulseaudio-alsa bluez bluez-libs bluez-utils 并重新启动 Pulseaudio(以防在安装蓝牙时它已经在运行):

    pulseaudio -k
    pulseaudio --start
    

    如果收到错误消息

    XDG_RUNTIME_DIR (/var/snips-audio-server) is not owned by us (uid 0), but by uid  
    <some UID (probably yours)>!
    

    那么您必须以非root用户身份/无用户身份运行这些命令sudo

  • btusb在我的情况下,必须加载模块,因此modprobe btusb每次您需要耳机或在启动时加载模块

  • 运行rfkill以查看您的蓝牙设备是否被软/硬阻止,如果被阻止则解除阻止
  • 检查蓝牙服务是否正在运行(例如,使用systemd,该命令可能类似于systemctl status bluetooth.service 用于内置音频高保真度的数字立体声输出...(a2dp接收器))

  • 如OP所述,可能必须根据此SE问题的答案中的建议配置进行调整,在这里您可以阅读以下解释:

    • 编辑/etc/bluetooth/main.conf:找到包含的行
      #ControllerMode = dual
      
      并将其更改为:
      ControllerMode = bredr
      
      或创建一个仅包含以下内容的新文件:
      [General]
      ControllerMode = bredr
      
      然后重新启动蓝牙并配对/连接(systemctl restart bluetooth.service或使用某些GUI前端将其关闭然后再打开)

GitHub上也有某人的指示(注意: 我不确定GitHub存储库中的这些更改会做什么(我花了足够的时间尝试使事情正常工作),因此请谨慎使用...我假设组更改可能只是从用户空间或这些行中的某项启用了蓝牙控制):

为了运行Bose QC35耳机蓝牙,请执行以下操作:

  • sudo pacman -Syu pulseaudio-alsa pulseaudio-bluetooth bluez bluez-libs bluez-utils
  • turn off bluetooth from your computer
  • sudo btmgmt ssp of
  • gpasswd -a YOUR_USER lp

如果您希望组更改而无需重新启动,则可以运行(如SE此处所述):

exec su -l $USER

使组更改立即生效而无需重新启动。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.