X-Git-Url: https://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=cb9b1df8f7e694636533644eb2b0ec0c36f73fae;hp=f6d99b3aeef504202802dc2b9644bfaf9688946c;hb=4c94aac0103471c3156be2e2cfd88b2441fdcd2d;hpb=cb028f47064411d908666b4211559febfeda1caa diff --git a/autoconfig.functions b/autoconfig.functions index f6d99b3..cb9b1df 100755 --- a/autoconfig.functions +++ b/autoconfig.functions @@ -4,7 +4,7 @@ # Authors: grml-team (grml.org), (c) Klaus Knopper , (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2. -# Latest change: Mon Feb 19 18:59:09 CET 2007 [mika] +# Latest change: Son Mär 25 12:32:37 CEST 2007 [mika] ################################################################################ # {{{ path, variables, signals, umask, zsh @@ -261,6 +261,7 @@ config_language(){ [[ "$KKEYBOARD" == 'at' ]] && KEYTABLE=de-latin1-nodeadkeys # write keyboard related variables to file for later use + [ -d /etc/sysconfig ] || mkdir /etc/sysconfig echo "KEYTABLE=\"$KEYTABLE\"" > /etc/sysconfig/keyboard echo "XKEYBOARD=\"$XKEYBOARD\"" >> /etc/sysconfig/keyboard echo "KDEKEYBOARD=\"$KDEKEYBOARD\"" >> /etc/sysconfig/keyboard @@ -337,24 +338,26 @@ config_userfstab(){ config_time(){ # don't touch the files if running from harddisk: if [ -z "$INSTALLED" ]; then - UTC="" - checkbootparam utc >>$DEBUG 2>&1 && UTC="-u" - checkbootparam gmt >>$DEBUG 2>&1 && UTC="-u" - # hwclock uses the TZ variable - if [ -r /etc/default/locale ] ; then - . /etc/default/locale - else - TZ=Europe/Vienna - fi - ERROR=$(TZ="$TZ" hwclock $UTC -s 2>&1) ; RC=$? - if [ -n "$ERROR" ] ; then - eindent - ERROR=$(TZ="$TZ" hwclock $UTC -s --directisa 2>&1) - if [ -n "$ERROR" ] ; then - eerror "Problem running hwclock: $ERROR" ; eend 1 - fi - eoutdent - fi + UTC="" + checkbootparam utc >>$DEBUG 2>&1 && UTC="-u" + checkbootparam gmt >>$DEBUG 2>&1 && UTC="-u" + # hwclock uses the TZ variable + [ -r /etc/timezone ] && TZ=$(cat /etc/timezone) + [ -n "$TZ" ] || TZ=Europe/Vienna + + if ! [ -r /dev/rtc ] ; then + ewarn "Realtime clock not available, skipping execution of hwclock therefore." ; eend 0 + else + ERROR=$(TZ="$TZ" hwclock $UTC -s 2>&1 | head -1) ; RC=$? + if [ -n "$ERROR" ] ; then + eindent + ERROR=$(TZ="$TZ" hwclock $UTC -s --directisa 2>&1 | head -1) + if [ -n "$ERROR" ] ; then + eerror "Problem running hwclock: $ERROR" ; eend 1 + fi + eoutdent + fi + fi fi } # }}} @@ -514,7 +517,11 @@ done # {{{ Bring up loopback interface now config_local_net(){ if [ -z "$INSTALLED" ] ; then - grep -q lo=lo /etc/network/run/ifstate 2>/dev/null || ifup lo + if grep -q 'iface lo inet loopback' /etc/network/interfaces 2>/dev/null ; then + grep -q lo=lo /etc/network/run/ifstate 2>/dev/null || ifup lo + else + ifconfig lo up + fi fi } # }}} @@ -1038,9 +1045,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 @@ -1091,22 +1100,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 @@ -1287,6 +1293,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="" @@ -1360,6 +1367,7 @@ $(cat /proc/mounts) EOT fi fi +fi # checkbootparam home } # }}}