pop-os / pop

A project for managing all Pop!_OS sources
https://system76.com/pop
2.44k stars 84 forks source link

POP OS Bluetooth Headset options not available (HSP/HFP - mSBC) #2740

Open SuperNolvas opened 1 year ago

SuperNolvas commented 1 year ago

Discussed in https://github.com/pop-os/pop/discussions/2739

Originally posted by **SuperNolvas** December 30, 2022 UPDATE 06/1/2023 - Pipewire and Wireplumber have been updated in the repos and this has NOT fixed the problem **Issue/Bug Description** Hello. I have noticed that POP OS defaults to AD2P ONLY for any Bluetooth headset connection meaning any microphone input is not available. The option for Handsfree is not available at all and can't be enabled. The handsfree options usually give HSP/HFP , codec mSBC or HSP/HFP, codec CVSD. I have tried editing Wireplumber config and Pipewire but to no avail. I also tested Fedora on the same hardware and this worked on the Live ISO but when installed reverted to the behaviour POP OS is showing. I also tried Garuda Linux (Arch based) on this hardware and it behaved corrected and gave Headset/Handsfree options and also configuration options in the Output section for CODECS for AD2P. I also tested Ubuntu 22.10 on my laptop so different hardware to the PC and it works fine. I do know that my ear buds work correctly and my bluetooth hardware works correctly as I have proven this by using Garuda and Ubuntu. To show a comparison I will first show screenshots of POP OS illustrating the limited option of AD2P. Then I will show screenshots of Ubuntu with the expected behaviour. I have also made a pipewire configuration dump using the command line program pw-dump on both operating systems for comparison if that helps with the troubleshooting. I have also included the output of patcl list cards for each OS. **System details** My PC is Ryzen 5 3600 GTX 3060 12GB Intel Wireless AC 9260 with Bluetooth 5.1 **Distribution** cat /etc/os-release NAME="Pop!_OS" VERSION="22.04 LTS" ID=pop ID_LIKE="ubuntu debian" PRETTY_NAME="Pop!_OS 22.04 LTS" VERSION_ID="22.04" HOME_URL="https://pop.system76.com" SUPPORT_URL="https://support.system76.com" BUG_REPORT_URL="https://github.com/pop-os/pop/issues" PRIVACY_POLICY_URL="https://system76.com/privacy" VERSION_CODENAME=jammy UBUNTU_CODENAME=jammy LOGO=distributor-logo-pop-os **POP OS - Fault behaviour - Headset ONLY, Handsfree is not available** ![POS_OS_Headset_only](https://user-images.githubusercontent.com/17798480/210107830-cf70acda-b4be-4230-9d5d-e336c5d8ce01.png) ![POP_OS_Output_setting](https://user-images.githubusercontent.com/17798480/210107910-e20bcb8e-5238-4897-865d-ea3807107e13.png) **POP OS - pactl list cards output - headset-head-unit profile is missing** ![POP_OS_patcl](https://user-images.githubusercontent.com/17798480/210107918-511ff39f-2664-423f-b0f5-70ba8592a271.png) **POP OS Pipewire config dump** [pop_os_22.04_pipewire_config.txt](https://github.com/pop-os/pop/files/10326135/pop_os_22.04_pipewire_config.txt) **Expected behaviour as illustrated by Ubuntu 22.10 system. Headset and Handsfree Input / Output settings - these options are missing from POP OS** ![Ubuntu_Headset](https://user-images.githubusercontent.com/17798480/210108121-d05caf7a-649e-4e54-b37d-626b84f627b1.png) ![Ubuntu_Headset_Handsfree](https://user-images.githubusercontent.com/17798480/210108154-f52585b4-2309-43ad-8a4b-203c7f64c3de.png) ![Ubuntu_Output_configuration](https://user-images.githubusercontent.com/17798480/210108162-c0a69f66-3509-4f65-a7a7-18c4d5c38f41.png) **Ubuntu pactl list cards output, headset-head-unit profile exists** ![Ubuntu_pactl](https://user-images.githubusercontent.com/17798480/210108176-b86e5dbb-99b0-490f-8849-bc04c7dfd51c.png) **Ubuntu pipewire config** [ubuntu_22.10_pipewire_config.txt](https://github.com/pop-os/pop/files/10326145/ubuntu_22.10_pipewire_config.txt) Lastly I have looked at the pipewire version, bluez version and wireplumber versions and they differ between Ubuntu, POP OS and Garuda. Garuda having all the latest versions, POP OS some newer/older and Ubuntu some newer/older. So I haven't found any common rationale for this not working but I have seen the same behaviour in other operating systems. I believe this is arising because of a combination of bluez, pipewire and wireplumber configurations but the answer to what is wrong is beyond my troubleshooting capabilities. I would be grateful if the community could look at this issue and I can provide further logs from POP OS and Ubuntu if required.
SuperNolvas commented 1 year ago

