Headset: Cannot use microphone

Hello,

This is my first post on AskFedora, so please let me know if I violate any politeness convention.

I have a new headset, and unfortunately, I don’t manage to get it working.

Hardware:

  • Lenovo Thinkpad T430s
  • XQuisit oE400

What is working

  • I can pair the headset via Bluetooth.
  • The headset shows up in the GNOME audio settings, both as output and as input device.
  • Sound playback is possible with “A2DP Sink: AAC” when I set the micro to “internal” (not headset)
  • Both sound playback and calls are possible with my Android phone (OnePlus 2) and the Bluetooth headset.

What is not working

  • I cannot playback music with HSP/HFP.
  • I cannot playback music with A2DP and HSP/HFP when the micro is set to the headset.

What I know so far

  • My headset allows stereo playback only as long as the microphone is not used.
  • When the microphone is used, sound playback is only possible in mono.

My assumption
I assume both problems I described above are related to each other. Perhaps the HSP/HFP settings are not configured properly.

I’m looking forward to your answers!

Cheers,
schroedingersket

2 Likes

Do other people have similar problems?

Ok, I did some more “reasearch”. I have found that the same issue exists for the Raspberry Pi 3, see this issue. Following a couple of links, it turns out that HSP/HFP seems to be broken on Linux, see this issue.

Can somebody please confirm this, or link me to some other website? I’m really stuck at this point.

Some links that might be useful for other people who have similar issues:

Probably my problem is the same as this person is facing.

Unfortunately, there is still no answer to that question…

Maybe try reading the info posted here to see if it helps with your problem

https://wiki.archlinux.org/index.php/Bluetooth#HSP/HFP_profiles

https://wiki.archlinux.org/index.php/Bluetooth_headset#HSP_problem:_the_bluetooth_sink_and_source_are_created,_but_no_audio_is_being_transmitted

There is a oFono package in COPR if you want to try it
https://copr.fedorainfracloud.org/coprs/azrdev/ofono/

Thanks for your answer! I’ve already seen the links in the Archlinux wiki.

I already have installed pulseaudio 13.99.1-rebootstrapped

This will probably be the problem! I must have overlooked this issue…

My laptop seems to have exactly this bluetooth chipset:

$ lsusb
Bus 001 Device 006: ID 0a5c:21e6 Broadcom Corp. BCM20702 Bluetooth 4.0 [ThinkPad]

There was an old bug report for exactly my laptop (Thinkpad T430s), and I get the same error message:

$ journalctl -b | grep bluetooth
Apr 15 07:44:03 localhost.localdomain kernel: thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
Apr 15 07:44:04 localhost.localdomain bluetoothd[777]: Bluetooth daemon 5.54
Apr 15 07:44:05 localhost.localdomain bluetoothd[777]: Starting SDP server
Apr 15 07:44:05 localhost.localdomain audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=bluetooth comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Apr 15 07:44:05 localhost.localdomain bluetoothd[777]: Bluetooth management interface 1.14 initialized
Apr 15 07:44:07 localhost.localdomain NetworkManager[1262]: <info>  [1586929447.9583] Loaded device plugin: NMBluezManager (/usr/lib64/NetworkManager/1.20.10-1.fc31/libnm-device-plugin-bluetooth.so)
Apr 15 07:54:37 pc-18.home kernel: bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0a5c-21e6.hcd failed with error -2
Apr 15 07:54:37 pc-18.home bluetoothd[777]: Endpoint registered: sender=:1.302 path=/MediaEndpoint/A2DPSource/VENDOR/LDAC
Apr 15 07:54:37 pc-18.home bluetoothd[777]: Endpoint registered: sender=:1.302 path=/MediaEndpoint/A2DPSource/VENDOR/APTXHD
Apr 15 07:54:37 pc-18.home bluetoothd[777]: Endpoint registered: sender=:1.302 path=/MediaEndpoint/A2DPSource/VENDOR/APTX
Apr 15 07:54:37 pc-18.home bluetoothd[777]: Endpoint registered: sender=:1.302 path=/MediaEndpoint/A2DPSource/AAC
Apr 15 07:54:37 pc-18.home bluetoothd[777]: Endpoint registered: sender=:1.302 path=/MediaEndpoint/A2DPSource/SBC
Apr 15 07:54:37 pc-18.home bluetoothd[777]: Endpoint registered: sender=:1.302 path=/MediaEndpoint/A2DPSink/VENDOR/APTXHD
Apr 15 07:54:37 pc-18.home bluetoothd[777]: Endpoint registered: sender=:1.302 path=/MediaEndpoint/A2DPSink/VENDOR/APTX
Apr 15 07:54:37 pc-18.home bluetoothd[777]: Endpoint registered: sender=:1.302 path=/MediaEndpoint/A2DPSink/AAC
Apr 15 07:54:37 pc-18.home bluetoothd[777]: Endpoint registered: sender=:1.302 path=/MediaEndpoint/A2DPSink/SBC
Apr 15 07:54:52 pc-18.home kernel: input: oE400 as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.0/bluetooth/hci0/hci0:11/0005:000A:FFFF.0006/input/input29
Apr 15 07:54:53 pc-18.home bluetoothd[777]: /org/bluez/hci0/dev_FC_58_FA_1F_B9_52/sep3/fd0: fd(44) ready

