Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 81582

Summary: /etc/init.d/alsasound drivers warning
Product: Gentoo Linux Reporter: Botykai Zsolt <zsolt.botykai>
Component: Current packagesAssignee: Gentoo Sound Team <sound>
Status: VERIFIED WONTFIX    
Severity: minor CC: sbriesen, sound
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Botykai Zsolt 2005-02-10 23:18:12 UTC
Just rebooted for some kernel upgrade, and as the booting goes some warning popped up on the screen, like: 
"Could not detect custom ALSA settings.  Loading all detec
ted alsa drivers."
So I started to look after... 
/etc/init.d/alsasound said it:
DRIVERS="$(modprobe -c | grep -E "^[[:space:]]*alias[[:space:]]+snd-card
-[[:digit:]]" | awk '{print $2}')"
if [ -z "${DRIVERS}" ] && ! ([ -d /proc/asound ] && [ -z "$(grep ' no so
undcards ' /proc/asound/cards)" ]); then 
...
So I checked /etc/modules.conf
$ grep snd-card /etc/modules.conf | grep -v '^#'
alias snd-card-0 snd-intel8x0
OK, then checked:
# modprobe -c | grep snd-card
#
So it gave me nothin', what the heck?
(I know it's only a warning so my souncard works cause later the alsasound script find its module via pci, but who loves needless warnings which frightens the beginners?)

Reproducible: Always
Steps to Reproduce:
1. reboot while using alsa with aliases set up properly
2.
3.




$ sudo emerge info
Portage 2.0.51-r15 (default-linux/x86/2004.0, gcc-3.4.3,
glibc-2.3.4.20041102-r0, 2.6.10-gentoo-r7 i686)
=================================================================
System uname: 2.6.10-gentoo-r7 i686 Intel(R) Celeron(R) CPU 2.40GHz
Gentoo Base System version 1.6.9
Python:              dev-lang/python-2.3.4-r1 [2.3.4 (#1, Feb  9 2005, 09:18:48)]
ccache version 2.3 [enabled]
dev-lang/python:     2.3.4-r1
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.9.4, 1.8.5-r3, 1.5, 1.6.3, 1.4_p6, 1.7.9-r1
sys-devel/binutils:  2.15.92.0.2-r2
sys-devel/libtool:   1.5.10-r4
virtual/os-headers:  2.6.8.1-r2
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-O3 -march=pentium4 -funroll-loops -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d"
CXXFLAGS="-O3 -march=pentium4 -funroll-loops -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache distlocks fixpackages noinfo sandbox sfperms"
GENTOO_MIRRORS="http://intranet.online.hu/ http://gentoo.inode.at/
http://gentoo.mirror.icd.hu/ http://gentoo.math.bme.hu/
http://distfiles.gentoo.org
http://distro.ibiblio.org/pub/Linux/distributions/gentoo"
MAKEOPTS="-j2 -s"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="x86 X aalib alsa apm avi bash-completion berkdb bitmap-fonts bonobo cdr
crypt cups directfb encode esd f77 fam flac font-server foomaticdb fortran gdbm
gif gphoto2 gpm gtk gtk2 gtkhtml guile hal imagemagick imlib ipv6 java jikes
jpeg libg++ libwww mad maildir mbox mikmod motif mozilla mpeg ncurses nls nptl
nptlonly oggvorbis opengl oss pam pdflib perl png ppds python qt quicktime
readline ruby samba sdl slang spell ssl svga tcltk tcpd tiff truetype
truetype-fonts type1-fonts unicode usb xml xml2 xmms xv zlib linguas_en linguas_hu"
Unset:  ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS
Comment 1 Stefan Briesenick (RETIRED) gentoo-dev 2005-02-21 07:41:18 UTC
yeah, same problem here. And since I have 3 soundcards, the ordering is messed up now and nothing is working anymore.

BUT: I found the problem:

the used REGEX doesn't work anymore because the output format of "modprobe -c" changed in the past.

This have to be fixed ASAP!

I will post a working REGEX in a few mins.
Comment 2 Stefan Briesenick (RETIRED) gentoo-dev 2005-02-21 07:46:21 UTC
btw: the stupid grep/awk combination should be replaced with 'sed'.

Well, but I have the problem, that none of my three cards are listed in the "modprobe -c" output at all. At least not as "snd[-_]card[-_]".
Comment 3 Stefan Briesenick (RETIRED) gentoo-dev 2005-02-21 07:48:41 UTC
Output looks like (shortend):

alias pci:v0000109Ed00000878sv00000070sd0000FF01bc*sc*i* snd_bt87x
alias pci:v0000109Ed00000878sv*sd*bc*sc*i* snd_bt87x
alias pci:v0000109Ed00000879sv*sd*bc*sc*i* snd_bt87x
alias pci:v000010B9d00000111sv*sd*bc*sc*i* snd_cmipci
alias pci:v0000125Dd00001969sv*sd*bc*sc*i* snd_es1938
alias pci:v000013F6d00000100sv*sd*bc*sc*i* snd_cmipci
alias pci:v000013F6d00000101sv*sd*bc*sc*i* snd_cmipci
alias pci:v000013F6d00000111sv*sd*bc*sc*i* snd_cmipci
alias pci:v000013F6d00000112sv*sd*bc*sc*i* snd_cmipci
alias sound-service-?-0 snd_mixer_oss
alias sound-service-?-12 snd_pcm_oss
alias sound-service-?-1 snd_seq_oss
alias sound-service-?-3 snd_pcm_oss
alias sound-service-?-8 snd_seq_oss
alias symbol:snd_ac97_bus snd_ac97_codec
alias symbol:snd_ac97_get_short_name snd_ac97_codec
alias symbol:snd_ac97_mixer snd_ac97_codec
alias symbol:snd_ac97_pcm_assign snd_ac97_codec
alias symbol:snd_ac97_pcm_close snd_ac97_codec
alias symbol:snd_ac97_pcm_double_rate_rules snd_ac97_codec
alias symbol:snd_ac97_pcm_open snd_ac97_codec
alias symbol:snd_ac97_read snd_ac97_codec
alias symbol:snd_ac97_resume snd_ac97_codec
alias symbol:snd_ac97_set_rate snd_ac97_codec
alias symbol:snd_ac97_suspend snd_ac97_codec
alias symbol:snd_ac97_tune_hardware snd_ac97_codec
alias symbol:snd_ac97_update_bits snd_ac97_codec
alias symbol:snd_ac97_update snd_ac97_codec
alias symbol:snd_ac97_write_cache snd_ac97_codec
alias symbol:snd_ac97_write snd_ac97_codec
alias symbol:snd_card_disconnect snd
alias symbol:snd_card_file_add snd
Comment 4 Stefan Briesenick (RETIRED) gentoo-dev 2005-02-21 08:04:50 UTC
Take this as one line (sed w/o any blanks):

DRIVERS=$(sed -n "s/^[[:space:]]*alias[[:space:]]\+snd[-_]card[-_][[:digit:]]\+[[:space:]]\+\([^[:space:]]\+\).*$/\1/p" < /etc/modules.d/alsa)

well, at least it works! :-D

this is a replacement for:

DRIVERS="$(modprobe -c | grep -E "^[[:space:]]*alias[[:space:]]+snd-card-[[:digit:]]" | awk '{print $2}')"
Comment 5 Stefan Briesenick (RETIRED) gentoo-dev 2005-02-21 08:09:08 UTC
gna. still not work properly. There have to be another flaw.
Comment 6 Stefan Briesenick (RETIRED) gentoo-dev 2005-02-21 08:19:08 UTC
asus /etc/modules.d # /etc/init.d/alsasound start
 * Loading ALSA modules ...
 *   Loading: snd-cmipci ...                                                                                                             [ ok ]
 *   Loading: snd-es1938 ...                                                                                                             [ ok ]
 *   Loading: snd-bt87x ...                                                                                                              [ ok ]
 *   Loading: snd-seq-oss ...                                                                                                            [ ok ]
 *   Loading: snd-pcm-oss ...                                                                                                            [ ok ]
 *   Loading: snd-opl3-synth ...                                                                                                         [ ok ]
 *   Loading: snd-seq-midi ...                                                                                                           [ ok ]
 * Restoring Mixer Levels ...
/usr/sbin/alsactl: set_controls:1119: snd_ctl_open error: No such file or directory
/usr/sbin/alsactl: set_controls:1119: snd_ctl_open error: No such file or directory                                                      [ ok ]
Comment 7 Stefan Briesenick (RETIRED) gentoo-dev 2005-02-21 08:19:48 UTC
but at least, the order is correct.
Comment 8 Jeremy Huddleston (RETIRED) gentoo-dev 2005-02-23 23:36:28 UTC
You don't have the snd-card-# alias defined.
Comment 9 Stefan Briesenick (RETIRED) gentoo-dev 2005-02-24 00:44:14 UTC
I HAVE!
of course I have!

it's in /etc/modules.d/alsa and (after modules-update) in /etc/modules.conf

AND: I changed nothing on my ALSA-confire before it stopped working!
Comment 10 Stefan Briesenick (RETIRED) gentoo-dev 2005-02-24 00:45:25 UTC
damn typos! confire -> config :-D
Comment 11 Stefan Briesenick (RETIRED) gentoo-dev 2005-02-24 09:52:01 UTC
please REOPEN, since this *IS* a BUG!

The DRIVERS= expression in alsasound init-script is broken with latest modprobe (modutils). The output of "modprobe -c" changed *completely* and so the grep will never match.

I don't know what the best solution is to support old and new modprobe. But since it is broken now, "WONTFIX" will not be accepted.
Comment 12 Jeremy Huddleston (RETIRED) gentoo-dev 2005-02-24 10:37:12 UTC
$ modprobe -c | grep snd-card                                                                                
alias snd-card-0 snd-via82xx

I don't see snd-card listed in your modprobe -c output.  THAT is the problem.  If you still think this is a problem, come talk to us on #gentoo-media and we'll fix you up.
Comment 13 Stefan Briesenick (RETIRED) gentoo-dev 2005-02-24 11:12:07 UTC
please post a small fraction of "modprobe -c"

mine is:

[..]
alias symbol:snd_pcm_lib_writev snd_pcm
alias symbol:snd_opl3_interrupt snd_opl3_lib
alias symbol:csr1212_disassociate_keyval ieee1394
alias symbol:snd_ctl_free_one snd
alias symbol:zlib_inflateInit2_ zlib_inflate
alias symbol:usb_buffer_map usbcore
alias symbol:sirdev_raw_write sir_dev
alias symbol:i2o_driver_notify_controller_add_all i2o_core
alias symbol:highlevel_add_host ieee1394
[..]

And I assume, that YOUR "modprobe -c" shows something like:

# Set this to the correct number of cards.
# --- BEGIN: Generated by ALSACONF, do not edit. ---
# --- ALSACONF verion 1.0.8 ---
options snd  device_mode=0666
options snd_bt87x digital_rate=48000

alias snd-card-0   snd-cmipci
alias sound-slot-0 snd-cmipci
alias snd-card-1   snd-es1938
alias sound-slot-1 snd-es1938
alias snd-card-2   snd-bt87x
alias sound-slot-2 snd-bt87x


since this was the old behavior!

asus ~ # modprobe --version
module-init-tools version 3.1

Comment 14 Stefan Briesenick (RETIRED) gentoo-dev 2005-02-24 11:21:10 UTC
btw: I'm on #gentoo-media right now.

the first posted fraction of the "modprobe -c" was just an example, not the whole thingy. But indeed, "modprobe -c | grep snd-card" produces no output, as it did a few weeks ago. I didn't changed my modules.conf. And the needed snd-card-# entries are in my /etc/modules.conf

Nonetheless, the output format of "modprobe -c" has changed. Just compare your output to mine. Even if I had 'snd-card' entries in this output, the grep in DRIVERS= would *never* match. So it *IS* a bug.
Comment 15 Stefan Briesenick (RETIRED) gentoo-dev 2005-02-25 07:24:30 UTC
ok, I solved the problem for myself.

But for reference I post the solution and I'm not sure, if I should open a Bug for the baselayout nerds, since this is a Bug in modules-update.

My problem was, that /etc/modprobe.conf was empty (just the header). The /etc/modules.conf on the other hand was perfectly filled with anything needed.

Then I checked the source of modules-update and found out that it calls /sbin/generate-modprobe.conf. So I ran it manually and it displayed an syntax-error. I had 'option' instead of 'options' in one of my /etc/modules.d/ files. But modules-update didn't told me that! And that's odd, you can never find the error this way.

After fixing this, "modprobe -c" displayed beside the posted entries the needed ones also. STRANGE! VERY STRANGE!

So the 'grep' works indeed. My fault.

On the other hand, your "it's your problem + WONTFIX" wasn't the best/cute way to "solve" this bug.