Fixed as of 26/01/2023 updates to Pipewire.

jwverzijden commented 1 year ago

i have the inverse problem. i want my headphone on ad2p but pop os no longer lists it as an option. i dont know what changed or why but there was never a problem with this before, since a couple days my laptop simply cant do ad2p anymore apparently.. the only option left over is "Handsfree - " but this is a mono output with a lot of distortion. the headphone is fine though it works perfectly with other devices like my phone or windows laptop.

zeldoon commented 8 months ago

So I tried all kinds of crazy shit to get this to work... short of switching bluez and got something to work. Please try this and let me know if it helps you.

in /etc/bluetooth/main.conf

on line 5, uncomment: Name = BlueZ

regtm commented 7 months ago

Fixed as of 26/01/2023 updates to Pipewire.

Any indication what fixed it? I seem to have the same issue.

claytronOnLinux commented 6 months ago

From a thread found on reddit which advised I run

sudo apt reinstall pipewire pipewire-pulse systemctl --user --now enable pipewire pipewire-pulse reboot

Combined with zeldoon's comment

So I tried all kinds of crazy shit to get this to work... short of switching bluez and got something to work. Please try this and let me know if it helps you.

in /etc/bluetooth/main.conf

on line 5, uncomment: Name = BlueZ

Then log out and log in

I was able to progress through my problems of not being able to connect, then being able to connect but the sound was very low quality, to being able to connect with high quality audio again.

Edit: spelling mistakes

reubenbrown13 commented 3 months ago

I have tried the suggestions, but my Bluetooth headset still shows no microphone, and bluman shows only a2dp profiles. Any other ideas?

reubenbrown13 commented 3 months ago

for anyone else, I found the following suggestion and this actually fixed it for me: Clear BlueZ cache: Delete all files and directories under /var/lib/bluetooth/ and systemctl restart bluetooth. This forgets all devices and you need to pair devices again.

aacanakin commented 1 month ago

Fixed as of 26/01/2023 updates to Pipewire.

Any indication what fixed it? I seem to have the same issue.

Same for me, the problem still exists, headset option is not available specifically when headphones are connected automatically

SuperNolvas commented 1 month ago

Fixed as of 26/01/2023 updates to Pipewire.

Any indication what fixed it? I seem to have the same issue.

Same for me, the problem still exists, headset option is not available specifically when headphones are connected automatically

I don't know sorry, by March 2023 I had moved house and I didn't need to use BT headphones anymore. Maybe try deleting the bluetooth folder as reubenbrown13 suggests above.

keithfancher commented 4 weeks ago

Same for me, the problem still exists, headset option is not available specifically when headphones are connected automatically

Same here. Seems to be the inverse of @SuperNolvas original issue. For me, only handsfree is available, headset is not available. Which of course means very low quality mono sound.

Interestingly, for me this only started relatively recently. Maybe a few weeks ago? Can't pinpoint the exact date/update.

I can delete the pairing and re-pair and it will work as expected once, but the next time I connect there is no longer a "headset" option. I have to delete and re-pair every time I use my headphones.

PopOS 22.04. All latest updates installed. I've tested the same headphones on Ubuntu, no issue there.

bobab12 commented 4 weeks ago

Same for me, the problem still exists, headset option is not available specifically when headphones are connected automatically

Same here. Seems to be the inverse of @SuperNolvas original issue. For me, only handsfree is available, headset is not available. Which of course means very low quality mono sound.

Interestingly, for me this only started relatively recently. Maybe a few weeks ago? Can't pinpoint the exact date/update.

I can delete the pairing and re-pair and it will work as expected once, but the next time I connect there is no longer a "headset" option. I have to delete and re-pair every time I use my headphones.

PopOS 22.04. All latest updates installed. I've tested the same headphones on Ubuntu, no issue there.

Exactly the same for me. The issue started a couple of weeks ago. Didn't have this issue before that.

reubenbrown13 commented 4 weeks ago

If it helps, here are the contents for my bash script that I use to make this easier for the time being. I still have to re-pair the headset to the computer every time I want to use the handsfree/mic, but the headphones work just fine w/o having to do this once paired. Obviously you will need to change the folder name for your folder.

What I did was copy the cached folder when the handsfree was working, so I could then restore it to the Bluetooth folder and then restart the service to get the config to load.

sudo rm -R /var/lib/bluetooth/BC\:03\:58\:F5\:8C\:2C/ sudo cp -R ~/BC\:03\:58\:F5\:8C\:2C/ /var/lib/bluetooth/BC\:03\:58\:F5\:8C\:2C/ sudo systemctl restart bluetooth