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 |