Bug 2004740

Summary: Bluetooth headphones only show A2DP profiles, no HFP/HSP profiles available
Product: [Fedora] Fedora Reporter: giperborey <northernfreevatar>
Component: pipewireAssignee: Wim Taymans <wtaymans>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 35CC: agurenko, awilliam, brunovern.a, information, northernfreevatar, wtaymans, yjog
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-10-08 20:47:29 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description giperborey 2021-09-15 20:21:12 UTC
Description of problem:

The sound settings doesn't have HSP/HFP profiles, only A2DP ones.

Hardware Details:
MB: Asus ROG STRIX B360-I Gaming
BT: Intel 9460/9560
Headset: Sony WH-1000XM2 headset was used for test.

Software Details:
kernel-5.14.3-300
pipewire-0.3.35-2
wireplumber-0.4.1-2
bluez-5.61-1
gnome-bluetooth-3.34.5-2
NetworkManager-bluetooth-1.32.10-2

How reproducible:
Always

Steps to Reproduce:
1. Pair headset
2. Go to Sound settings -> Configuration

Actual results:
No HSP/HFP profiles

Expected results:
HSP/HFP profiles present along with A2DP ones

Additional info:
Everything works as a charm on Fedora 34 with following software versions
kernel-5.13.14-200
pipewire-0.3.35-2
bluez-5.61-1
gnome-bluetooth-3.34.5-1
NetworkManager-bluetooth-1.30.6-1

Logs (during headset pairing):
Sep 15 15:32:33 fedora kernel: input: WH-1000XM2 (AVRCP) as /devices/virtual/input/input32
Sep 15 15:32:33 fedora systemd-logind[919]: Watching system buttons on /dev/input/event24 (WH-1000XM2 (AVRCP))
Sep 15 15:32:42 fedora systemd[1715]: app-gnome-gnome\x2dbluetooth\x2dpanel-4807.scope: Consumed 10.428s CPU time.

Comment 1 giperborey 2021-09-27 23:17:37 UTC
I've installed "Fedora Nightly": "Fedora-35-20210927.n.0" and performed "sudo dnf update --refresh".

Software Details:
bluez-5.61-1.fc35.x86_64
pipewire-0.3.37-1.fc35.x86_64
wireplumber-0.4.2-1.fc35.x86_64

The issue is still there but "wireplumber" raises new error:
"wireplumber[2489]: bluez5-device: trying to set invalid profile 1, codec 0, 00000015 00000001"

Still works as a charm on Fedora 34 on my PC and laptop.

Comment 2 giperborey 2021-10-04 01:53:23 UTC
Update:
The HSP/HFP profiles appears only after I do "systemctl --user restart pipewire".
Same for https://bugzilla.redhat.com/show_bug.cgi?id=2004742

Still works as a charm on Fedora 34 on both PC and laptop.

I'll report it to pipewire's git since the issue doesn't get any attention here.

Comment 3 Yogendra Jog 2021-10-05 01:44:11 UTC
Yes, HSP/HFP profile appear only after - systemctl --user restart pipewire but why ?

Comment 4 giperborey 2021-10-05 02:03:01 UTC
I've re-created the issue here:
https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1683

Errors during "wireplumber.service" starting:
Oct 04 17:46:26 fedora systemd[2184]: Started Multimedia Service Session Manager.
Oct 04 17:46:26 fedora wireplumber[2521]: native: listen(): Address already in use
Oct 04 17:46:26 fedora wireplumber[2521]: native: RegisterProfile() failed: org.bluez.Error.NotPermitted
Oct 04 17:46:26 fedora wireplumber[2521]: native: RegisterProfile() failed: org.bluez.Error.NotPermitted

When I added a 20 sec delay to "wireplumber.service", there were no errors in logs and all worked as a charm without restarting "wireplumber.service":
[Service]
TimeoutStartSec=infinity
ExecStartPre=/bin/sleep 20

Comment 5 giperborey 2021-10-05 14:45:59 UTC
Claimed to be fixed in master:
https://gitlab.freedesktop.org/pipewire/wireplumber/-/merge_requests/222

Can't test it yet.

Comment 6 Yogendra Jog 2021-10-06 17:28:42 UTC
(In reply to Mikhail Kondrashov from comment #4)
> I've re-created the issue here:
> https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1683
> 
> Errors during "wireplumber.service" starting:
> Oct 04 17:46:26 fedora systemd[2184]: Started Multimedia Service Session
> Manager.
> Oct 04 17:46:26 fedora wireplumber[2521]: native: listen(): Address already
> in use
> Oct 04 17:46:26 fedora wireplumber[2521]: native: RegisterProfile() failed:
> org.bluez.Error.NotPermitted
> Oct 04 17:46:26 fedora wireplumber[2521]: native: RegisterProfile() failed:
> org.bluez.Error.NotPermitted
> 
> When I added a 20 sec delay to "wireplumber.service", there were no errors
> in logs and all worked as a charm without restarting "wireplumber.service":
> [Service]
> TimeoutStartSec=infinity
> ExecStartPre=/bin/sleep 20

Adding ^^ to /usr/lib/systemd/user/wireplumber.service works HFP/HSP profiles are back.

Comment 7 Adam Williamson 2021-10-08 16:34:56 UTC
There's a new wireplumber update now:

https://bodhi.fedoraproject.org/updates/FEDORA-2021-b70755fdc3

which should have the fix, I believe. Can you check that? Thanks!

Comment 8 giperborey 2021-10-08 19:31:39 UTC
wireplumber-0.4.3-1.fc35 fixed the issue for me, thanks!

Comment 9 Adam Williamson 2021-10-08 20:47:29 UTC
OK, that update is pushed stable now, so we can close this.