summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimo Leone <leone.simo@gmail.com>2011-03-03 02:53:02 -0800
committerGerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>2011-03-20 16:09:39 -0300
commitd812cc131ee23cfe234f6f2e6137427afbeebb31 (patch)
tree63604de5001bbe33f45c6aae41d0a2779aa90608
parentdaf622d948ed216e3d2d91df14d3945ba5bbfe7c (diff)
downloadarchiso32-d812cc131ee23cfe234f6f2e6137427afbeebb31.tar.xz
Start agetty on kernel cmdline-provided console
This makes interactive installations over serial consoles possible with nothing more than specifying the console= kernel parameter. Changed inittab id "s0" -> "z0" to avoid conflict with line ttyS0. (Gerardo) Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
-rwxr-xr-xconfigs/syslinux-iso/overlay/etc/rc.d/archiso21
1 files changed, 21 insertions, 0 deletions
diff --git a/configs/syslinux-iso/overlay/etc/rc.d/archiso b/configs/syslinux-iso/overlay/etc/rc.d/archiso
index 435152a..bbe71bf 100755
--- a/configs/syslinux-iso/overlay/etc/rc.d/archiso
+++ b/configs/syslinux-iso/overlay/etc/rc.d/archiso
@@ -86,11 +86,32 @@ do_fix_perms ()
stat_done
}
+# If an alternate console was specified on the kernel command line,
+# start agetty on it too.
+do_special_console()
+{
+ cmdline_console="$(kernel_cmdline console)"
+ [ $? -ne 0 ] && return
+
+ dev="${cmdline_console%%,*}"
+ args="${cmdline_console##*,}"
+ baud="${args%%[neo]*}" && baud="${baud:-"9600"}"
+ [ "x${args}" != "x${args%%r}" ] && rts="-h"
+
+
+ stat_busy "Starting agetty on console: ${cmdline_console}"
+ echo "${dev}" >> /etc/securetty
+ echo "z0:2345:respawn:/sbin/agetty ${rts} ${baud} ${dev} linux" >> /etc/inittab
+ /sbin/telinit q
+ stat_done
+}
+
case "$1" in
start)
do_locale_gen
do_makeuser
do_fix_perms
+ do_special_console
;;
esac
exit 0