13

I already spent hours and hours to get my bluetooth audio device running.

  • System: Ubuntu 16.04 LTS Xenial, all updates installed, running on a Lenovo Y50 Notebook

  • Device: Bluetooth receiver MR230, with analog audio output. It is meant to connect to an old hi-fi system. The device won't connect automatically, but I can find, pair, trust, and connect it with bluetoothctl without problems. The bluetooth manager shows it as a headphone.

  • the pactl list short command shows, that the modules module-bluetooth-discover, module-bluez5-discover, module-switch-on-connect, and module-bluetooth-policy are all running (after I started them manually)

But still, I can't choose the device in pavucontrol because it doesn't appear there. I might have messed up some of my config files during these tries, though it should still work as all necessary modules are loaded and the device is connected.

Any ideas?

Florian
  • 131
  • 1
  • 3

2 Answers2

0

For me, the reason I was getting no sink in pulseaudio was using hcitool instead of bluetoothctl to connect the headset. With bluez5, the latter is preferred, and the former isn't guaranteed to work.

But even having a pavucontrol-selectable sink did not give me sound. I've certainly heard noise level change between sink sleep and unsuspend transitions, but still no sound ended up actually playing (with unmuted sink at max volume). Also, pulseaudio refused to use the A2DP profile saying module-bluez5-device.c: Profile 'a2dp' not valid or not supported by device eventhough bluetoothctl <<< "info 00:11:22:33:44:55" was clearly listing Audio Sink UUID 0000110b-0000-1000-8000-00805f9b34fb. So PA was using HSP/HFP or whatever, and that means hardcoded 8kHz mono.


In the end, how I got actually working A2DP on Ubuntu 16.04.1 was to compile pulseaudio 9.0 from source. Very predictable build; a short transcript for those who know some compiling:

git clone --branch master git://anongit.freedesktop.org/pulseaudio/pulseaudio \
    && cd pulseaudio
./autogen.sh
./configure \
  --enable-bluez5 \
  --enable-bluez5-native-headset \
  --with-speex \
  && make -sj3

Just find and apt install those -dev packages configure asks for. make took ~100 seconds to complete.

Then quick in-place test:

echo 'autospawn=no' > ~/.config/pulse/client.conf; killall pulseaudio

src/pulseaudio --daemonize=no --log-level=info -F /etc/pulse/default.pa

At this point I got it working.

$ src/pulseaudio --version
pulseaudio 9.0-129-gf7b8

For final touch, I'd package that up into a .deb, install systemwide via dpkg -i and undo the autospawn=no change.

ulidtko
  • 5,782
-1

I found this answer at Here by Louis Gagnon

The permanent solution would be to add the blueman PPA and update your package to the latest version which has the bug fixed: https://launchpad.net/~blueman/+archive/ubuntu/ppa

sudo add-apt-repository ppa:blueman/ppa
sudo apt-get update
sudo apt-get upgrade

That way, you should no longer have to run the

sudo -i pactl load-module module-bluetooth-discover

command every time but only once. Works for me on 14.04 LTS (Trusty)

Source: http://www.lxle.net/forums/discussion/503/how-to-sink-audio-a2dp-to-your-bluetooth-headset/p1