Further cosmetic tuning for serial console mode.
[grml-autoconfig.git] / autoconfig.functions
index ef31f1a..73cc32e 100755 (executable)
@@ -302,7 +302,7 @@ config_language(){
  if [ -r /etc/default/locale ] ; then
     if grep -q "LANG=.*UTF" /etc/default/locale ; then
        einfo "Setting up unicode environment."
  if [ -r /etc/default/locale ] ; then
     if grep -q "LANG=.*UTF" /etc/default/locale ; then
        einfo "Setting up unicode environment."
-       unicode_start 2>>$DEBUG ; eend $?
+       unicode_start >>$DEBUG 2>&1 ; eend $?
     fi
  fi
 
     fi
  fi
 
@@ -314,17 +314,21 @@ config_language(){
  fi
 
  # we have to set up all consoles, therefore loop it over all ttys:
  fi
 
  # we have to set up all consoles, therefore loop it over all ttys:
- NUM_CONSOLES=$(fgconsole --next-available)
- NUM_CONSOLES=$(expr ${NUM_CONSOLES} - 1)
- [ ${NUM_CONSOLES} -eq 1 ] && NUM_CONSOLES=6
- CUR_CONSOLE=$(fgconsole)
-
+ NUM_CONSOLES=$(fgconsole --next-available 2>/dev/null)
+ if [ -n "$NUM_CONSOLES" ] ; then
+    NUM_CONSOLES=$(expr ${NUM_CONSOLES} - 1)
+    [ ${NUM_CONSOLES} -eq 1 ] && NUM_CONSOLES=6
+ fi
+ CUR_CONSOLE=$(fgconsole 2>/dev/null)
  if [ -n "$CHARMAP" ] ; then
     einfo "Running consolechars for ${CHARMAP}"
  if [ -n "$CHARMAP" ] ; then
     einfo "Running consolechars for ${CHARMAP}"
-    for vc in `seq 0 ${NUM_CONSOLES}`  ; do
+    RC=0
+    for vc in $(seq 0 ${NUM_CONSOLES}) ; do
         consolechars --tty=/dev/tty${vc} -m ${CHARMAP} ; RC=$?
     done
         consolechars --tty=/dev/tty${vc} -m ${CHARMAP} ; RC=$?
     done
-    [ -n "$CUR_CONSOLE" ] && chvt $CUR_CONSOLE
+    if [ -n "$CUR_CONSOLE" ] ; then
+       [ "$CUR_CONSOLE" != "serial" ] && chvt $CUR_CONSOLE
+    fi
     eend $RC
  fi
 
     eend $RC
  fi
 
@@ -333,11 +337,14 @@ config_language(){
  else
     if [ -n "$CONSOLEFONT" ] ; then
        einfo "Running consolechars using ${CONSOLEFONT}"
  else
     if [ -n "$CONSOLEFONT" ] ; then
        einfo "Running consolechars using ${CONSOLEFONT}"
-       for vc in `seq 0 ${NUM_CONSOLES}`  ; do
+       RC=0
+       for vc in $(seq 0 ${NUM_CONSOLES}) ; do
            consolechars --tty=/dev/tty${vc} -f $CONSOLEFONT ; RC=$?
        done
            consolechars --tty=/dev/tty${vc} -f $CONSOLEFONT ; RC=$?
        done
-       [ -n "$CUR_CONSOLE" ] && chvt $CUR_CONSOLE
-       eend $?
+       if [ -n "$CUR_CONSOLE" ] ; then
+          [ "$CUR_CONSOLE" != "serial" ] && chvt $CUR_CONSOLE
+       fi
+       eend $RC
     fi
  fi
 
     fi
  fi
 
@@ -568,21 +575,10 @@ fi
 # activate serial console {{{
 config_console(){
 if checkbootparam 'console'; then
 # activate serial console {{{
 config_console(){
 if checkbootparam 'console'; then
-  einfo "Bootoption (for serial) console detected."
-  eindent
-    if [ -r /etc/mgetty/mgetty.config ] ; then
-       MODE=$(getbootparam 'console' | awk -F, '{print $2}')
-       MODE=${MODE%%n*}
-       [ -n "$MODE" ] || MODE=9600 # default mode
-       einfo "Setting speed in /etc/mgetty/mgetty.config to $MODE bps"
-       sed -i "s/speed [0-9]*/speed $MODE/" /etc/mgetty/mgetty.config ; eend $?
-    fi
-
-    einfo "Activating mgetty."
-    sed -i 's/^#T0/T0/' /etc/inittab
-    sed -i 's/^#T1/T1/' /etc/inittab
-    /sbin/telinit q ; eend $?
-  eoutdent
+  einfo "Bootoption for serial console detected, activating console login."
+  sed -i 's/^#grmlserial#//' /etc/inittab
+  /sbin/telinit q
+  eend $?
 fi
 }
 # }}}
 fi
 }
 # }}}
@@ -1366,7 +1362,7 @@ else
            einfo "Loading modules ${MODULE}"
            modprobe "$MODULE" >>$DEBUG || modprobe "$MODULE_FALLBACK" >>$DEBUG
            RC=$?
            einfo "Loading modules ${MODULE}"
            modprobe "$MODULE" >>$DEBUG || modprobe "$MODULE_FALLBACK" >>$DEBUG
            RC=$?
-           if [[ $RC == 0 ]]; then
+           if [[ "$RC" == 0 ]]; then
               eend 0
            else
               SKIP_CPU_GOVERNOR=1
               eend 0
            else
               SKIP_CPU_GOVERNOR=1
@@ -1380,6 +1376,7 @@ else
 
      if [ -z "$SKIP_CPU_GOVERNOR" ] ; then
         einfo "Loading cpufreq_ondemand, setting ondemand governor"
 
      if [ -z "$SKIP_CPU_GOVERNOR" ] ; then
         einfo "Loading cpufreq_ondemand, setting ondemand governor"
+        RC=0
         if modprobe cpufreq_ondemand ; RC=$? ; then
            for file in $(find /sys/devices/system/cpu/ -name scaling_governor 2>/dev/null) ; do
                echo ondemand > $file
         if modprobe cpufreq_ondemand ; RC=$? ; then
            for file in $(find /sys/devices/system/cpu/ -name scaling_governor 2>/dev/null) ; do
                echo ondemand > $file