Twinkle with Bluetooth headset - SOLVED

Ian Pilcher arequipeno at gmail.com
Sun Nov 21 01:34:33 UTC 2010


I figured this out.  The first thing that you need to know is that just
about every example out there is incorrect for the way Fedora does
things (assuming that you're using PulseAudio).

The standard /etc/asound.conf on Fedora 14 is:

#
# Place your global alsa-lib configuration here...
#

@hooks [
        {
                func load
                files [
                        "/etc/alsa/pulse-default.conf"
                ]
                errors false
        }
]

All this does is "include" /etc/alsa/pulse-default.conf (if it exists).
/etc/alsa/pulse-default.conf is part of the alsa-plugins-pulseaudio
package, and it contains:

# PulseAudio plugin configuration
# $Id: pulse-default.conf,v 1.3 2008/03/09 15:50:49 lkundrak Exp $


# Let's create a virtual device "pulse" for mixer and PCM


pcm.pulse {
    type pulse
    hint {
        description "PulseAudio Sound Server"
    }
}

ctl.pulse {
    type pulse
    hint {
        description "PulseAudio Sound Server"
    }
}

# Let's make it the default!

pcm.!default {
    type pulse
    hint {
        description "Default"
    }
}

ctl.!default {
    type pulse
    hint {
        description "Default"
    }
}

The effect of this is to route the default ALSA playback and capture
devices to PulseAudio, where they will use the default PulseAudio sink
and source respectively.  This explains why programs like Twinkle and
aplay were able to play audio through my headset after I used KDE to
set it as the preferred output device.

Unfortunately, KDE's multimedia applet doesn't appear to be as good at
setting the preferred capture device (possibly because of user error).
Once I used padevchooser to set the default source, arecord started
using the headset microphone.

Of course, I don't necessarily want to change my PulseAudio preferences
just to run a softphone.  Fortunately, the ALSA PulseAudio plugin makes
it possible to create ALSA devices that are mapped to a specific Pulse-
Audio sink or source.  Here is my .asoundrc:

pcm.hk201_sink {
    type pulse
    device bluez_sink.00_24_1C_36_A3_6B
    hint {
        description "Motorola HK201 - Speaker"
    }
}

pcm.hk201_source {
    type pulse
    device bluez_source.00_24_1C_36_A3_6B
    hint {
        description "Motorola HK201 - Microphone"
    }
}

(You can get PulseAudio device names with the "pactl list" command.)

With this configuration, ALSA applications can play to or record from
the headset by specifying the hk201_sink or hk201_source device.

I hope this helps someone out there avoid the pain I went through to get
this set up.

-- 
========================================================================
Ian Pilcher                                         arequipeno at gmail.com
========================================================================



More information about the users mailing list