diff options
author | Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> | 2011-08-15 19:42:28 -0300 |
---|---|---|
committer | Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> | 2011-08-15 21:01:58 -0300 |
commit | 708ba38c206a2147fbd7a357d6ece8881807231d (patch) | |
tree | 77d54ed0c844ef8725d61a1cf456130871fb9d44 | |
parent | b6df75e79cea5913f0524ca145671d4e1e84dcb1 (diff) | |
download | archiso32-708ba38c206a2147fbd7a357d6ece8881807231d.tar.xz |
[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-x | configs/releng/root-image/etc/rc.d/archiso | 32 |
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 |