slitaz-boot-scripts annotate etc/init.d/system.sh @ rev 367

Fis sound card config initialization on first boot
author Christophe Lincoln <pankso@slitaz.org>
date Mon May 05 22:08:51 2014 +0200 (2014-05-05)
parents 27c455a9f7ac
children 95da8328cbb5
rev   line source
pankso@262 1 #!/bin/sh
pankso@302 2 #
pankso@302 3 # /etc/init.d/system.sh : SliTaz hardware configuration
pankso@262 4 #
pankso@262 5 # This script configures the sound card and screen. Tazhw is used earlier
paul@265 6 # at boot time to autoconfigure PCI and USB devices. It also configures
pankso@302 7 # system language, keyboard and TZ in live mode and start X.
pankso@262 8 #
pankso@262 9 . /etc/init.d/rc.functions
pankso@302 10 . /etc/rcS.conf
pankso@262 11
pankso@262 12 # Parse cmdline args for boot options (See also rcS and bootopts.sh).
pankso@262 13 XARG=""
pankso@262 14 for opt in $(cat /proc/cmdline)
pankso@262 15 do
pankso@262 16 case $opt in
pascal@268 17 console=*)
pascal@268 18 sed -i "s/tty1/${opt#console=}/g;/^tty[2-9]::/d" \
pascal@268 19 /etc/inittab ;;
pankso@262 20 sound=*)
pankso@262 21 DRIVER=${opt#sound=} ;;
pankso@262 22 xarg=*)
pankso@262 23 XARG="$XARG ${opt#xarg=}" ;;
pankso@262 24 *)
pankso@262 25 continue ;;
pankso@262 26 esac
pankso@262 27 done
pankso@262 28
pankso@262 29 # Sound configuration stuff. First check if sound=no and remove all
pankso@262 30 # sound Kernel modules.
pankso@262 31 if [ -n "$DRIVER" ]; then
pankso@262 32 case "$DRIVER" in
pankso@302 33 no)
pankso@302 34 echo -n "Removing all sound kernel modules..."
pankso@302 35 rm -rf /lib/modules/$(uname -r)/kernel/sound
pankso@302 36 status
pankso@302 37 echo -n "Removing all sound packages..."
pankso@302 38 for i in $(grep -l '^DEPENDS=.*alsa-lib' /var/lib/tazpkg/installed/*/receipt) ; do
pankso@302 39 pkg=${i#/var/lib/tazpkg/installed/}
pankso@302 40 echo 'y' | tazpkg remove ${pkg%/*} > /dev/null
pankso@302 41 done
pankso@302 42 for i in alsa-lib mhwaveedit asunder libcddb ; do
pankso@302 43 echo 'y' | tazpkg remove $i > /dev/null
pankso@302 44 done
pankso@302 45 status ;;
pankso@302 46 noconf)
pankso@302 47 echo "Sound configuration was disabled from cmdline..." ;;
pankso@302 48 *)
pankso@302 49 if [ -x /usr/sbin/soundconf ]; then
pankso@302 50 echo "Using sound kernel module $DRIVER..."
pankso@302 51 /usr/sbin/soundconf -M $DRIVER
pankso@302 52 fi ;;
pankso@262 53 esac
pankso@367 54 # Sound card may already be detected by kernel/udev
pankso@262 55 elif [ -d /proc/asound ]; then
pankso@367 56 # Restore sound config for installed system
pankso@280 57 if [ -s /var/lib/alsa/asound.state ]; then
pankso@262 58 echo -n "Restoring last alsa configuration..."
pankso@262 59 alsactl restore
pankso@262 60 status
pankso@262 61 else
pankso@367 62 # Initialize sound card
pankso@367 63 alsactl init
pankso@262 64 fi
pankso@262 65 else
pankso@262 66 echo "Unable to configure sound card."
pankso@262 67 fi
pankso@262 68
pankso@306 69 # Locale config
pankso@262 70 if [ ! -s "/etc/locale.conf" ]; then
pankso@300 71 echo "Setting system locale to: POSIX (English)"
pankso@299 72 echo -e "LANG=POSIX\nLC_ALL=POSIX" > /etc/locale.conf
pankso@262 73 fi
pankso@300 74 . /etc/locale.conf
pankso@306 75 echo -n "Setting system locale: $LANG"
pankso@306 76 export LC_ALL=$LANG
pankso@300 77 . /lib/libtaz.sh && status
pankso@262 78
pankso@306 79 # Keymap config: Default to us in live mode if kmap= was not used.
pankso@299 80 if [ ! -s "/etc/keymap.conf" ]; then
pankso@306 81 echo "Setting system keymap to: us (USA)"
pankso@299 82 echo "us" > /etc/keymap.conf
pankso@299 83 fi
pankso@300 84 kmap=$(cat /etc/keymap.conf)
pankso@306 85 echo -n "Loading console keymap: $kmap"
pankso@306 86 /sbin/tazkeymap $kmap >/dev/null
pankso@306 87 status
pankso@262 88
pankso@306 89 # Timezone config: Set timezone using the keymap config for fr, be, fr_CH
pankso@262 90 # and ca with Montreal.
pankso@262 91 if [ ! -s "/etc/TZ" ]; then
pankso@300 92 case "$kmap" in
pankso@262 93 fr-latin1|be-latin1)
pankso@262 94 echo "Europe/Paris" > /etc/TZ ;;
pankso@262 95 fr_CH-latin1|de_CH-latin1)
pankso@262 96 echo "Europe/Zurich" > /etc/TZ ;;
pankso@302 97 cf) echo "America/Montreal" > /etc/TZ ;;
pankso@302 98 *) echo "UTC" > /etc/TZ ;;
pankso@262 99 esac
pankso@262 100 fi
pankso@262 101
pankso@302 102 # Activate an eventual swap file or partition
pascal@320 103 if [ "$(blkid | grep 'TYPE="swap"')" ]; then
pascal@320 104 for swd in $(blkid | sed '/TYPE="swap"/!d;s/:.*//'); do
pankso@302 105 if ! grep -q "$swd " /etc/fstab; then
pankso@302 106 echo "Swap memory detected on: $swd"
pankso@302 107 cat >> /etc/fstab <<EOT
pascal@319 108 $swd swap swap defaults 0 0
pankso@302 109 EOT
pankso@302 110 fi
pankso@302 111 done
pankso@302 112 fi
pankso@302 113 if grep -q swap /etc/fstab; then
pankso@302 114 echo -n "Activating swap memory..."
pankso@302 115 swapon -a && status
pankso@302 116 fi
pankso@302 117
pankso@302 118 # Start TazPanel
pankso@302 119 [ -x /usr/bin/tazpanel ] && tazpanel start
pankso@364 120
pankso@364 121 # Kernel polling for automount
pankso@364 122 echo 5000 > /sys/module/block/parameters/events_dfl_poll_msecs 2>/dev/null