summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>2011-08-15 19:42:28 -0300
committerGerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>2011-08-15 21:01:58 -0300
commit708ba38c206a2147fbd7a357d6ece8881807231d (patch)
tree77d54ed0c844ef8725d61a1cf456130871fb9d44
parentb6df75e79cea5913f0524ca145671d4e1e84dcb1 (diff)
[configs/releng] Fixed and improved serial console support.
Current implementation fails if console=ttyS0 (without more options). Tested with: console=ttyS0 console=ttyS0,9600 console=ttyS0,38400 console=ttyS0,9600n8 console=ttyS0,38400n8r Closing FS#16232 Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
-rwxr-xr-xconfigs/releng/root-image/etc/rc.d/archiso32
1 files changed, 18 insertions, 14 deletions
diff --git a/configs/releng/root-image/etc/rc.d/archiso b/configs/releng/root-image/etc/rc.d/archiso
index 68e8375..cc930f6 100755
--- a/configs/releng/root-image/etc/rc.d/archiso
+++ b/configs/releng/root-image/etc/rc.d/archiso
@@ -16,20 +16,24 @@ do_locale_gen ()
# 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
+ local cmdline_console
+ if cmdline_console=$(kernel_cmdline console); then
+ stat_busy "Starting agetty on console: ${cmdline_console}"
+ local port options baud rts
+ port=${cmdline_console%%,*}
+ options=${cmdline_console#${port}}
+ options=${options#,}
+ baud=${options%%[neo]*}
+ [[ ${options} =~ r$ ]] && rts="-h"
+ if ! grep -q "^${port}" /etc/securetty; then
+ echo ${port} >> /etc/securetty
+ fi
+ if ! grep -q "^z0:" /etc/inittab; then
+ echo "z0:2345:respawn:/sbin/agetty -8 -s ${rts} ${baud:-9600} ${port} linux" >> /etc/inittab
+ fi
+ /sbin/telinit q
+ stat_done
+ fi
}
case "$1" in