One line is especially suspicious:

Apr 15 07:54:37 pc-18.home kernel: bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0a5c-21e6.hcd failed with error -2

So after all, this might be a driver/firmaware issue.

I don’t have much experience in this. I’d appreciate all hints gladly!

I have found a website where somebody had a similar problem.

I am no able to hear sound in HSF/HSP mode, but the mic is still not working. I’ll keep investigating.

I know it’s frustrating with Broadcom not playing nice with Linux, i have a Broadcom chip and the bluetooth is not working at all, but i don’t use it so i don’t bother with it. Might replace it with an Intel one.

I totally agree. Broadcom already made my Fairphone 1 obsolete, even though the hardware was fully functional, because they violated the contract with Fairphone and kept the sources for their drivers a secret…

I guess the easiest thing is to get an external USB Bluetooth dongle.

@kiko964 You seem to have some experience with Bluetooth devices and Linux. Can you recommend a manufacturer/model?

On the previous laptop i had an Atheros bluetooth card and it worked fine but back then i used Ubuntu.

Here is a page with compatible bluetooth adapers, it may be for the Raspberry Pi but they shoud be compatible with other Linux distros
https://elinux.org/RPi_USB_Bluetooth_adapters

This site also lists compatible devices with Linux
https://h-node.org/bluetooth/catalogue/en

Thanks for the list, this looks interesting.

I have tested my setup again. In the GNOME settings, the mic appears to be not working (no red bars when I speak). Also, when I try to run the “mono” test sound in HSF/HSP, I only hear noise.
Music playback and Telegram calls work in HSF/HSP.

Now comes the weird part: In the browser, the mic IS WORKING! I’ve tested it with this test site. I’ve also successfully had a video conference on my own Nextcloud Talk server.

Probably PulseAudio is not configured correctly. Do you have an idea how to make it work?

Kind regards,
schroedingersket

According to this site you need the oFono package for HSP/HFP to work with PulseAudio
https://freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Bluetooth/#index1h1
You have all the info and troubleshooting there. If you need the oFono package i have posted a link in post 6.

Ok, thank you very much. I’m not really a fan of COPR repos, perhaps I’m a bit too paranoid. Is there a way I can see the RPM sources used in the repo and perhaps even build the RPM myself?

Here is the GIT page for the ofono package
https://git.kernel.org/pub/scm/network/ofono/ofono.git/
and you have a tar.gz files in there if you want to build the package yourself.

Thanks for the link, I’ll write again if I find the time to compile the package.

The main issue for is solved now: I can participate in video meetings, and listen to music with the headset. The cherry on top would be to get the GNOME/PulseAudio configuration working, but that is just nice-to-have.

Install rpmfusion repos --> https://rpmfusion.org/Configuration/ and after that ‘sudo dnf install pulseaudio-module-bluetooth-freeworld’ - Bluetooth support for the PulseAudio sound server, supports extra codecs.Maybe will help you.

Thanks for the hint. I already did that, but GNOME still cannot use the mic.

I don’t think it is related to the Bluetooth stack anymore: Firefox, Zoom, BlueJeans and Nextcloud Talk can use the mic. I guess these apps don’t rely on PulseAudio, but use the device directly.

I’m running F31 and Xfce. My new headphone/mic has a split jack. If I plug the right jack into the right hole, my mic works, but only if the headphone jack isn’t plugged in. That’s OK, because in that case, both the headphone and mic work through the one jack that’s plugged in. And, if I take the adapter off, neither of them works. I don’t know what this means, but I’m reporting it because it might be a help to somebody else.