Run the mount command inside config_fstab only if "$NOSWAP" is not set
[grml-autoconfig.git] / autoconfig.functions
index 7714ef2..40ad6b3 100755 (executable)
@@ -4,7 +4,7 @@
 # Authors:       grml-team (grml.org), (c) Klaus Knopper <knopper@knopper.net>, (c) Michael Prokop <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
-# Latest change: Mon Nov 27 21:02:23 CET 2006 [mika]
+# Latest change: Mon Feb 19 18:59:09 CET 2007 [mika]
 ################################################################################
 
 # {{{ path, variables, signals, umask, zsh
@@ -210,10 +210,10 @@ config_language(){
     if ! checkbootparam "nodefaultfont" >>$DEBUG 2>&1 ; then
        # [ -n "$UTF8" ] && CONSOLEFONT='LatArCyrHeb-16' || CONSOLEFONT='Lat15-Terminus16'
        # if [ -r /usr/share/consolefonts/Lat15-Terminus16.psf.gz ] ; then
-       if [ -r /usr/share/consolefonts/Uni3-Terminus14.psf.gz ] ; then
-          CONSOLEFONT='Uni3-Terminus14'
+       if [ -r /usr/share/consolefonts/Uni3-Terminus16.psf.gz ] ; then
+          CONSOLEFONT='Uni3-Terminus16'
        else
-          ewarn "/usr/share/consolefonts/Uni3-Terminus14.psf.gz not available. Please upgrade package console-terminus." ; eend 1
+          ewarn "/usr/share/consolefonts/Uni3-Terminus16.psf.gz not available. Please upgrade package console-terminus." ; eend 1
        fi
     fi
  fi
@@ -280,22 +280,27 @@ config_language(){
      einfo "Running consolechars using ${CONSOLEFONT}"
      consolechars -f $CONSOLEFONT || consolechars -d
      eend $?
-
-#     if [ -n "$UTF8" ] ; then
-#        einfo "Notice: run 'filterm - dynafont' in your shell to enable a unicode capable console."
-#     fi
   fi
 
   # we have to set up all consoles, therefore loop it over all ttys:
   if [ -n "$CHARMAP" ] ; then
-   einfo "Running consolechars for ${CHARMAP}"
-   NUM_CONSOLES=`fgconsole --next-available`
-   NUM_CONSOLES=`expr ${NUM_CONSOLES} - 1`
-   [ ${NUM_CONSOLES} -eq 1 ] && NUM_CONSOLES=6
-   for vc in `seq 0 ${NUM_CONSOLES}`  ; do
-     consolechars --tty=/dev/tty${vc} -m ${CHARMAP} ; RC=$?
-   done
-   eend ${RC}
+     einfo "Running consolechars for ${CHARMAP}"
+     NUM_CONSOLES=`fgconsole --next-available`
+     NUM_CONSOLES=`expr ${NUM_CONSOLES} - 1`
+     [ ${NUM_CONSOLES} -eq 1 ] && NUM_CONSOLES=6
+     for vc in `seq 0 ${NUM_CONSOLES}`  ; do
+       consolechars --tty=/dev/tty${vc} -m ${CHARMAP} ; RC=$?
+     done
+     eend ${RC}
+  fi
+
+  # activate unicode console if running within utf8 environment
+  if [ -r /etc/default/locale ] ; then
+     if grep -q "LANG=.*UTF" /etc/default/locale ; then
+        einfo "Setting up unicode environment."
+        unicode_start
+        eend $?
+     fi
   fi
 
  eoutdent
@@ -357,7 +362,20 @@ config_time(){
 # {{{ print kernel info
 config_kernel(){
   vmware-detect &>/dev/null && VMWARE="inside ${WHITE}VMWare${NORMAL}"
+  [ -d /proc/xen ] && VMWARE='' # vmware-detect returns '0' when running with a Xen-enabled kernel
   einfo "Running Linux Kernel $KERNEL $VMWARE" ; eend 0
+  if [ -r /proc/cpuinfo ] ; then
+     if egrep -q '^flags.*(vmx|svm)' /proc/cpuinfo ; then
+       eindent
+       einfo 'CPU(s) featuring virtualization technology detected' ; eend 0
+       eoutdent
+     fi
+  fi
+  if [ -d /proc/xen ] ; then
+     eindent
+     einfo 'Running kernel featuring support for Xen detected' ; eend 0
+     eoutdent
+  fi
 }
 # }}}
 
@@ -1020,9 +1038,11 @@ if [ -n "$partitions" ]; then
     *) continue ;;
     # *) NONEFOUND='1'; continue ;;
   esac
-  mount -o "$MOUNTOPTS" -t $f $p $m 2>>$DEBUG || continue
-  # Activate swapfile, if exists
-  SWAPFILE="$(/bin/ls -1d $m/[Gg][Rr][Mm][Ll].[Ss][Ww][Pp] 2>/dev/null)"
+  if [ -z "$NOSWAP" ] ; then
+     mount -o "$MOUNTOPTS" -t $f $p $m 2>>$DEBUG || continue
+     # Activate swapfile, if exists
+     SWAPFILE="$(/bin/ls -1d $m/[Gg][Rr][Mm][Ll].[Ss][Ww][Pp] 2>/dev/null)"
+  fi
   if [ -z "$NOSWAP" -a -n "$SWAPFILE" -a -f "$SWAPFILE" ]; then
    mount -o remount,rw $m
    if swapon "$SWAPFILE" 2>>$DEBUG ; then
@@ -1073,22 +1093,19 @@ if checkbootparam "ipv6"; then
   # we probably need some time until stateless autoconfiguration has happened
   sleep 2
   NETDEVICES="$(awk -F: '/eth.:|tr.:|wlan.:/{print $1}' /proc/net/dev 2>>$DEBUG)"
-  for DEVICE in `echo "$NETDEVICES"`
-  do
-    eindent
-    einfo "$DEVICE:"
-    ADDRESSES="$(ifconfig $DEVICE | awk '/.*inet6 addr:.*/{print $3}')"
-    COUNT="$(ifconfig $DEVICE | awk '/.*inet6 addr:.*/{ sum += 1};END {print sum }')"
+  for DEVICE in `echo "$NETDEVICES"`; do
     eindent
-    for ADDR in `echo "$ADDRESSES"`
-    do
-      einfo "$ADDR"
-    done
-    if [ "$COUNT" -eq "0" ]
-    then
-      einfo "(none)" ; eend 1
-    fi
-    eoutdent
+      einfo "$DEVICE:"
+      ADDRESSES="$(ifconfig $DEVICE | awk '/.*inet6 addr:.*/{print $3}')"
+      COUNT="$(ifconfig $DEVICE | awk '/.*inet6 addr:.*/{ sum += 1};END {print sum }')"
+      eindent
+        for ADDR in `echo "$ADDRESSES"` ; do
+            einfo "$ADDR"
+        done
+        if [ "$COUNT" -eq "0" ] ; then
+           einfo "(none)" ; eend 1
+        fi
+      eoutdent
     eoutdent
   done
   eend 0
@@ -1269,6 +1286,7 @@ fi
 
 # {{{ Check for persistent homedir option and eventually mount /home from there, or use a loopback file.
 config_homedir(){
+if checkbootparam home ; then
 HOMEDIR="$(getbootparam home)"
 MYHOMEDEVICE=""
 MYHOMEMOUNTPOINT=""
@@ -1342,6 +1360,7 @@ $(cat /proc/mounts)
 EOT
   fi
 fi
+fi # checkbootparam home
 }
 # }}}
 
@@ -1607,9 +1626,17 @@ if checkbootparam startx ; then
 sudo -u $fstabuser -i /usr/bin/grml-x $WINDOWMANAGER 1>>$DEBUG
 EOF
    chmod 755 /etc/init.d/xstartup
-   sed -i 's/^allowed_users=.*/allowed_users=anybody/' /etc/X11/Xwrapper.config
-   sed -i 's#^6.*#6:2345:respawn:/bin/zsh --login -c "/etc/init.d/xstartup ; /bin/zsh"#'   /etc/inittab
+
+   sed -i 's#^6:.*#6:2345:respawn:/bin/zsh --login -c "/etc/init.d/xstartup ; /bin/zsh"#' /etc/inittab
+   
    /sbin/telinit q ; eend $?
+
+   if grep -q '^allowed_users=' /etc/X11/Xwrapper.config ; then
+      sed -i 's/^allowed_users=.*/allowed_users=anybody/' /etc/X11/Xwrapper.config
+   else
+      echo 'allowed_users=anybody' >> /etc/X11/Xwrapper.config
+   fi
+
   else
     eerror "We are not running from CD - startx will not work, skipping it.
      Please use something like xdm, gdm or kdm for starting X on a harddisk system!" ; eend 1
@@ -1930,7 +1957,7 @@ config_swraid(){
           ewarn "/etc/mdadm/mdadm.conf looks like a configured mdadm setup, will not touch it." ; eend 0
        fi
 
-       if ! checkbootparam 'swraid' ; then 
+       if ! checkbootparam 'swraid' ; then
           eindent
           einfo "Just run 'Start mdadm-raid' to assemble md arrays or boot using 'swraid' as bootoption for autostart."
           eoutdent