Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

My Philips SBH9001 headset pairs fine using Ubuntu 12.04. In the audio settings it's properly detected as A2DP device and as HSP/HFP device.

Hardware: Thinkpad X230, Ubuntu 12.04 64bit, Kernel 3.6.0-030600rc3-generic (build from Ubuntu mainline repo), Bluetooth device is USB-Id 0a5c:21e6 from Broadcom, Headset is a Philips SBH9001.

Note: Kernel 3.6 rc3 is used because of a fix for audio on the dockingstation that is not in any previous branches.

Playing audio in A2DP works just fine out of the box, but when switching the headset to HSP/HSP mode there is no sound nor does the microphone work.

When connecting the headset, /var/log/syslog shows:

Aug 25 21:32:47 x230 bluetoothd[735]: Badly formated or unrecognized command: AT+CSRSF=1,1,1,1,1,7
Aug 25 21:32:49 x230 rtkit-daemon[1879]: Successfully made thread 17091 of process 14713 (n/a) owned by '1000' RT at priority 5.
Aug 25 21:32:49 x230 rtkit-daemon[1879]: Supervising 4 threads of 1 processes of 1 users.
Aug 25 21:32:50 x230 kernel: [ 4860.627585] input: 00:1E:7C:01:73:E1 as /devices/virtual/input/input17

When switching from A2DP (standard profile) to HSP/HFP:

Aug 25 21:34:36 x230 bluetoothd[735]: /org/bluez/735/hci0/dev_00_1E_7C_01_73_E1/fd3: fd(34) ready
Aug 25 21:34:36 x230 rtkit-daemon[1879]: Successfully made thread 17309 of process 14713 (n/a) owned by '1000' RT at priority 5.
Aug 25 21:34:36 x230 rtkit-daemon[1879]: Supervising 4 threads of 1 processes of 1 users.
Aug 25 21:34:41 x230 bluetoothd[735]: Audio connection got disconnected

Any hints how to get HSP/HFP working here?

share|improve this question
    
Are you able to change the profile from "Sound Settings -> Output -> Mode"? –  Takkat Aug 26 '12 at 19:07
    
Yes, switching output mode works, there is a short clicking noise to hear. But no audio in HSP/HFP after switching. Switching back to A2DP works, audio also. –  Stefan Armbruster Aug 27 '12 at 9:23

3 Answers 3

up vote 4 down vote accepted
+100
  • This is a known bug in bluez with the new Broadcom BCM20702A0 series adapters; yours is one of those. (see bug report)
  • The bug is rated "high", but it has not yet been fixed. You may want to add yourself to the list of people affected by the bug, and maybe post a message asking if there is any timeline on a fix.

Other possible solutions:

  • Edit /etc/bluetooth/audio.conf and under [General], add the line Enable=Socket. Restart blueoothd with sudo rfkill block bluetooth && sudo rfkill unblock bluetooth and see if it helps.
share|improve this answer
    
Thx for your answer, it explains why it happens. Unfortunately the suggested workaround does not work, the described behaviour did not change at all. –  Stefan Armbruster Sep 8 '12 at 20:58
    
You're welcome. I didn't expect it to...looks like we'll just have to wait for the bug to be fixed. :( –  izx Sep 8 '12 at 21:05

A combination of actoins finally solved that issue:

share|improve this answer

In my case I got an Iogear GBU521 using Ubuntu 14.04

lsusb | grep -i 
bluetoothBus 003 Device 008: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0

I created the *.hcd that you can download from https://www.dropbox.com/s/p7nxnahjcsc0o9c/fw-0a5c_21e8.hcd?dl=0 and drop it in your /lib/firmware folder and then reboot.

If you want to build yours here are the steps:

  1. Download the driver from www.iogear.com/support/dm/driver/GBU521 for Windows 8.1
  2. Extract the installer
  3. Go to the folder GBU321_421_521_Win8.1_v12.0.0.8030/Win64
  4. After learning about the PID, VID and hex2hcd ,the only problem is finding the name of the correct *.hex to convert to *.hcd
  5. The right direction is looking at the 'bcbtums-win8x64-brcm.inf' in the same folder. There you will search by the last four digits of the PID (21e8). For this case the right file was 'BCM20702A1_00.002.014.1315.1338.hex'(IF YOU TRY TO GUESS IS IMPOSSIBLE)
  6. Convert the file as I said in the step 4 with hex2hcd
  7. Rename the file as 'fw-0a5c_21e8.hcd' and place it in /lib/firmware
  8. Reboot
  9. If it is not working unplug and plug it again
  10. Enjoy!
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.