summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-freebsd/freebsd-usbin/files/syscons.initd')
-rwxr-xr-xsys-freebsd/freebsd-usbin/files/syscons.initd78
1 files changed, 78 insertions, 0 deletions
diff --git a/sys-freebsd/freebsd-usbin/files/syscons.initd b/sys-freebsd/freebsd-usbin/files/syscons.initd
new file mode 100755
index 0000000..320b870
--- /dev/null
+++ b/sys-freebsd/freebsd-usbin/files/syscons.initd
@@ -0,0 +1,78 @@
+#!/sbin/runscript
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-usbin/files/syscons.initd,v 1.3 2007/02/23 14:03:08 uberlord Exp $
+
+depend() {
+ need localmount
+}
+
+start() {
+ ebegin "Configuring system console"
+
+ if [ -n "${MODE}" ] ; then
+ einfo "Setting mode to ${MODE}"
+ vidcontrol "${MODE}"
+ eend $?
+ fi
+
+ # XXX: This should handle serial consoles.
+
+ # Set the keymap.
+ if [ -n "${KEYMAP}" ]; then
+ einfo "Setting keymap to" "${KEYMAP}"
+ kbdcontrol -l ${KEYMAP} < /dev/console
+ fi
+
+ if [ -n "${KEYRATE}" ]; then
+ einfo "Setting keyrate to" "${KEYRATE}"
+ kbdcontrol -r ${KEYRATE} < /dev/console
+ fi
+
+ if [ -n "${KEYCHANGE}" ]; then
+ einfo "Changing function keys..."
+ eval set -- "${KEYCHANGE}"
+ eindent
+ while [ $# -gt 0 ] ; do
+ veinfo "F$1 -> \`$2'"
+ kbdcontrol -f "$1" "$2" < /dev/console
+ shift ; shift
+ done
+ eoutdent
+ fi
+
+ if [ -n "${CURSOR}" ]; then
+ einfo "Setting cursor"
+ vidcontrol -c ${CURSOR}
+ fi
+
+ einfo "Setting custom fonts..."
+ # Nothing to see here, move along...
+ for v in FONT8x16 FONT8x14 FONT8x8; do
+ f=$(eval \$"${v}")
+ if [ -n "${f}" ]; then
+ vidcontrol -f ${v##FONT} ${f}
+ fi
+ done
+
+ if [ -n "${BLANKTIME}" ]; then
+ einfo "Setting blanktime"
+ vidcontrol -t ${BLANKTIME}
+ fi
+
+ if [ -n "${SAVER}" ]; then
+ for i in `kldstat | awk '$5 ~ "^splash_.*$" { print $5 }'`; do
+ kldunload ${i}
+ done
+ kldstat -v | grep -q _saver || kldload ${SAVER}_saver
+ fi
+
+ if [ -n "${KBDFLAGS}" ]; then
+ einfo "Setting keyboard flags for all screens"
+ for ttyv in /dev/ttyv*; do
+ kbdcontrol ${KBDFLAGS} <${ttyv} &>${ttyv}
+ done
+ fi
+
+ eend 0
+}