From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20040922 Description of problem: This is what it is currently push by kudzu to configure sound card : alias snd-card-1 snd-via82xx options snd-card-1 index=1 install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx && /usr/sbin/alsactl restore >/dev/null 2>&1 || : remove snd-via82xx { /usr/sbin/alsactl store >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-via82xx If "modprobe snd-via82xx" is done then "index=1" is not honored. "alsactl restore" failed if udev is enabled. See #133535 . Version-Release number of selected component (if applicable): kudzu-1.1.90-1 How reproducible: Always Steps to Reproduce: modprobe the second card first (like initscrips does in my system). That is : snd-ens1371 => snd-card-0 snd-via82xx => snd-card-1 At boot time, initscript does "modprobe snd-via82xx" before "modprobe snd-ens1371". Actual Results: $ cat /proc/asound/cards 0 [V8233Pre ]: VIA8233 - VIA 8233-Pre VIA 8233-Pre at 0xd400, irq 4 Expected Results: $ cat /proc/asound/cards 1 [V8233Pre ]: VIA8233 - VIA 8233-Pre VIA 8233-Pre at 0xd400, irq 4 Additional info: With udev the following line in modprobe.conf is useless : install snd-XXXX /sbin/modprobe --ignore-install snd-XXXX && /usr/sbin/alsactl restore >/dev/null 2>&1 || :
Created attachment 104360 [details] improve index sound card Add : options snd-XXXX index=n remove : install snd-XXXX /sbin/modprobe ...
Since FC3 use udev, "alias snd-card-X snd-XXXX" is useless. snd-card-X is used to autoload module. But udev does not feet with autoloading. Also, "remove <module>..." in modprobe.conf does not support alias. So "modprobe -r snd-card-X" does not store the setting of the card. Perhaps it's time to remove this alias. The previous patch change module_upgrade.c . I don't test module_upgrade.
"remove <module>" it's intentional that it doesn't support alias. Nothing will ever call 'modprobe -r snd-card-X', AFAIK; things will only remove the specific module. (and that's rare enough.)
So, why to keep "alias snd-card-X ...." ? This alias is interesting in one case (AFAIK) : $ modprobe -c | grep "alias.*snd-card-" | cut -f 3 -d ' ' snd-ens1371 snd-via82xx kmodule also provide these informations : $ kmodule | grep AUDIO | cut -f 2 -d ' ' snd-via82xx snd-ens1371 Before udev (with a static /dev) this alias was usefull for autoloading sound modules. With udev we have to explicitly load the module (initscript, modprobe, etc).
A version of this added in 1.1.112-1.
Oops, 1.1.113-1.