alsa-driver-1.0.3 with Linux 2.6.4 always has a FATAL modprobe error
when loading the ALSA modules for the first time.  However, if you remove
the ALSA modules and then immediately re-load them, there is never an error
and ALSA works ok.  Is this a bug or a modprobe.conf problem?
Exactly the same modules are loaded both when ALSA fails and when ALSA works.
However, even though exactly the same modules are loaded,
the module usage-counts change for both snd-pcm-oss and snd-emu8000-synth
from u.count == 1 when ALSA fails to u.count == 2 when ALSA works.
This is the only visible difference.
When you load the ALSA modules and then immediately remove them,
the ALSA-module file images are kept in the kernel cache,
so the next time you try loading the ALSA modules the kernel does not have
to wait for any disk I/O because the file image is almost instantly available
from kernel cache.  This difference in module loading times
seems to be the trigger for the problem.
Is there a race condition between the ALSA modules?

William

 $ reboot

# After rebooting:

 $ lsmod | sort # the initial modules
Module                  Size  Used by
pcspkr                  3422  0 

 $ alsamixer # causes ALSA modules to be loaded
             # according to /etc/modprobe.conf (see below)

 $ lsmod | sort > lsmod-alsa-failed # modules failed

 $ rmmod-alsa.sh # script removes ALSA modules
                 # but kernel keeps module files in its cache

 $ alsamixer

 $ lsmod | sort > lsmod-alsa-worked (see below)

 $ diff lsmod-alsa-failed lsmod-alsa-worked # only module usage-counts differ

Module                  Size  Used by
25c25
< snd_mixer_oss          17312  1 snd_pcm_oss
---
> snd_mixer_oss          17312  2 snd_pcm_oss
36c36
< snd_sbawe              28928  1 snd_emu8000_synth
---
> snd_sbawe              28928  2 snd_emu8000_synth

 $ grep -E sound\|snd /etc/modprobe.conf
alias char-major-14-* soundcore
alias char-major-116-* snd
alias snd-card-0 snd-sbawe
alias sound-slot-0 snd-sbawe
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
options snd major=116 cards_limit=1
options snd-sbawe index=0
install snd-sbawe /sbin/modprobe --first-time --ignore-install snd-sbawe && { 
/sbin/modprobe snd-opl3-lib; /sbin/modprobe snd-timer; /sbin/modprobe snd-emux-synth; 
/sbin/modprobe snd-emu8000-synth; /sbin/modprobe snd-seq-dummy; /sbin/modprobe 
snd-pcm-oss; /sbin/modprobe snd-mixer-oss; /sbin/modprobe snd-seq-oss; /sbin/modprobe 
snd-opl3-synth; /bin/true; }
install snd-seq-virmidi /sbin/modprobe --first-time --ignore-install snd-seq-virmidi 
&& { /sbin/modprobe snd-virmidi; /bin/true; }
install snd-mixer-oss /sbin/modprobe --first-time --ignore-install snd-mixer-oss && { 
/usr/sbin/aumix -f /usr/etc/aumixrc -L; /bin/true; }
remove snd-sbawe { /sbin/modprobe -r snd-pcm-oss; /sbin/modprobe -r snd-mixer-oss; 
/sbin/modprobe -r snd-seq-oss; /sbin/modprobe -r snd-opl3-synth; } ; /sbin/modprobe -r 
--first-time --ignore-remove snd-sbawe

 $ cat lsmod-alsa-worked

Module                  Size  Used by
pcspkr                  3422  0 
snd                    52404  24 
snd_pcm_oss,snd_mixer_oss,snd_seq_dummy,snd_emu8000_synth,snd_emux_synth,snd_virmidi,snd_seq_virmidi,snd_util_mem,snd_seq_oss,snd_seq_midi_event,snd_opl3_synth,snd_seq_instr,snd_seq,snd_sbawe,snd_opl3_lib,snd_sb16_dsp,snd_pcm,snd_timer,snd_sb16_csp,snd_sb_common,snd_hwdep,snd_mpu401_uart,snd_rawmidi,snd_seq_device
snd_ainstr_fm           2568  1 snd_opl3_synth
snd_emu8000_synth      14722  0 
snd_emux_synth         34686  1 snd_emu8000_synth
snd_hwdep               8960  3 snd_emux_synth,snd_opl3_lib,snd_sb16_csp
snd_mixer_oss          17008  2 snd_pcm_oss
snd_mpu401_uart         7168  1 snd_sbawe
snd_opl3_lib            9888  2 snd_opl3_synth,snd_sbawe
snd_opl3_synth         14400  0 
snd_page_alloc         11364  1 snd_pcm
snd_pcm                92604  3 snd_pcm_oss,snd_emu8000_synth,snd_sb16_dsp
snd_pcm_oss            48644  0 
snd_rawmidi            23264  2 snd_seq_virmidi,snd_mpu401_uart
snd_sb16_csp           19322  1 snd_sbawe
snd_sb16_dsp           10710  1 snd_sbawe
snd_sb_common          14848  3 snd_sbawe,snd_sb16_dsp,snd_sb16_csp
snd_sbawe              28518  2 snd_emu8000_synth
snd_seq                50000  10 
snd_seq_dummy,snd_emux_synth,snd_seq_virmidi,snd_seq_oss,snd_seq_midi_event,snd_opl3_synth,snd_seq_instr,snd_seq_midi_emul
snd_seq_device          7716  8 
snd_emu8000_synth,snd_emux_synth,snd_seq_oss,snd_opl3_synth,snd_seq,snd_sbawe,snd_opl3_lib,snd_rawmidi
snd_seq_dummy           3072  0 
snd_seq_instr           8352  1 snd_opl3_synth
snd_seq_midi_emul       7264  2 snd_emux_synth,snd_opl3_synth
snd_seq_midi_event      7296  2 snd_seq_virmidi,snd_seq_oss
snd_seq_oss            31104  0 
snd_seq_virmidi         7072  2 snd_emux_synth,snd_virmidi
snd_timer              24222  3 snd_seq,snd_opl3_lib,snd_pcm
snd_util_mem            4610  2 snd_emu8000_synth,snd_emux_synth
snd_virmidi             3758  0 


-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to