Call for testing: Updated Pulseaudio & better Bluetooth headset support


  • This is the followup from my previous call-for-testing. This time, in addition to updated PulseAudio from 16.04, this also includes:

    • a fix to Bluez which should improve the experience for users that use a Bluetooth headset for calling.
    • an update to the modern pulseaudio-module-droid to make sure they work with the updated version.

    All devices are welcome to participate in the test.

    How to test:

    Make sure your device runs the latest devel image. Run the following command in the ADB shell or SSH session:

    # Mount a tmpfs so apt can breathe
    sudo mount -t tmpfs tmpfs /var/cache/apt/archives 
    # Prevent Bluez from restarting & get stuck.
    sudo mount -o remount,rw /
    sudo tee /usr/sbin/policy-rc.d >/dev/null <<EOF
    #!/bin/sh
    exit 101
    EOF
    sudo chmod +x /usr/sbin/policy-rc.d
    # Actually install the packages.
    sudo ubports-qa install xenial_-_pulseaudio-updates-to-0ubuntu3.10
    # Reboot the phone.
    sudo reboot; exit
    

    What to test:

    See if there's any regression in both built-in speaker, wired headset, and Bluetooth headset. If possible, use a Bluetooth headset that can be in both music mode (hi-fidelity audio) and call mode (low-latency 2-way audio).

    Two possible regressions that can happen are

    • issue #528 ([xenial] Sound does not go to bluetooth headset)
    • a call via Bluetooth does work but cuts off after a few seconds

    I believe they're fixed, but please report if you encountered these issues.

    Also, if you have a Bluetooth headset with an accept/hangup button, try pressing the button while in call and see if the call hangs up. Accepting the call or last number redial might not work, and is a known issue.

    You may want to also follow this test plan from Canonical if you want to be extra sure there's no issue. However, even in the current version of PulseAudio, not all tests in this test plan pass. Thus, you may want to double-check if it's a regression or not.
    https://wiki.ubuntu.com/Process/Merges/TestPlan/pulseaudio

    If you found any issue/regression:

    Luckily, someone has written a script that automates enabling, disabling, and collecting debug logs [1]. It's located at https://github.com/bergotorino/bt-debugging-tools

    To enable debugging, run ./bt-device-enable.sh -e -p <lockscreen password>. The device will reboot automatically. Then, after reproducing the issue, run ./bt-collect-logs.sh <password>. A tarball will be produced. Please send that to me via PM or Telegram (@peat_psuwit) as it can contain sensitive information. Please also mention the brands of all devices you used to test in the PM; they'll be used to match up with what's in the log.

    To disable debugging, run ./bt-device-enable.sh -d -p <password>

    [1] For devices with ADB anyway. If you use a Halium 7.1 devices without ADB, you may take a look at the script, or you can ask me.

    Known issues:

    • The issue that the playing streams won't switch to the headset after a re-connect/connecting another device is issue #1045. The fix requires that this update works first. To workaround, please close and reopen the app playing the sound.
    • Even though using the button on the headset to hangup work, using it to accept a call or redial might not work.
    • It's been reported that Bluetooth on OnePlus One is unstable in general. Thus, you may want to skip testing Bluetooth on this particular device.

  • This works as desired on my garlic device (no regressions). Issue #1045 occurs after the hang up of the Bluetooth headset, which I guess is not surprising to anyone.
    Hopefully I'll get a chance to try this out on my N5 since I'm having issues with my headset on that device.


  • on N5:
    unfortunately, i don't have a complete set for testing for bluetooth , only bluetooth speaker
    Here is quick tests done:
    built-in Speakers on with call, music app :ok
    wired headset : ok
    bluetooth: quick pairing and audio out , note that there were no sound the first time, since i paired when i still had the wired headset plugged, and after unplugged and reconnect it was still not possible to have sound out. A reboot solve the issue

    thank you for the effort 🙂


  • Did anybody test this on a Pro5 (turbo)?
    And: Can I try this now on rc channel? - I was going to run the sudo ubports-qa install xenial_-_pulseaudio-updates-to-0ubuntu3.10 command but when I saw that it wants to upgrade 55 programs I chose 'no'.


  • On OP3
    No drawback noticed.
    Now I can place a call with a platronic bluetooth headset.
    I still cannot stream sound to this setup : https://github.com/nicokaiser/rpi-audio-receiver (with Sailfish Os on OP3 I can)

    Well done for this improvment !


  • @mihael have you tried with today's update ? it should not give you so many packages to update and remove.
    I did it yesterday, updated all and it is fine.


  • @mihael I tried on Ota-11, it succeeded installation, was able to pair the bluetooth headphones with phone, but sound and mic did not work. There was no terrible noise and cracking sound like before, but no sound at all. I was able to switch the call output from BT to speaker to headset and back, but no sound output or input on BT. (Jabra BT headphones)
    Haven't tried on Ota-12 yet(must do a backup first)


  • @ernest can you call using Bluetooth headphones? No cracking noise?


  • Thanks for all the replies and testing on Pro5. @lduboeuf there is no new update for the rc channel since may 8th...


  • @mihael as @peat_psuwit said in his post, you need to be on the latest devel image


  • @lduboeuf missed that ,,devel,, in my case


  • Meizu Pro 5, devel, followed the guide, installed, connected to bt headphones and can only hear a terrible noise, nothing else.a call via Bluetooth does work but cuts off after a few seconds = well I couldn't hear anything else only a noise, but it did not cut off, I did terminate the call after about 15 -20 seconds )
    Music plays well on bt headphones ( had to reboot to get a proper connection and detection (


  • So, in my case (rc channel), can I try this after the next phone update?


  • Tested on N5

    JBL and Bose speakers both work nicely.
    I connected the phone to the sound system of my car (which is registered as a bluetooth headset) and there were issues. I did not have a SIM installed, so the following is based on playing music (which worked perfectly on the aforementioned speakers):

    1. I got sound on the in-car sound system.
    2. Sound was a bit low, even with in-car volume near max, so I decided to turn up the volume on the N5. This worked for a couple of seconds, then the sound was cut off. The music app (Cloud Music v. 1.6.2) intermittently showed progress playing the song, but no sound came over the speakers (nor from the phone).
    3. I disconnected the phone from the car and was able to restart the app and get sound on the phone. I then reconnected while a song was playing. The phone showed it was connected, but sound emanated from the phone itself, not the in-car sound system. I was still on the in-car menu for connecting a bluetooth device. When I switched to the media menu, sound came from the car speakers a couple of seconds, then cut off completely. The device was still registered as connected. No sound came from the device itself either.

    I also tested using the device hooked up to an external display. Previously, on RC, when using a bluetooth keyboard and mouse, the mouse would continue to work when the external display was connected, but the keyboard would not. It would still be connected, but text could not be typed from it. Now, using devel and testing your bluetooth modifications the keyboard functions perfectly when the external display is connected.


  • @peat_psuwit I tested this in my OPO, Ota-12, devel channel. Bluetooth is now working for making and receiving calls from my car, It was not working before. Great job!


  • @Stefano Could you please follow the instructions for collecting the log? The issue where the audio via Bluetooth cuts off after a few seconds is supposed to be fixed.

    @aribk The issue that the playing streams won't switch to the headset after a re-connect is issue #1045. However, the rest of the issues is not known to me. If you care enough, could you please check if it's a regression or not. If it is, or it's inconvenient to test with the previous version, please follow the instructions for collecting the log.

    Thank you!


  • @peat_psuwit said in Call for testing: Updated Pulseaudio & better Bluetooth headset support:

    @aribk The issue that the playing streams won't switch to the headset after a re-connect is issue #1045. However, the rest of the issues is not known to me. If you care enough, could you please check if it's a regression or not. If it is, or it's inconvenient to test with the previous version, please follow the instructions for collecting the log.

    Thank you!

    I read this only now, sorry! I will see if I can get round to it within the next couple of days.


  • @peat_psuwit said in Call for testing: Updated Pulseaudio & better Bluetooth headset support:

    @aribk The issue that the playing streams won't switch to the headset after a re-connect is issue #1045. However, the rest of the issues is not known to me. If you care enough, could you please check if it's a regression or not. If it is, or it's inconvenient to test with the previous version, please follow the instructions for collecting the log.

    OK. Today I resumed testing on my N5. I reinstalled devel with the UBports installer and repeated your steps above.

    I tried out a wired headset and this works well.

    Then I followed some of canonical's steps that you linked to. I have the output of all the 'pactl list sink' tests if you're interested. They all give the expected media.role output, except when playing a ringtone. In this case I got 'media.role = "multimedia" ' But I played the ringtone from settings > sound > ringtones . Just thought it might be worth mentioning in case this gives a different result from an actual call.

    I hope to secure a bluetooth headset during the course of the day to be able to test this. Will follow up and send you the logs if I run into trouble.


  • Unfortunately, the bluetooth headset I secured was not registered by my N5. So I tested once more with my JBL bluetooth speakers. I got a connection between the device and the speakers, but the sound was not routed to the BT speakers. Instead, sound came from the device itself. After rebooting the device connected automatically to the BT speakers and I was able to play music on them. But when I disconnected the speakers from the bluetooth menu and then reconnected them, the sound once again came only from the device itself.

    I have collected logs using the script you pointed out and will send them to you.


  • There was an update on the rc channel that landed this morning so, ufter the update, I followed the instructions in the first post. I then connected my Nokia J bluetooth headset to my Pro5 (turbo). There is a crackling noise that comes out of the phone speaker (the bottom loud speaker, not the small top speaker used for phonecalls). The calls don't go through the bluetooth headset, neither is the music. Actually the music app doesn't even show any progress in playing the music. After disconnecting the bluetooth headset and restarting the music app, songs do play throught the loudspeaker of the phone. Also, after disconnecting the bluetooth headset, the phonecalls work.

    Another thing is that, even without connecting the bluetooth headset, ofonod uses 100% of one core of the cpu, so I had to stop it with kill.