Just some notes around the Bose QuietComfort 35.
bluetooth profiles supported by the headset:
Currently I can choose between pure Audio output (A2DP profile) in good quality, or hearing/listening (HFP/HSP profile) with lower quality. HFP in version 1.6 seems to also support better audio transport. The bluez5 implementation on Linux seems to support HFP v1.6 and HSP v1.2 (reference). Not sure how to see which version is used for communication with the headset.
“Hands-Free Profile (HFP) Version 1.6 adds optional support for wide band speech with the mSBC codec, a 16 kHz monaural configuration of the SBC codec mandated by the A2DP profile.”
pacmd >>> set-card-profile 2 a2dp_sink >>> set-card-profile 2 headset_head_unit [root@Гага́рин ~]# hcidump avdtp HCI sniffer - Bluetooth packet analyzer ver 5.43 device: hci0 snap_len: 1500 filter: 0x400 < AVDTP(s): Discover cmd: transaction 11 nsp 0x00 > AVDTP(s): Discover rsp: transaction 11 nsp 0x00 ACP SEID 3 - Audio Sink ACP SEID 1 - Audio Sink < AVDTP(s): All Capabilities cmd: transaction 12 nsp 0x00 ACP SEID 3 > AVDTP(s): All Capabilities rsp: transaction 12 nsp 0x00 Media Transport Media Codec - MPEG-2,4 AAC MPEG-2 AAC LC MPEG-4 AAC LC 8kHz 11.025kHz 12kHz 16kHz 22.05kHz 24kHz 32kHz 44.1kHz 48kHz 1 2 Channels 320000bps VBR Content Protection 02 00 Delay Reporting < AVDTP(s): All Capabilities cmd: transaction 13 nsp 0x00 ACP SEID 1 > AVDTP(s): All Capabilities rsp: transaction 13 nsp 0x00 Media Transport Media Codec - SBC 16kHz 32kHz 44.1kHz 48kHz Mono DualChannel Stereo JointStereo 4 8 12 16 Blocks 4 8 Subbands SNR Loudness Bitpool Range 2-53 Content Protection 02 00 Delay Reporting < AVDTP(s): Set config cmd: transaction 14 nsp 0x00 ACP SEID 1 - INT SEID 1 Media Transport Media Codec - SBC 44.1kHz JointStereo 16 Blocks 8 Subbands Loudness Bitpool Range 2-53 > AVDTP(s): Set config rsp: transaction 14 nsp 0x00 < AVDTP(s): Open cmd: transaction 15 nsp 0x00 ACP SEID 1 > AVDTP(s): Open rsp: transaction 15 nsp 0x00
[root@спутник ~]# dnf install pulseaudio-module-bluetooth.x86_64 # now restart your windowmanager, system, or ensure that # the bluetooth module is loaded in pulseaudio [root@спутник ~]# systemctl status bluetooth.service [root@спутник ~]# bluetoothctl [NEW] Controller 3C:77:E6:ED:1A:7F sputnik [default] [NEW] Device F4:F9:51:C1:BC:90 F4-F9-51-C1-BC-90 [NEW] Device 04:52:C7:33:D3:8F chorn Bose QuietComfort 35 [bluetooth]# show Controller 3C:77:E6:ED:1A:7F Name: sputnik Alias: sputnik Class: 0x0c010c Powered: yes Discoverable: no Pairable: yes UUID: Headset AG (00001112-0000-1000-8000-00805f9b34fb) UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb) UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb) UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb) UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb) UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb) UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb) UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb) Modalias: usb:v1D6Bp0246d052B Discovering: no [bluetooth]# trust 04:52:C7:33:D3:8F Changing 04:52:C7:33:D3:8F trust succeeded [bluetooth]# connect 04:52:C7:33:D3:8F Attempting to connect to 04:52:C7:33:D3:8F [CHG] Device 04:52:C7:33:D3:8F Connected: yes Failed to connect: org.bluez.Error.Failed [CHG] Device 04:52:C7:33:D3:8F Connected: no # At this point I started the bose app on the android phone, # and did set the headphone into 'bluetooth pairing mode' # in moving the switch right [bluetooth]# discoverable yes Changing discoverable on succeeded [CHG] Controller 3C:77:E6:ED:1A:7F Discoverable: yes [bluetooth]# scan on Discovery started [CHG] Controller 3C:77:E6:ED:1A:7F Discovering: yes # removing all devices, adding them new [bluetooth]# devices Device F4:F9:51:C1:BC:90 F4-F9-51-C1-BC-90 Device 04:52:C7:33:D3:8F chorn Bose QuietComfort 35 [bluetooth]# remove F4:F9:51:C1:BC:90 [DEL] Device F4:F9:51:C1:BC:90 F4-F9-51-C1-BC-90 Device has been removed [NEW] Device F4:F9:51:C1:BC:90 F4-F9-51-C1-BC-90 [bluetooth]# remove 04:52:C7:33:D3:8F [DEL] Device 04:52:C7:33:D3:8F chorn Bose QuietComfort 35 Device has been removed [NEW] Device 04:52:C7:33:D3:8F chorn Bose QuietComfort 35 [bluetooth]# trust 04:52:C7:33:D3:8F [CHG] Device 04:52:C7:33:D3:8F Trusted: yes Changing 04:52:C7:33:D3:8F trust succeeded [bluetooth]# connect 04:52:C7:33:D3:8F Attempting to connect to 04:52:C7:33:D3:8F [CHG] Device 04:52:C7:33:D3:8F Connected: yes [CHG] Device 04:52:C7:33:D3:8F UUIDs: 00000000-deca-fade-deca-deafdecacaff [CHG] Device 04:52:C7:33:D3:8F UUIDs: 00001101-0000-1000-8000-00805f9b34fb [CHG] Device 04:52:C7:33:D3:8F UUIDs: 00001108-0000-1000-8000-00805f9b34fb [CHG] Device 04:52:C7:33:D3:8F UUIDs: 0000110b-0000-1000-8000-00805f9b34fb [CHG] Device 04:52:C7:33:D3:8F UUIDs: 0000110c-0000-1000-8000-00805f9b34fb [CHG] Device 04:52:C7:33:D3:8F UUIDs: 0000110e-0000-1000-8000-00805f9b34fb [CHG] Device 04:52:C7:33:D3:8F UUIDs: 0000111e-0000-1000-8000-00805f9b34fb [CHG] Device 04:52:C7:33:D3:8F UUIDs: 00001200-0000-1000-8000-00805f9b34fb [CHG] Device 04:52:C7:33:D3:8F ServicesResolved: yes [CHG] Device 04:52:C7:33:D3:8F Paired: yes Connection successful [chorn Bose QuietComfort 35]# # At this point, a sound source can be started, and # in 'pavucontrol' the headphone can be selected as # output sink
When connecting the Quietcomfort 35 to my Thinkpad x230, I was able to listen music with the A2DP profile. Yet, selecting the HSF/HSP, I did not hear anything/was not able to use the microphone. This message appeared in the logs:
bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0a5c-21e6.hcd failed with error -2
The firmware is not provided by Fedora and has to be extracted from the driver.
[root@спутник ~]# dnf install innoextract [root@спутник ~]# lsusb|grep -i bluet Bus 001 Device 003: ID 0a5c:21e6 Broadcom Corp. BCM20702 Bluetooth 4.0 [ThinkPad] [chris@спутник bt]$ innoextract g4wh01ww.exe [chris@спутник bt]$ find .|grep inf ./app/Win32/bcbtums-win8x86-brcm.inf ./app/Win64/bcbtums-win8x64-brcm.inf [chris@спутник bt]$ grep -i 21E6 ./app/Win64/bcbtums-win8x64-brcm.inf [..] [chris@спутник bt]$ vi ./app/Win64/bcbtums-win8x64-brcm.inf [ find the reference of 21E6 to file ./app/Win64/BCM20702A1_001.002.014.1483.1669.hex [chris@спутник bt]$ hex2hcd ./app/Win64/BCM20702A1_001.002.014.1483.1669.hex Converting ./app/Win64/BCM20702A1_001.002.014.1483.1669.hex to ./app/Win64/BCM20702A1_001.002.014.1483.1669.hcd [chris@спутник bt]$ [chris@спутник bt]$ ll ./app/Win64/BCM20702A1_001.002.014.1483.1669.hcd -rw-r--r--. 1 chris chris 35042 11月 19 13:39 ./app/Win64/BCM20702A1_001.002.014.1483.1669.hcd [chris@спутник bt]$ sudo cp ./app/Win64/BCM20702A1_001.002.014.1483.1669.hcd /lib/firmware/brcm/BCM20702A1-0a5c-21e6.hcd [root@спутник ~]# modprobe -r btusb [root@спутник ~]# modprobe btusb