# HG changeset patch # User Pascal Bellard # Date 1204709250 0 # Node ID 3da6316620ef8524839d86a6e3c814b824d2c0c0 # Parent 15b59bbf70c4a47d6acc87021d65395efb553a2c Cmdline: sound= support diff -r 15b59bbf70c4 -r 3da6316620ef etc/init.d/hwconf.sh --- a/etc/init.d/hwconf.sh Sat Mar 01 12:11:15 2008 +0000 +++ b/etc/init.d/hwconf.sh Wed Mar 05 09:27:30 2008 +0000 @@ -6,33 +6,35 @@ # Sound configuration stuff. First check if sound=no and remoce all sound # Kernel modules. # -if grep -q -w "sound=no" /proc/cmdline; then - echo -n "Removing all sound kernel modules..." - rm -rf /lib/modules/`uname -r`/kernel/sound - status - echo -n "Removing all sound packages..." - for i in $(grep -l '^DEPENDS=.*alsa-lib' /var/lib/tazpkg/installed/*/receipt) ; do - pkg=${i#/var/lib/tazpkg/installed/} - echo 'y' | tazpkg remove ${pkg%/*} > /dev/null - done - echo 'y' | tazpkg remove alsa-lib > /dev/null - status -else - # Config or not config - if grep -q -w "sound=noconf" /proc/cmdline; then - echo "Sound configuration is disable from cmdline..." - elif [ ! -f /var/lib/sound-card-driver ]; then - if [ -f /usr/sbin/soundconf ]; then - # Start soundconf to config driver and load module for Live mode - /usr/sbin/soundconf - else - echo "Unable to found: /usr/sbin/soundconf" - fi +if grep -q -w "sound=" /proc/cmdline; then + DRIVER=`cat /proc/cmdline | sed 's/.*sound=\([^ ]*\).*/\1/'` + case "$DRIVER" in + no) + echo -n "Removing all sound kernel modules..." + rm -rf /lib/modules/`uname -r`/kernel/sound + status + echo -n "Removing all sound packages..." + for i in $(grep -l '^DEPENDS=.*alsa-lib' /var/lib/tazpkg/installed/*/receipt) ; do + pkg=${i#/var/lib/tazpkg/installed/} + echo 'y' | tazpkg remove ${pkg%/*} > /dev/null + done + echo 'y' | tazpkg remove alsa-lib > /dev/null + status;; + noconf) + echo "Sound configuration is disable from cmdline...";; + *) + echo "Using sound kernel module $DRIVER...";; + echo "snd-$DRIVER" > /var/lib/sound-card-driver;; + esac +elif [ ! -f /var/lib/sound-card-driver ]; then + if [ -f /usr/sbin/soundconf ]; then + # Start soundconf to config driver and load module for Live mode + /usr/sbin/soundconf else - # /var/lib/sound-card-driver exist so sound is already configured. - continue + echo "Unable to found: /usr/sbin/soundconf" fi fi + # Restore sound config for installed system. if [ -f /var/lib/sound-card-driver ]; then echo -n "Restoring last alsa configuration..."