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

Use tee to log boot and hide loadkey output
author Christophe Lincoln <pankso@slitaz.org>
date Sat Jun 02 01:43:00 2012 +0200 (2012-06-02)
parents 175315b7699d
children 3dd56819a891
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 screen=*)
pankso@262 25 SCREEN=${opt#screen=} ;;
pankso@262 26 *)
pankso@262 27 continue ;;
pankso@262 28 esac
pankso@262 29 done
pankso@262 30
pankso@262 31 # Sound configuration stuff. First check if sound=no and remove all
pankso@262 32 # sound Kernel modules.
pankso@262 33 if [ -n "$DRIVER" ]; then
pankso@262 34 case "$DRIVER" in
pankso@302 35 no)
pankso@302 36 echo -n "Removing all sound kernel modules..."
pankso@302 37 rm -rf /lib/modules/$(uname -r)/kernel/sound
pankso@302 38 status
pankso@302 39 echo -n "Removing all sound packages..."
pankso@302 40 for i in $(grep -l '^DEPENDS=.*alsa-lib' /var/lib/tazpkg/installed/*/receipt) ; do
pankso@302 41 pkg=${i#/var/lib/tazpkg/installed/}
pankso@302 42 echo 'y' | tazpkg remove ${pkg%/*} > /dev/null
pankso@302 43 done
pankso@302 44 for i in alsa-lib mhwaveedit asunder libcddb ; do
pankso@302 45 echo 'y' | tazpkg remove $i > /dev/null
pankso@302 46 done
pankso@302 47 status ;;
pankso@302 48 noconf)
pankso@302 49 echo "Sound configuration was disabled from cmdline..." ;;
pankso@302 50 *)
pankso@302 51 if [ -x /usr/sbin/soundconf ]; then
pankso@302 52 echo "Using sound kernel module $DRIVER..."
pankso@302 53 /usr/sbin/soundconf -M $DRIVER
pankso@302 54 fi ;;
pankso@262 55 esac
pankso@262 56 # Sound card may already be detected by PCI-detect.
pankso@262 57 elif [ -d /proc/asound ]; then
pankso@262 58 # Restore sound config for installed system.
pankso@280 59 if [ -s /var/lib/alsa/asound.state ]; then
pankso@262 60 echo -n "Restoring last alsa configuration..."
pankso@262 61 alsactl restore
pankso@262 62 status
pankso@262 63 else
pankso@262 64 /usr/sbin/setmixer
pankso@262 65 fi
pankso@262 66 # Start soundconf to config driver and load module for Live mode
pankso@262 67 # if not yet detected.
pankso@262 68 /usr/bin/amixer >/dev/null || /usr/sbin/soundconf
pankso@262 69 else
pankso@262 70 echo "Unable to configure sound card."
pankso@262 71 fi
pankso@262 72
pankso@306 73 # Locale config
pankso@262 74 if [ ! -s "/etc/locale.conf" ]; then
pankso@300 75 echo "Setting system locale to: POSIX (English)"
pankso@299 76 echo -e "LANG=POSIX\nLC_ALL=POSIX" > /etc/locale.conf
pankso@262 77 fi
pankso@300 78 . /etc/locale.conf
pankso@306 79 echo -n "Setting system locale: $LANG"
pankso@306 80 export LC_ALL=$LANG
pankso@300 81 . /lib/libtaz.sh && status
pankso@262 82
pankso@306 83 # Keymap config: Default to us in live mode if kmap= was not used.
pankso@299 84 if [ ! -s "/etc/keymap.conf" ]; then
pankso@306 85 echo "Setting system keymap to: us (USA)"
pankso@299 86 echo "us" > /etc/keymap.conf
pankso@299 87 fi
pankso@300 88 kmap=$(cat /etc/keymap.conf)
pankso@306 89 echo -n "Loading console keymap: $kmap"
pankso@306 90 /sbin/tazkeymap $kmap >/dev/null
pankso@306 91 status
pankso@262 92
pankso@306 93 # Timezone config: Set timezone using the keymap config for fr, be, fr_CH
pankso@262 94 # and ca with Montreal.
pankso@262 95 if [ ! -s "/etc/TZ" ]; then
pankso@300 96 case "$kmap" in
pankso@262 97 fr-latin1|be-latin1)
pankso@262 98 echo "Europe/Paris" > /etc/TZ ;;
pankso@262 99 fr_CH-latin1|de_CH-latin1)
pankso@262 100 echo "Europe/Zurich" > /etc/TZ ;;
pankso@302 101 cf) echo "America/Montreal" > /etc/TZ ;;
pankso@302 102 *) echo "UTC" > /etc/TZ ;;
pankso@262 103 esac
pankso@262 104 fi
pankso@262 105
pankso@302 106 # Activate an eventual swap file or partition
pankso@302 107 if [ "$(fdisk -l | grep swap)" ]; then
pankso@302 108 for swd in $(fdisk -l | sed '/swap/!d;s/ .*//'); do
pankso@302 109 if ! grep -q "$swd " /etc/fstab; then
pankso@302 110 echo "Swap memory detected on: $swd"
pankso@302 111 cat >> /etc/fstab <<EOT
pankso@302 112 $swd swap swap default 0 0
pankso@302 113 EOT
pankso@302 114 fi
pankso@302 115 done
pankso@302 116 fi
pankso@302 117 if grep -q swap /etc/fstab; then
pankso@302 118 echo -n "Activating swap memory..."
pankso@302 119 swapon -a && status
pankso@302 120 fi
pankso@302 121
pankso@302 122 # Xorg auto configuration: $HOME is not yet set. We config even if
pankso@302 123 # screen=text so X can be started by users via 'startx'
pankso@302 124 if [ ! -s /etc/X11/xorg.conf ] && [ -x /usr/bin/Xorg ]; then
pankso@262 125 echo "Configuring Xorg..."
pankso@262 126 HOME=/root
pankso@262 127 tazx config-xorg 2>/var/log/xorg.configure.log
pankso@262 128 fi
pankso@262 129
pankso@302 130 # Start X sesssion as soon as possible
pankso@302 131 if [ "$SCREEN" != "text" ] && [ "$LOGIN_MANAGER" ]; then
pankso@302 132 echo -n "Starting X environment..."
pankso@302 133 /etc/init.d/dbus start >/dev/null
pankso@302 134 /etc/init.d/$LOGIN_MANAGER start >/dev/null &
pankso@302 135 status
pankso@302 136 fi
pankso@262 137
pankso@302 138 # Start TazPanel
pankso@302 139 [ -x /usr/bin/tazpanel ] && tazpanel start