Bluetooth Headset and Lenovo T-61 on Debian 7.0

Levi Pearson levipearson at gmail.com
Thu Sep 19 11:12:35 MDT 2013


On Thu, Sep 19, 2013 at 10:24 AM, Charles Curley
<charlescurley at charlescurley.com> wrote:
> On Thu, 19 Sep 2013 08:07:56 -0600
> Levi Pearson <levipearson at gmail.com> wrote:

> Thanks. I suspect it is a configuration issue, involving bluez-alsa. I
> installed mplayer, which gives some diagnostics when it fails. I get:
>
> Selected audio codec: MP3 (MPEG audio layer 3) [libavcodec]
> AUDIO: 44100 Hz, 2 ch, floatle, 192.0 kbit/6.80% (ratio: 24000->352800)
> bt_audio_service_open: connect() failed: Connection refused (111)
> [AO_ALSA] Playback open error: Connection refused
> Failed to initialize audio driver 'alsa:device=bluetooth'
> Could not open/initialize audio device -> no sound.
> Audio: no sound
> Video: no video

A2DP supports mp3 encoding, but it does not require devices to
implement it. The required codec is a custom, simple mp3-like codec
that is rather poor quality but is easy to support.  It's called SBC,
which is is short for 'Low-complexity Sub-Band Codec', and bluez has
an implementation of it in their source code. As far as I remember,
bluez generally expects to get raw PCM audio for A2DP and then encodes
it itself via its built-in SBC implementation or some other codec if
it's supported on both ends and you've explicitly told it to use it.

You might want to check if the bose headset supports AAC or AptX,
which are common alternative codecs that would give higher quality
audio, if they're supported. I'm not entirely sure how to configure
bluez to use something other than SBC, but I know the hooks are there
somewhere. :)

>
> With a .asoundrc like so:
>
>
> pcm.bluetooth {
>         type bluetooth
>         # Bose
>         device "xx:xx:xx:xx:xx:xx"
>         profile "auto"
> }
>
> bluez-alsa has a reputation for being finicky, and one page I saw
> indicates that it is not well maintained.

ALSA config files are a mystery to me.  I have been using PulseAudio,
not because I love it, but because it's maintained and it actually
does a reasonable job of what it's designed to do these days, even on
low-resource systems. Based on comments I've seen in blogs and whatnot
from bluez developers, they seem to have decided that PulseAudio is
the only supported mechanism for bluetooth audio.

>
> I am not wild about shifting to pulse-audio, but may try that.
>
> Meanwhile, this morning I paired the headset with a friend's
> fondleslab. It work immediately and very nicely. So the headset is
> known good.
>

>> Bluez and PulseAudio are connected at the hip these days.  I'm
>> guessing the configuration you need is going to be in PulseAudio.
>> Make sure the bluetooth A2DP profile is enabled in bluez and that it's
>> creating PulseAudio routes that you can route your sound to in the
>> PulseAudio control panel. Most of this can be done via command line or
>> DBUS scripting interfaces as well, but that's a bit more involved and
>> not particularly well documented.
>
> Is there any documentation out there on how to do this? Bluez end user
> documentation is as rare as honest politicians. Bluez/PulseAudio
> documentation seems more common than Bluez/Alsa documentation.
>

Like I mentioned before, Bluez does not really support Bluez/Alsa at
all. Their attitude is that PulseAudio is the way to connect Bluetooth
into the Linux audio system, so you're likely to encounter a lot of
pain if you try to bypass it. Although I've had to fight with
PulseAudio a bit, that was far less pain (at least in my use case)
than attempting to glue bluez directly to Alsa.

The extent of Bluez documentation, at least last I checked a few
months ago, was their DBUS API description.  It's really poorly
documented.  I've had to do a lot of digging through source code to
understand how it and PulseAudio work well enough to find the source
of problems I've had and how to fix them.  Fortunately for you, most
of the problems were either due to the weirdness of the particular
embedded environment I am using or due to using Bluez as an audio sink
instead of a source, which hasn't been supported very long and doesn't
seem to be used very often.

>>
>> I'm actually using bluez as an A2DP sink, which is a bit more
>> involved, but I did play with setting up a headset earlier.  I've got
>> a bluetooth headset I can play with a bit later when I get off a
>> conference call and get into my office if you still have issues.
>
> Thanks. I'll try some things this morning, and maybe shift to
> PulseAudio. If those two don't produce useful results, I may call on
> you.

I've got a laptop with bluetooth here and my headset is charging, so
let me know if you need anything.

       --Levi


More information about the PLUG mailing list