708ba38c20
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>
46 lines
1.2 KiB
Bash
Executable File
46 lines
1.2 KiB
Bash
Executable File
# vim: set ft=sh:
|
|
. /etc/rc.conf
|
|
. /etc/rc.d/functions
|
|
|
|
do_locale_gen ()
|
|
{
|
|
if [[ ${LOCALE} != "en_US.UTF-8" ]]; then
|
|
stat_busy "Generating locales..."
|
|
sed -i "s/#\(${LOCALE/[@.]*}\)/\1/" /etc/locale.gen
|
|
/usr/sbin/locale-gen > /dev/null
|
|
stat_done
|
|
fi
|
|
}
|
|
|
|
# If an alternate console was specified on the kernel command line,
|
|
# start agetty on it too.
|
|
do_special_console()
|
|
{
|
|
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
|
|
start)
|
|
do_locale_gen
|
|
do_special_console
|
|
;;
|
|
esac
|
|
exit 0
|