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

system.sh: add console= parameter
author Pascal Bellard <pascal.bellard@slitaz.org>
date Wed May 18 21:45:02 2011 +0200 (2011-05-18)
parents f922801566b2
children 23be5da0f57c
rev   line source
pankso@262 1 #!/bin/sh
pankso@262 2 # /etc/init.d/system.sh - SliTaz hardware configuration.
pankso@262 3 #
pankso@262 4 # This script configures the sound card and screen. Tazhw is used earlier
paul@265 5 # at boot time to autoconfigure PCI and USB devices. It also configures
paul@265 6 # system language, keyboard and TZ in live mode.
pankso@262 7 #
pankso@262 8 . /etc/init.d/rc.functions
pankso@262 9
pankso@262 10 # Parse cmdline args for boot options (See also rcS and bootopts.sh).
pankso@262 11 XARG=""
pankso@262 12 for opt in $(cat /proc/cmdline)
pankso@262 13 do
pankso@262 14 case $opt in
pascal@268 15 console=*)
pascal@268 16 sed -i "s/tty1/${opt#console=}/g;/^tty[2-9]::/d" \
pascal@268 17 /etc/inittab ;;
pankso@262 18 sound=*)
pankso@262 19 DRIVER=${opt#sound=} ;;
pankso@262 20 xarg=*)
pankso@262 21 XARG="$XARG ${opt#xarg=}" ;;
pankso@262 22 screen=text)
pankso@262 23 SCREEN=text
pankso@262 24 # Disable X.
pankso@262 25 echo -n "Disabling X login manager: slim..."
pankso@262 26 . /etc/rcS.conf
pankso@262 27 RUN_DAEMONS=$(echo $RUN_DAEMONS | sed s/' slim'/''/)
pankso@262 28 sed -i s/"RUN_DAEMONS.*"/"RUN_DAEMONS=\"$RUN_DAEMONS\"/" /etc/rcS.conf
pankso@262 29 status ;;
pankso@262 30 screen=*)
pankso@262 31 SCREEN=${opt#screen=} ;;
pankso@262 32 *)
pankso@262 33 continue ;;
pankso@262 34 esac
pankso@262 35 done
pankso@262 36
pankso@262 37 # Sound configuration stuff. First check if sound=no and remove all
pankso@262 38 # sound Kernel modules.
pankso@262 39 if [ -n "$DRIVER" ]; then
pankso@262 40 case "$DRIVER" in
pankso@262 41 no)
pankso@262 42 echo -n "Removing all sound kernel modules..."
pankso@262 43 rm -rf /lib/modules/`uname -r`/kernel/sound
pankso@262 44 status
pankso@262 45 echo -n "Removing all sound packages..."
pankso@262 46 for i in $(grep -l '^DEPENDS=.*alsa-lib' /var/lib/tazpkg/installed/*/receipt) ; do
pankso@262 47 pkg=${i#/var/lib/tazpkg/installed/}
pankso@262 48 echo 'y' | tazpkg remove ${pkg%/*} > /dev/null
pankso@262 49 done
pankso@262 50 for i in alsa-lib mhwaveedit asunder libcddb ; do
pankso@262 51 echo 'y' | tazpkg remove $i > /dev/null
pankso@262 52 done
pankso@262 53 status ;;
pankso@262 54 noconf)
pankso@262 55 echo "Sound configuration was disabled from cmdline..." ;;
pankso@262 56 *)
pankso@262 57 if [ -x /usr/sbin/soundconf ]; then
pankso@262 58 echo "Using sound kernel module $DRIVER..."
pankso@262 59 /usr/sbin/soundconf -M $DRIVER
pankso@262 60 fi ;;
pankso@262 61 esac
pankso@262 62 # Sound card may already be detected by PCI-detect.
pankso@262 63 elif [ -d /proc/asound ]; then
pankso@262 64 # Restore sound config for installed system.
pankso@262 65 if [ -s /etc/asound.state ]; then
pankso@262 66 echo -n "Restoring last alsa configuration..."
pankso@262 67 alsactl restore
pankso@262 68 status
pankso@262 69 else
pankso@262 70 /usr/sbin/setmixer
pankso@262 71 fi
pankso@262 72 # Start soundconf to config driver and load module for Live mode
pankso@262 73 # if not yet detected.
pankso@262 74 /usr/bin/amixer >/dev/null || /usr/sbin/soundconf
pankso@262 75 else
pankso@262 76 echo "Unable to configure sound card."
pankso@262 77 fi
pankso@262 78
pankso@262 79 # Start TazPanel
pankso@262 80 [ -x /usr/bin/tazpanel ] && tazpanel start
pankso@262 81
pankso@262 82 # Auto recharge packages list (after network connection of course)
pankso@262 83 [ "$RECHARGE_PACKAGES_LIST" == "yes" ] && tazpkg recharge &
pankso@262 84
pankso@262 85 # Locale config. Do a gui config for both lang/keymap.
pankso@262 86 echo "Checking if /etc/locale.conf exists... "
pankso@262 87 if [ ! -s "/etc/locale.conf" ]; then
pankso@262 88 if [ "$SCREEN" != "text" ] && [ -x /usr/bin/Xorg ]; then
pankso@263 89 echo "Starting TazBox configuration..."
pankso@262 90 DISPLAY=:1 tazbox boot
pankso@262 91 else
pankso@262 92 tazlocale
pankso@262 93 fi
pankso@262 94 else
pankso@267 95 lang=$(cat /etc/locale.conf | fgrep LANG | cut -d "=" -f 2)
pankso@267 96 echo -n "Locale configuration: $lang" && status
pankso@262 97 fi
pankso@262 98
pankso@262 99 # Keymap config.
pankso@262 100 if [ -s "/etc/keymap.conf" ]; then
pankso@262 101 KEYMAP=$(cat /etc/keymap.conf)
pankso@262 102 echo "Keymap configuration: $KEYMAP"
pankso@262 103 if [ -x /bin/loadkeys ]; then
pankso@262 104 loadkeys $KEYMAP
pankso@262 105 else
pankso@262 106 loadkmap < /usr/share/kmap/$KEYMAP.kmap
pankso@262 107 fi
pankso@262 108 else
pankso@262 109 tazkeymap
pankso@262 110 fi
pankso@262 111
pankso@262 112 # Timezone config. Set timezone using the keymap config for fr, be, fr_CH
pankso@262 113 # and ca with Montreal.
pankso@262 114 if [ ! -s "/etc/TZ" ]; then
pankso@262 115 map=$(cat /etc/keymap.conf)
pankso@262 116 case "$map" in
pankso@262 117 fr-latin1|be-latin1)
pankso@262 118 echo "Europe/Paris" > /etc/TZ ;;
pankso@262 119 fr_CH-latin1|de_CH-latin1)
pankso@262 120 echo "Europe/Zurich" > /etc/TZ ;;
pankso@262 121 cf)
pankso@262 122 echo "America/Montreal" > /etc/TZ ;;
pankso@262 123 *)
pankso@262 124 echo "UTC" > /etc/TZ ;;
pankso@262 125 esac
pankso@262 126 fi
pankso@262 127
pankso@262 128 # Xorg auto configuration.
pankso@262 129 if [ "$SCREEN" != "text" -a ! -s /etc/X11/xorg.conf -a -x /usr/bin/Xorg ]; then
pankso@262 130 echo "Configuring Xorg..."
pankso@262 131 # $HOME is not yet set.
pankso@262 132 HOME=/root
pankso@262 133 sed -i 's|/usr/bin/Xvesa|/usr/bin/Xorg|' /etc/slim.conf
pankso@262 134 sed -i s/"^xserver_arguments"/'\#xserver_arguments'/ /etc/slim.conf
pankso@262 135 tazx config-xorg 2>/var/log/xorg.configure.log
pankso@262 136 fi
pankso@262 137
pankso@262 138 # Start X sesssion as soon as possible in Live/frugal mode. HD install
paul@265 139 # can use FAST_BOOT_X which starts X beforehand. In live mode we need
pankso@262 140 # keymap config for Xorg configuration and a working Xorg config.
pankso@264 141 #if [ "$SCREEN" != "text" ] && [ -x /usr/bin/slim ]; then
pankso@264 142 #if fgrep -q root=/dev/null /proc/cmdline; then
pankso@264 143 #/etc/init.d/slim start
pankso@264 144 #fi
pankso@264 145 #fi
pankso@262 146
pankso@262 147 # Firefox hack to get the right locale.
pankso@262 148 if fgrep -q "fr_" /etc/locale.conf; then
pankso@262 149 # But is the fox installed ?
pankso@262 150 if [ -f "/var/lib/tazpkg/installed/firefox/receipt" ]; then
pankso@262 151 . /var/lib/tazpkg/installed/firefox/receipt
pankso@262 152 sed -i 's/en-US/fr/' /etc/firefox/pref/firefox-l10n.js
pankso@262 153 fi
pankso@262 154 fi