8

I have a Dell Inspiron 7580 laptop and I'm running Ubuntu 20.04. I've been trying to get my Jaybird Tarah Pro wireless headphones to work correctly. Sound output is working fine, but microphone input from the earbuds is not working.

I was able to pair the headphones in Ubuntu using the standard Bluetooth setup. But the Sound options under Settings only display the following choices:

Output Device:

  • Speakers - Internal Audio (laptop speakers)
  • Headphones - Jaybird Tarah Pro (headphone output, works correctly)

Input Device:

  • Headset Microphone - Internal Audio (doesn't seem to work)
  • Internal Microphone - Internal Audio (works, but uses laptop microphone)

Do I have to install extra software to get the Bluetooth mic working? Is there any way to find out if the microphone profile was detected in the Bluetooth device?

Thanks in advance

Edit 1

I tried to unpair and pair my headset and now I have a new option under Input Device:

Input Device:

  • Headset Microphone - Internal Audio
  • Internal Microphone - Internal Audio
  • Bluetooth Input - Jaybird Tarah Pro

Sound Settings

However, I've tried to select the last item and it doesn't seem to work. The level indicator doesn't move when there's sound.

Any ideas on how to fix that?

Edit 2

The output of pactl list cards is:

Card #0
    Name: alsa_card.pci-0000_00_1f.3
    Driver: module-alsa-card.c
    Owner Module: 23
    Properties:
        alsa.card = "0"
        alsa.card_name = "HDA Intel PCH"
        alsa.long_card_name = "HDA Intel PCH at 0xa5418000 irq 150"
        alsa.driver_name = "snd_hda_intel"
        device.bus_path = "pci-0000:00:1f.3"
        sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
        device.bus = "pci"
        device.vendor.id = "8086"
        device.vendor.name = "Intel Corporation"
        device.product.id = "9dc8"
        device.product.name = "Cannon Point-LP High Definition Audio Controller"
        device.form_factor = "internal"
        device.string = "0"
        device.description = "Áudio interno"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-pci"
    Profiles:
        input:analog-stereo: Entrada de Estéreo analógico (sinks: 0, sources: 1, priority: 65, available: yes)
        output:analog-stereo: Saída de Estéreo analógico (sinks: 1, sources: 0, priority: 6500, available: yes)
        output:analog-stereo+input:analog-stereo: Duplex estéreo analógico (sinks: 1, sources: 1, priority: 6565, available: yes)
        output:hdmi-stereo: Saída de Digital Stereo (HDMI) (sinks: 1, sources: 0, priority: 5900, available: no)
        output:hdmi-stereo+input:analog-stereo: Saída de Digital Stereo (HDMI) + Entrada de Estéreo analógico (sinks: 1, sources: 1, priority: 5965, available: no)
        output:hdmi-surround: Saída de Digital Surround 5.1 (HDMI) (sinks: 1, sources: 0, priority: 800, available: no)
        output:hdmi-surround+input:analog-stereo: Saída de Digital Surround 5.1 (HDMI) + Entrada de Estéreo analógico (sinks: 1, sources: 1, priority: 865, available: no)
        output:hdmi-surround71: Saída de Digital Surround 7.1 (HDMI) (sinks: 1, sources: 0, priority: 800, available: no)
        output:hdmi-surround71+input:analog-stereo: Saída de Digital Surround 7.1 (HDMI) + Entrada de Estéreo analógico (sinks: 1, sources: 1, priority: 865, available: no)
        output:hdmi-stereo-extra1: Saída de Digital Stereo (HDMI 2) (sinks: 1, sources: 0, priority: 5700, available: no)
        output:hdmi-stereo-extra1+input:analog-stereo: Saída de Digital Stereo (HDMI 2) + Entrada de Estéreo analógico (sinks: 1, sources: 1, priority: 5765, available: no)
        output:hdmi-surround-extra1: Saída de Digital Surround 5.1 (HDMI 2) (sinks: 1, sources: 0, priority: 600, available: no)
        output:hdmi-surround-extra1+input:analog-stereo: Saída de Digital Surround 5.1 (HDMI 2) + Entrada de Estéreo analógico (sinks: 1, sources: 1, priority: 665, available: no)
        output:hdmi-surround71-extra1: Saída de Digital Surround 7.1 (HDMI 2) (sinks: 1, sources: 0, priority: 600, available: no)
        output:hdmi-surround71-extra1+input:analog-stereo: Saída de Digital Surround 7.1 (HDMI 2) + Entrada de Estéreo analógico (sinks: 1, sources: 1, priority: 665, available: no)
        output:hdmi-stereo-extra2: Saída de Digital Stereo (HDMI 3) (sinks: 1, sources: 0, priority: 5700, available: no)
        output:hdmi-stereo-extra2+input:analog-stereo: Saída de Digital Stereo (HDMI 3) + Entrada de Estéreo analógico (sinks: 1, sources: 1, priority: 5765, available: no)
        output:hdmi-surround-extra2: Saída de Digital Surround 5.1 (HDMI 3) (sinks: 1, sources: 0, priority: 600, available: no)
        output:hdmi-surround-extra2+input:analog-stereo: Saída de Digital Surround 5.1 (HDMI 3) + Entrada de Estéreo analógico (sinks: 1, sources: 1, priority: 665, available: no)
        output:hdmi-surround71-extra2: Saída de Digital Surround 7.1 (HDMI 3) (sinks: 1, sources: 0, priority: 600, available: no)
        output:hdmi-surround71-extra2+input:analog-stereo: Saída de Digital Surround 7.1 (HDMI 3) + Entrada de Estéreo analógico (sinks: 1, sources: 1, priority: 665, available: no)
        output:hdmi-stereo-extra3: Saída de Digital Stereo (HDMI 4) (sinks: 1, sources: 0, priority: 5700, available: no)
        output:hdmi-stereo-extra3+input:analog-stereo: Saída de Digital Stereo (HDMI 4) + Entrada de Estéreo analógico (sinks: 1, sources: 1, priority: 5765, available: no)
        output:hdmi-surround-extra3: Saída de Digital Surround 5.1 (HDMI 4) (sinks: 1, sources: 0, priority: 600, available: no)
        output:hdmi-surround-extra3+input:analog-stereo: Saída de Digital Surround 5.1 (HDMI 4) + Entrada de Estéreo analógico (sinks: 1, sources: 1, priority: 665, available: no)
        output:hdmi-surround71-extra3: Saída de Digital Surround 7.1 (HDMI 4) (sinks: 1, sources: 0, priority: 600, available: no)
        output:hdmi-surround71-extra3+input:analog-stereo: Saída de Digital Surround 7.1 (HDMI 4) + Entrada de Estéreo analógico (sinks: 1, sources: 1, priority: 665, available: no)
        output:hdmi-stereo-extra4: Saída de Digital Stereo (HDMI 5) (sinks: 1, sources: 0, priority: 5700, available: no)
        output:hdmi-stereo-extra4+input:analog-stereo: Saída de Digital Stereo (HDMI 5) + Entrada de Estéreo analógico (sinks: 1, sources: 1, priority: 5765, available: no)
        output:hdmi-surround-extra4: Saída de Digital Surround 5.1 (HDMI 5) (sinks: 1, sources: 0, priority: 600, available: no)
        output:hdmi-surround-extra4+input:analog-stereo: Saída de Digital Surround 5.1 (HDMI 5) + Entrada de Estéreo analógico (sinks: 1, sources: 1, priority: 665, available: no)
        output:hdmi-surround71-extra4: Saída de Digital Surround 7.1 (HDMI 5) (sinks: 1, sources: 0, priority: 600, available: no)
        output:hdmi-surround71-extra4+input:analog-stereo: Saída de Digital Surround 7.1 (HDMI 5) + Entrada de Estéreo analógico (sinks: 1, sources: 1, priority: 665, available: no)
        off: Desligado (sinks: 0, sources: 0, priority: 0, available: yes)
    Active Profile: output:analog-stereo+input:analog-stereo
    Ports:
        analog-input-internal-mic: Microfone interno (priority: 8900, latency offset: 0 usec)
            Properties:
                device.icon_name = "audio-input-microphone"
            Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3+input:analog-stereo, output:hdmi-stereo-extra4+input:analog-stereo, output:hdmi-surround-extra4+input:analog-stereo, output:hdmi-surround71-extra4+input:analog-stereo
        analog-input-headphone-mic: Microfone (priority: 8700, latency offset: 0 usec, not available)
            Properties:
                device.icon_name = "audio-input-microphone"
            Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3+input:analog-stereo, output:hdmi-stereo-extra4+input:analog-stereo, output:hdmi-surround-extra4+input:analog-stereo, output:hdmi-surround71-extra4+input:analog-stereo
        analog-input-headset-mic: Microfone de headset (priority: 8800, latency offset: 0 usec, not available)
            Properties:
                device.icon_name = "audio-input-microphone"
            Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3+input:analog-stereo, output:hdmi-stereo-extra4+input:analog-stereo, output:hdmi-surround-extra4+input:analog-stereo, output:hdmi-surround71-extra4+input:analog-stereo
        analog-output-speaker: Alto-falantes (priority: 10000, latency offset: 0 usec)
            Properties:
                device.icon_name = "audio-speakers"
            Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
        analog-output-headphones: Fones de ouvido (priority: 9900, latency offset: 0 usec, not available)
            Properties:
                device.icon_name = "audio-headphones"
            Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
        hdmi-output-0: HDMI / DisplayPort (priority: 5900, latency offset: 0 usec, not available)
            Properties:
                device.icon_name = "video-display"
            Part of profile(s): output:hdmi-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71, output:hdmi-surround71+input:analog-stereo
        hdmi-output-1: HDMI / DisplayPort 2 (priority: 5800, latency offset: 0 usec, not available)
            Properties:
                device.icon_name = "video-display"
            Part of profile(s): output:hdmi-stereo-extra1, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1, output:hdmi-surround71-extra1+input:analog-stereo
        hdmi-output-2: HDMI / DisplayPort 3 (priority: 5700, latency offset: 0 usec, not available)
            Properties:
                device.icon_name = "video-display"
            Part of profile(s): output:hdmi-stereo-extra2, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2, output:hdmi-surround71-extra2+input:analog-stereo
        hdmi-output-3: HDMI / DisplayPort 4 (priority: 5600, latency offset: 0 usec, not available)
            Properties:
                device.icon_name = "video-display"
            Part of profile(s): output:hdmi-stereo-extra3, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3, output:hdmi-surround71-extra3+input:analog-stereo
        hdmi-output-4: HDMI / DisplayPort 5 (priority: 5500, latency offset: 0 usec, not available)
            Properties:
                device.icon_name = "video-display"
            Part of profile(s): output:hdmi-stereo-extra4, output:hdmi-stereo-extra4+input:analog-stereo, output:hdmi-surround-extra4, output:hdmi-surround-extra4+input:analog-stereo, output:hdmi-surround71-extra4, output:hdmi-surround71-extra4+input:analog-stereo

Card #4
    Name: bluez_card.C0_28_8D_AF_C6_72
    Driver: module-bluez5-device.c
    Owner Module: 30
    Properties:
        device.description = "Jaybird Tarah Pro"
        device.string = "C0:28:8D:AF:C6:72"
        device.api = "bluez"
        device.class = "sound"
        device.bus = "bluetooth"
        device.form_factor = "headphone"
        bluez.path = "/org/bluez/hci0/dev_C0_28_8D_AF_C6_72"
        bluez.class = "0x240418"
        bluez.alias = "Jaybird Tarah Pro"
        device.icon_name = "audio-headphones-bluetooth"
    Profiles:
        a2dp_sink: Reprodução de alta fidelidade (Destino A2DP) (sinks: 1, sources: 0, priority: 40, available: yes)
        headset_head_unit: Unidade de headset (HSP/HFP) (sinks: 1, sources: 1, priority: 30, available: yes)
        off: Desligado (sinks: 0, sources: 0, priority: 0, available: yes)
    Active Profile: off
    Ports:
        headphone-output: Fones de ouvido (priority: 0, latency offset: 0 usec)
            Part of profile(s): a2dp_sink, headset_head_unit
        headphone-input: Entrada Bluetooth (priority: 0, latency offset: 0 usec)
            Part of profile(s): headset_head_unit
2
  • same problem on ubuntu 16 with same tarah pro. any fix? – Sadra Naddaf Sep 27 '20 at 21:38
  • Same for me, notable that when I connect it sees the buds at a headset but no evidence any where in the system that it recognises the microphone. 20.04. I guess we will have to wait. – user22444 Apr 22 at 17:09
3

The problem is PulseAudio support for HSP/HFP (the bluetooth profiles that allow the microphone to work) isn't very good.

Recently a the proper support for HSP/HFP was merged: Add support for bluetooth A2DP codecs and codec switching. However, until a new version of PulseAudio is released and packaged in Ubuntu, it seems the only option is to build it yourself following the instructions in the link. I've tried but with no success.

Update: I just tried with Ubuntu 21.04 and it still doesn't seem to work. Another possibility I still have to test is PipeWire, the future PulseAudio replacement.

4
  • Thanks! I think you're right indeed. I tried to install a a package from a PPA (launchpad.net/~lis/+archive/ubuntu/pulseaudio-pali-a2dp-codecs) which seems to be based on the same code. But it made my system unstable and unbootable... I'll wait for the new version of PulseAudio. Let's hope it doesn't take too long. – tiagobt Jan 26 at 18:47
  • How did you get on with this @tiagobt? I'm struggling with Ubuntu and using bluetooth earbuds. – Tom Hamilton Stubber May 20 at 9:09
  • @TomHamiltonStubber, I only had partial success so far. I was able to get microphone input from the earbuds working, but sound output ends up switching to mono (low quality). I guess this is happening because of the codec switching limitations, as explained by Àlex. Does anyone know if a new version of PulseAudio is now available for Ubuntu? – tiagobt May 22 at 20:32
  • Afaik, PulseAudio isn't going to include HFP suport out of the box anytime soon, that's many people were recommending to give users the option to try pipework which does have support for HFP. – 1nfern0 May 23 at 4:09
0

I was facing the same issue with Oneplus Wireless Z Bass edition. My headset microphone was not detected by PulseAudio and the problem is that my headphones don't have HSP profile, only HFP profile. After trying for 2 days, I came to the solution of replacing PulseAudio with Pipewire sound server, which supports HSP, HFP and A2DP by itself. So there will be no need to install any other utility like ofono, phonesim. Also, to be noted that my problem wasn't resolved even after following all the steps to configure ofono in PulseAudio. So I came up with the steps to replace PulseAudio with PipeWire.

Here is the detailed article I have written to resolve this problem, the steps of which I'm also adding here. You can follow it and most probably be able to solve your problem.

Bluetooth headset microphone not detected

Open your terminal and follow these steps:

  1. We will use a PPA for adding Pipewire to Ubuntu 20.04, which is maintained regularly:

    sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
    
  2. To update the PPA packages in your system do:

    sudo apt update
    
  3. Install the package:

    sudo apt install pipewire
    
  4. There is also a dependency needed to be installed with Pipewire, otherwise you will face the issue of “Bluetooth headset won’t connect after installing pipewire”. Install the dependency by:

    sudo apt install libspa-0.2-bluetooth
    
  5. Now, to install the client libraries:

    sudo apt install pipewire-audio-client-libraries
    
  6. Reload the daemon:

    systemctl --user daemon-reload
    
  7. Disable PulseAudio:

    systemctl --user --now disable pulseaudio.service pulseaudio.socket
    
  8. If you are on Ubuntu 20.04, you also need to “mask” the PulseAudio by:

    systemctl --user mask pulseaudio
    

I am not sure but, if possible, you can try to run this on other versions too.
9. After a new update of Pipewire, you also need to enable pipewire-media-session-service:

   systemctl --user --now enable pipewire-media-session.service
  1. You can ensure that Pipewire is now running through:

    pactl info
    

    This command will give the following output, in Server Name you can see:

    PulseAudio (on PipeWire 0.3.28)
    

    Things should be working by now and you can see your microphone.

If it doesn’t show up, then try restarting Pipewire by this command:

systemctl --user restart pipewire

If it’s still not showing your microphone, you can try rebooting once and remove and pair your Bluetooth device again to check if it works now.

I hope I have helped you solve your problem.

If you want to rollback all the changes we did, you can do it by using:

systemctl --user unmask pulseaudio
systemctl --user --now enable pulseaudio.service pulseaudio.socket
3
  • Thanks a lot for the help. I followed your procedure and was able to get PipeWire working. I just had to restart Ubuntu at the end. Microphone input from the headset seems to be working now. However, when I configure my headset as the input device, the sound output switches automatically to mono (low quality), reverting to the following profile: Headset Head Unit (HSP/HFP, codec CVSD). Did you have the same issue? – tiagobt May 22 at 20:09
  • Yes, I have written about it at the end of my article. The things is using 2 channels(input,output) for audio transmission through bluetooth causes this. That's A2DP has better sound quality as it's only 1 channel(output). But I wonder how in Windows everything was fine along with the audio. They probably have optimized implementation of HFP. – 1nfern0 May 23 at 4:04
  • As far as I understood, this is a limitation of the Bluetooth protocol. You can't have two-channel sound output and simultaneously have wireless sound input. However, it seems that Windows and MacOS are able to switch profiles seamlessly as needed, so that, in practice, you have good quality for sound input and output. I believe this codec switching mechanism is missing in Ubuntu right now, although it seems to have been implemented in PulseAudio. – tiagobt May 23 at 18:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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