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

Huge clean, colored rcS, faster, fix sound and other devices (used need a devtmpfs mounted on /dev) disabled logging for now
author Christophe Lincoln <pankso@slitaz.org>
date Fri Jun 01 21:46:07 2012 +0200 (2012-06-01)
parents 1dbfd813e21e
children 175982c0484c
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@300 73 # Locale config.
pankso@262 74 echo "Checking if /etc/locale.conf exists... "
pankso@262 75 if [ ! -s "/etc/locale.conf" ]; then
pankso@300 76 echo "Setting system locale to: POSIX (English)"
pankso@299 77 echo -e "LANG=POSIX\nLC_ALL=POSIX" > /etc/locale.conf
pankso@262 78 fi
pankso@300 79 . /etc/locale.conf
pankso@299 80 echo -n "Locale configuration: $LANG"
pankso@300 81 export LC_ALL
pankso@300 82 . /lib/libtaz.sh && status
pankso@262 83
pankso@300 84 # Keymap config. Default to us in live mode if kmap= was not used.
pankso@299 85 if [ ! -s "/etc/keymap.conf" ]; then
pankso@299 86 echo "us" > /etc/keymap.conf
pankso@299 87 fi
pankso@300 88 kmap=$(cat /etc/keymap.conf)
pankso@300 89 echo "Keymap configuration: $kmap"
pankso@300 90 /sbin/tazkeymap $kmap
pankso@262 91
pankso@262 92 # Timezone config. Set timezone using the keymap config for fr, be, fr_CH
pankso@262 93 # and ca with Montreal.
pankso@262 94 if [ ! -s "/etc/TZ" ]; then
pankso@300 95 case "$kmap" in
pankso@262 96 fr-latin1|be-latin1)
pankso@262 97 echo "Europe/Paris" > /etc/TZ ;;
pankso@262 98 fr_CH-latin1|de_CH-latin1)
pankso@262 99 echo "Europe/Zurich" > /etc/TZ ;;
pankso@302 100 cf) echo "America/Montreal" > /etc/TZ ;;
pankso@302 101 *) echo "UTC" > /etc/TZ ;;
pankso@262 102 esac
pankso@262 103 fi
pankso@262 104
pankso@302 105 # Activate an eventual swap file or partition
pankso@302 106 if [ "$(fdisk -l | grep swap)" ]; then
pankso@302 107 for swd in $(fdisk -l | sed '/swap/!d;s/ .*//'); do
pankso@302 108 if ! grep -q "$swd " /etc/fstab; then
pankso@302 109 echo "Swap memory detected on: $swd"
pankso@302 110 cat >> /etc/fstab <<EOT
pankso@302 111 $swd swap swap default 0 0
pankso@302 112 EOT
pankso@302 113 fi
pankso@302 114 done
pankso@302 115 fi
pankso@302 116 if grep -q swap /etc/fstab; then
pankso@302 117 echo -n "Activating swap memory..."
pankso@302 118 swapon -a && status
pankso@302 119 fi
pankso@302 120
pankso@302 121 # Xorg auto configuration: $HOME is not yet set. We config even if
pankso@302 122 # screen=text so X can be started by users via 'startx'
pankso@302 123 if [ ! -s /etc/X11/xorg.conf ] && [ -x /usr/bin/Xorg ]; then
pankso@262 124 echo "Configuring Xorg..."
pankso@262 125 HOME=/root
pankso@262 126 tazx config-xorg 2>/var/log/xorg.configure.log
pankso@262 127 fi
pankso@262 128
pankso@302 129 # Start X sesssion as soon as possible
pankso@302 130 if [ "$SCREEN" != "text" ] && [ "$LOGIN_MANAGER" ]; then
pankso@302 131 echo -n "Starting X environment..."
pankso@302 132 /etc/init.d/dbus start >/dev/null
pankso@302 133 /etc/init.d/$LOGIN_MANAGER start >/dev/null &
pankso@302 134 status
pankso@302 135 fi
pankso@262 136
pankso@302 137 # Start TazPanel
pankso@302 138 [ -x /usr/bin/tazpanel ] && tazpanel start