Summary: | /etc/init.d/alsasound drivers warning | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Botykai Zsolt <zsolt.botykai> |
Component: | Current packages | Assignee: | 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
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. |