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
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.
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[-_]".
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
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}')"
gna. still not work properly. There have to be another flaw.
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 ]
but at least, the order is correct.
You don't have the snd-card-# alias defined.
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!
damn typos! confire -> config :-D
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.
$ 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.
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
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.
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.