summaryrefslogtreecommitdiff
blob: 320b870d2ecee108ce9a7c151dcc73a0799f8c69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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
}