slitaz-boot-scripts annotate etc/init.d/system.sh @ rev 330
Added tag 5.3.1 for changeset 11d0305fa1c6
author | Eric Joseph-Alexandre <erjo@slitaz.org> |
---|---|
date | Thu Jan 17 19:14:14 2013 +0100 (2013-01-17) |
parents | b08c444c5675 |
children | 6985bc31569e |
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 |
pascal@320 | 107 if [ "$(blkid | grep 'TYPE="swap"')" ]; then |
pascal@320 | 108 for swd in $(blkid | sed '/TYPE="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 |
pascal@319 | 112 $swd swap swap defaults 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 |
erjo@324 | 134 if [ $(/bin/hostname) == '(none)' ];then |
erjo@324 | 135 /bin/hostname -F /etc/hostname |
erjo@324 | 136 fi |
pankso@302 | 137 /etc/init.d/$LOGIN_MANAGER start >/dev/null & |
pankso@302 | 138 status |
pankso@302 | 139 fi |
pankso@262 | 140 |
pankso@302 | 141 # Start TazPanel |
pankso@302 | 142 [ -x /usr/bin/tazpanel ] && tazpanel start |