Bluetooth headset mic not working after upgrade to Fedora 34

Hello,

Following the upgrade of my laptop to Fedora 34, I cannot make my Jaba Evolve2 65 headset mic work correctly.

The headset is correctly detected and paired, I have no issues about the output. With Fedora 33, I had two configurations:

  • High Fidelity Playback (AD2P)
  • Headset Head Unit (HSP/HFP)

Now with Fedora 34, I have two more configurations available:

  • High Fidelity Playback (AD2P Sink, codec SBC)
  • Headset Head Unit (HSP/HFP, codec SVSD)

With Fedora 33, I was switching to Headset Head Unit (HSP/HFP) to activate the mic, which config was also set to the mic. I was getting sound in mono and could speak with the microphone. It was working fine, the OS in the sound panel was displaying input reception when I was speaking an everything was fine in video conferences.

Now with Fedora 34, when switching to either Headset Head Unit both for output and input, the headset still switch to mono sound but when I speak, I see absolutely no input for the mic when I’m speaking, and nobody hears me with it anymore. I don’t see any change when doing a reset of the headset and repairing it again with the computer.

I started to search for a solution and found this documentation, not up to date with Fedora 34 but it still helped me a lot and was a good start: How to debug Bluetooth problems - Fedora Project Wiki

I entered the following command in the terminal:

[user@linux.home]$ bluetoothctl 
Agent registered
[CHG] Controller D4:**:**:**:**:** Pairable: yes
[Jabra Evolve2 65]# show
Controller D4:**:**:**:**:** (public)
	Name: linux.home
	Alias: linux.home
	Class: 0x007c010c
	Powered: yes
	Discoverable: no
	DiscoverableTimeout: 0x00000000
	Pairable: yes
	UUID: Message Notification Se.. (00001133-0000-1000-8000-00805f9b34fb)
	UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
	UUID: OBEX Object Push          (00001105-0000-1000-8000-00805f9b34fb)
	UUID: Message Access Server     (00001132-0000-1000-8000-00805f9b34fb)
	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
	UUID: IrMC Sync                 (00001104-0000-1000-8000-00805f9b34fb)
	UUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)
	UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
	UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
	UUID: Phonebook Access Server   (0000112f-0000-1000-8000-00805f9b34fb)
	UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
	UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
	UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
	UUID: Handsfree Audio Gateway   (0000111f-0000-1000-8000-00805f9b34fb)
	UUID: Audio Source              (0000110a-0000-1000-8000-00805f9b34fb)
	UUID: OBEX File Transfer        (00001106-0000-1000-8000-00805f9b34fb)
	Modalias: usb:v1D6Bp0246d053A
	Discovering: no
	Roles: central
	Roles: peripheral
	Roles: central-peripheral
Advertising Features:
	ActiveInstances: 0x00 (0)
	SupportedInstances: 0x06 (6)
	SupportedIncludes: tx-power
	SupportedIncludes: appearance
	SupportedIncludes: local-name
	SupportedSecondaryChannels: 1M
	SupportedSecondaryChannels: 2M
	SupportedSecondaryChannels: Coded
[Jabra Evolve2 65]# devices
Device 30:**:**:**:**:** Jabra Evolve2 65
Device 38:**:**:**:**:** LE_WH-1000XM3
Device 04:**:**:**:**:** ACTON BLUETOOTH
[Jabra Evolve2 65]# info 30:**:**:**:**:**
Device 30:**:**:**:**:** (public)
	Name: Jabra Evolve2 65
	Alias: Jabra Evolve2 65
	Class: 0x00240404
	Icon: audio-card
	Paired: yes
	Trusted: yes
	Blocked: no
	Connected: yes
	LegacyPairing: no
	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)
	Modalias: bluetooth:v0067p24A3d0204
	ManufacturerData Key: 0x0067
	ManufacturerData Value:
  03 07 01 63 03 0b a3 24                          ...c...$        
[Jabra Evolve2 65]# 






[user@linux.home ~]$ systemctl status bluetooth.target 
● bluetooth.target - Bluetooth
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.target; static)
     Active: active since Thu 2021-05-06 10:04:52 CEST; 3h 47min ago
       Docs: man:systemd.special(7)

mai 06 10:04:52 linux.home systemd[1]: Reached target Bluetooth.


[user@linux.home ~]$ systemctl status bluetooth.service 
● bluetooth.service - Bluetooth service
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2021-05-06 10:50:50 CEST; 3h 1min ago
       Docs: man:bluetoothd(8)
   Main PID: 9043 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 38190)
     Memory: 1.0M
     CGroup: /system.slice/bluetooth.service
             └─9043 /usr/libexec/bluetooth/bluetoothd

