[alsa-devel] got a segmentation fault when use multi-channel device

Zhang wei zhangwei at vimicro.com
Sat Apr 6 06:04:31 CEST 2013


hello everone.

i am now debuging the multi-channel device on my embeded board with
alsa-lib.The version alsa-driver and alsa-lib is 1.0.24.

 

----------------------------->

zz at board:$ ls /dev/snd/

by-path  controlC0  midiC0D0  pcmC0D0c  pcmC0D0p  pcmC0D1p  seq  timer

<---------------------------

i edit the asoundrc configure file.like this:

 

--------------------------------------------------->

 

pcm.!default{

  type hw

  card 0

}

 

ctl.!default{

  type hw

  card 0

}

 

#################################

## create a virtul device which has 4 channels for playback.

#################################

pcm.multi_playback{

  type multi;

  slaves.a.pcm "hw:0,0";

  slaves.a.channels 2;

  slaves.b.pcm "hw:0,1";

  slaves.b.channels 2;

  bindings.0.slave a;

  bindings.0.channel 0;

  bindings.1.slave a;

  bindings.1.channel 1;

  bindings.2.slave b;

  bindings.2.channel 0;

  bindings.3.slave b;

  bindings.3.channel 1;

}

 

ctl.multi_playback{

  type hw; 

  card 0;

}

 

pcm.ttable{

  type route;

  slave.pcm "multi_playback";

  slave.channels 4;

  ttable.0.0 1;

  ttable.1.1 1;

  ttable.2.2 1;

  ttable.3.3 1;

}

ctl.ttable {

  type hw;

  card 0;

}

<--------------------------------------------------

and then get the Segmentation fault:

 

-------------------------------------------------------------->

 

[root at board /tmp]#./pb_pcm_min 

open...ver:[0.71]

playback...capture...device=[multi_playback]

 

#####################snd_pcm_open...

zz[snd_dlsym_verify:122],vname=[_snd_config_hook_load_dlsym_config_hook_
001]

zz[snd_dlsym_verify:127]

zz[snd_dlsym:167]

zz[snd_dlsym:171],name=[snd_config_hook_load]

zz[snd_pcm_open_conf:2163]

zz[snd_dlsym_verify:122],vname=[__snd_pcm_multi_open_dlsym_pcm_001]

Segmentation fault

[root at board /tmp]#

<---------------------------------------------------------------

 

To my surpris, it will be fine when run on the PC under the Ubuntu
system.I used the same alsa-lib source code and the configure file
asoundrc.

 

in my codec-driver .i have not call the functions
:snd_soc_add_controls() / snd_soc_dapm_new_controls() /
snd_soc_dapm_add_routes(). is it the reason? But the programm have not
arrived here.

 

i have traced the source code when the Segmentation fault happened the
alsa-lib was calling the function dlysm() with the param
vname=__snd_pcm_multi_open_dlsym_pcm_001. But this will not happen on my
PC under Ubuntu. could you help me find out what's wrong with me?

 

thanks a lot.

zw



More information about the Alsa-devel mailing list