[alsa-devel] External PCM IO Plugin development

Takashi Iwai tiwai at suse.de
Thu Apr 17 12:23:38 CEST 2008

At Wed, 2 Apr 2008 18:27:13 +0300,
Alexander Indenbaum wrote:
> Takashi & alsa-devel,
> I am playing with embedded Linux box based on kernel 2.4.36. Our box
> is equipped with proprietary chip which allows PCM playback using user
> space DMA pool API.  My target is to enable audio playback for ALSA
> clients by redirecting PCM stream into proprietary chip. I did a
> little RTFM and with a lot of help from this list discovered that
> fortunately ALSA expendable architecture allows such things as a part
> of PCM External Plugin SDK.
> So I downloaded and installed following ALSA 1.0.16 distribution components:
> - driver configured with "./configure  --with-cards=seq-dummy,dummy
> --with-kernel=/path/to/my/linux-2.4.36"
> - lib configured with "./configure --with-pcm-plugins=all"
> I looked at Jack IO plugin at plugins and started with skeleton plugin
> of my own: pcm_sigma.c (attached).
> I hope to redirect PCM into my plugin using following /etc/asound.conf
> =============
> pcm.!default {
>         type sigma
> }
> =============
> What I see when I fire ALSA client ( friefox with YouTube flash ) that ALSA
> 1. loads/links my module: ALSA lib dlmisc.c:51:(snd_dlopen) snd_dlopen
> name = (/usr/lib/alsa-lib/libasound_module_pcm_sigma.so)
> 2. calls open interface of the module: _snd_pcm_sigma_open @ pcm_sigma.c:118
> snd_pcm_sigma_open @ pcm_sigma.c:86
> 3. calls close interface of the module: snd_pcm_sigma_close @ pcm_sigma.c:23
> 4. goto 2
> So basically what I see is an infinite open/close loop without any
> call to other interfaces of the module. I hoped to get my hands on PCM
> stream and start to push it into our proprietary chip :(.
> Is my PCM IO Plugin approach correct?

I think yes.

> Is my configuration (/etc/asound.conf) correct?

If the plugin object gets called anyhow, it should be correct.

> Is my implemention of PCM IO plugin interface correct? Should I
> implement additional methods?

Did you try any other program such as aplay?
Flashplayer is the hardest thing to debug...


More information about the Alsa-devel mailing list