mai 06 10:50:50 linux.home bluetoothd[9043]: Failed to set privacy: Rejected (0x0b)
mai 06 10:50:50 linux.home bluetoothd[9043]: Endpoint registered: sender=:1.93 path=/MediaEndpoint/A2DPSource/ldac
mai 06 10:50:50 linux.home bluetoothd[9043]: Endpoint registered: sender=:1.93 path=/MediaEndpoint/A2DPSource/aac
mai 06 10:50:50 linux.home bluetoothd[9043]: Endpoint registered: sender=:1.93 path=/MediaEndpoint/A2DPSink/sbc
mai 06 10:50:50 linux.home bluetoothd[9043]: Endpoint registered: sender=:1.93 path=/MediaEndpoint/A2DPSource/sbc
mai 06 10:50:52 linux.home bluetoothd[9043]: /org/bluez/hci0/dev_30_50_75_24_36_27/sep1/fd0: fd(43) ready
mai 06 10:50:57 linux.home bluetoothd[9043]: profiles/audio/avdtp.c:avdtp_connect_cb() connect to 04:**:**:**:**:**: Host is down (112)
mai 06 12:25:42 linux.home bluetoothd[9043]: **src/profile.c:ext_io_disconnected() Unable to get io data for Hands-Free Voice gateway: getpeername: Transport endpoint is not connected (107)**
mai 06 13:19:11 linux.home bluetoothd[9043]: /org/bluez/hci0/dev_30_50_75_24_36_27/sep1/fd1: fd(42) ready
mai 06 13:20:58 linux.home bluetoothd[9043]: /org/bluez/hci0/dev_30_50_75_24_36_27/sep1/fd2: fd(43) ready

src/profile.c:ext_io_disconnected() Unable to get io data for Hands-Free Voice gateway: getpeername: Transport endpoint is not connected (107) looks to be a clue but I don’t understand/find how I could pair it. Most sources I find on the Internet are linked with pulseaudio but is it still relevant now Fedora 34 uses pipewire?

Here are my installed packages:

[user@linux.home ~]$ dnf list installed | grep '\(pipewire\)\|\(pulseaudio\)'
pipewire.x86_64                                   0.3.26-4.fc34                        @updates                                         
pipewire-alsa.x86_64                              0.3.26-4.fc34                        @updates                                         
pipewire-gstreamer.x86_64                         0.3.26-4.fc34                        @updates                                         
pipewire-jack-audio-connection-kit.x86_64         0.3.26-4.fc34                        @updates                                         
pipewire-libs.x86_64                              0.3.26-4.fc34                        @updates                                         
pipewire-pulseaudio.x86_64                        0.3.26-4.fc34                        @updates                                         
pipewire0.2-libs.x86_64                           0.2.7-5.fc34                         @fedora                                          
pulseaudio-libs.x86_64                            14.2-3.fc34                          @fedora                                          
pulseaudio-libs-glib2.x86_64                      14.2-3.fc34                          @fedora                                          
pulseaudio-utils.x86_64                           14.2-3.fc34                          @fedora

If anyone could help me and guide me to identify the issue, I would gladly appreciate.
Thank you for your help

There was a report about a recent firmware update causing bluetooth devices to disconect: Bluetooth devices disconnect and reconnect right after several times a day

Could it be the same problem?

1 Like

Thank you for your answer,

Unfortunately, I’m not sure it is related, the error message I found in journalctl seems to not match. Looking at journalctl --since=2021-05-08, I have the following logs when turning the helmet on:

mai 08 08:22:05 linux.home kernel: input: Jabra Evolve2 65 (AVRCP) as /devices/virtual/input/input37
mai 08 08:22:05 linux.home systemd-logind[1135]: Watching system buttons on /dev/input/event21 (Jabra Evolve2 65 (AVRCP))
mai 08 08:22:05 linux.home bluetoothd[9043]: /org/bluez/hci0/dev_30_50_75_24_36_27/sep1/fd7: fd(42) ready
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (II) config/udev: Adding input device Jabra Evolve2 65 (AVRCP) (/dev/input/event21)
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (**) Jabra Evolve2 65 (AVRCP): Applying InputClass "evdev keyboard catchall"
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (**) Jabra Evolve2 65 (AVRCP): Applying InputClass "libinput keyboard catchall"
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (**) Jabra Evolve2 65 (AVRCP): Applying InputClass "system-keyboard"
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (II) Using input driver 'libinput' for 'Jabra Evolve2 65 (AVRCP)'
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (II) systemd-logind: got fd for /dev/input/event21 13:85 fd 96 paused 0
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (**) Jabra Evolve2 65 (AVRCP): always reports core events
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (**) Option "Device" "/dev/input/event21"
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (**) Option "_source" "server/udev"
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (II) event21 - Jabra Evolve2 65 (AVRCP): is tagged by udev as: Keyboard
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (II) event21 - Jabra Evolve2 65 (AVRCP): device is a keyboard
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (II) event21 - Jabra Evolve2 65 (AVRCP): device removed
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (**) Option "config_info" "udev:/sys/devices/virtual/input/input37/event21"
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (II) XINPUT: Adding extended input device "Jabra Evolve2 65 (AVRCP)" (type: KEYBOARD, id 20)
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (**) Option "xkb_layout" "fr"
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (**) Option "xkb_variant" "oss"
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (II) event21 - Jabra Evolve2 65 (AVRCP): is tagged by udev as: Keyboard
mai 08 08:22:05 linux.home /usr/libexec/gdm-x-session[2407]: (II) event21 - Jabra Evolve2 65 (AVRCP): device is a keyboard
mai 08 08:22:05 linux.home pipewire[2901]: (bluez_output.30_50_75_24_36_27.a2dp-sink-132) client missed 3 wakeups

The headset, is detected as a keyboard? :thinking:

When the headset is turned on, I’m in A2DP mode by default, the one the microphone does not work usually (expected behaviour).

If I switch it to HSP/HFP (codec CVSD), I see the following:

mai 08 08:40:31 linux.home pipewire-media-session[2919]: bluez5-device: failed to switch codec (-5), setting fallback profile
mai 08 08:40:31 linux.home kernel: Bluetooth: hci0: urb 00000000ff9c5255 submission failed (90)
mai 08 08:40:31 linux.home kernel: Bluetooth: hci0: sending frame failed (-90)
mai 08 08:40:31 linux.home kernel: Bluetooth: hci0: SCO packet for unknown connection handle 0
mai 08 08:40:31 linux.home kernel: Bluetooth: hci0: SCO packet for unknown connection handle 0
mai 08 08:40:31 linux.home kernel: Bluetooth: hci0: SCO packet for unknown connection handle 0
mai 08 08:40:31 linux.home kernel: Bluetooth: hci0: SCO packet for unknown connection handle 0

If I’m activate the old HSP/HFP configuration, I get these:

mai 08 08:42:00 linux.home gsd-media-keys[3030]: Unable to get default source
mai 08 08:42:00 linux.home gsd-media-keys[3030]: Unable to get default sink
mai 08 08:42:00 linux.home gsd-media-keys[3030]: Unable to get default sink
mai 08 08:42:00 linux.home pipewire-media-session[2919]: native: connect(): Le logiciel a provoqué l'abandon de la connexion. Remaining retry:1
mai 08 08:42:00 linux.home kernel: Bluetooth: hci0: SCO packet for unknown connection handle 257
mai 08 08:42:00 linux.home kernel: Bluetooth: hci0: SCO packet for unknown connection handle 257
mai 08 08:42:01 linux.home kernel: Bluetooth: hci0: SCO packet for unknown connection handle 0
mai 08 08:42:01 linux.home kernel: Bluetooth: hci0: SCO packet for unknown connection handle 0
mai 08 08:42:01 linux.home kernel: Bluetooth: hci0: SCO packet for unknown connection handle 0
mai 08 08:42:01 linux.home kernel: Bluetooth: hci0: SCO packet for unknown connection handle 0
mai 08 08:42:01 linux.home kernel: Bluetooth: hci0: SCO packet for unknown connection handle 0
mai 08 08:42:01 linux.home kernel: Bluetooth: hci0: SCO packet for unknown connection handle 0

It looks like there is an issue when switching configuration. One thing I note also, when I execute systemctl status bluetooth.service, whatever the configuration of the helmet, I see the same result, especially the following lines I posted in my first message:

mai 06 10:50:50 linux.home bluetoothd[9043]: Endpoint registered: sender=:1.93 path=/MediaEndpoint/A2DPSource/ldac
mai 06 10:50:50 linux.home bluetoothd[9043]: Endpoint registered: sender=:1.93 path=/MediaEndpoint/A2DPSource/aac
mai 06 10:50:50 linux.home bluetoothd[9043]: Endpoint registered: sender=:1.93 path=/MediaEndpoint/A2DPSink/sbc
mai 06 10:50:50 linux.home bluetoothd[9043]: Endpoint registered: sender=:1.93 path=/MediaEndpoint/A2DPSource/sbc

It is another clue or it is normal to have these endpoints registered even when I’m not in A2DP? Or is it just there because it is an available configuration?

I’m so sorry, by going to the vendor website, I just saw the headset didn’t have the latest firmware version, a new one was pushed this week. An upgrade of the firmware, followed by a suppression and a re-pairing of the device now works fine.

Thank you for your time.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.