syscons revision 100284
1#!/bin/sh -
2#
3# Copyright (c) 2000  The FreeBSD Project
4# All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9# 1. Redistributions of source code must retain the above copyright
10#    notice, this list of conditions and the following disclaimer.
11# 2. Redistributions in binary form must reproduce the above copyright
12#    notice, this list of conditions and the following disclaimer in the
13#    documentation and/or other materials provided with the distribution.
14#
15# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25# SUCH DAMAGE.
26#
27# $FreeBSD: head/etc/rc.d/syscons 100284 2002-07-18 05:00:21Z dougb $
28#
29
30# PROVIDE: syscons
31# REQUIRE: LOGIN usbd
32# KEYWORD: FreeBSD
33
34. /etc/rc.subr
35
36name="syscons"
37load_rc_config $name
38
39# stdin must be redirected because it might be for a serial console
40#
41kbddev=/dev/ttyv0
42viddev=/dev/ttyv0
43
44echo -n 'Configuring syscons:'
45
46# keymap
47#
48case ${keymap} in
49[Nn][Oo] | '')
50	;;
51*)
52	echo -n ' keymap';	kbdcontrol < ${kbddev} -l ${keymap}
53	;;
54esac
55
56# keyrate
57#
58case ${keyrate} in
59[Nn][Oo] | '')
60	;;
61*)
62	echo -n ' keyrate';	kbdcontrol < ${kbddev} -r ${keyrate}
63	;;
64esac
65
66# keybell
67#
68case ${keybell} in
69[Nn][Oo] | '')
70	;;
71*)
72	echo -n ' keybell';	kbdcontrol < ${kbddev} -b ${keybell}
73	;;
74esac
75
76# change function keys
77#
78case ${keychange} in
79[Nn][Oo] | '')
80	;;
81*)
82	echo -n ' keychange'
83	set - ${keychange}
84	while [ $# -gt 0 ]; do
85		kbdcontrol <${kbddev} -f "$1" "$2"
86		shift; shift
87	done
88	;;
89esac
90
91# cursor type
92#
93case ${cursor} in
94[Nn][Oo] | '')
95	;;
96*)
97	echo -n ' cursor';	vidcontrol < ${viddev} -c ${cursor}
98	;;
99esac
100
101# screen mapping
102#
103case ${scrnmap} in
104[Nn][Oo] | '')
105	;;
106*)
107	echo -n ' scrnmap';	vidcontrol < ${viddev} -l ${scrnmap}
108	;;
109esac
110
111# font 8x16
112#
113case ${font8x16} in
114[Nn][Oo] | '')
115        ;;
116*)
117	echo -n ' font8x16';	vidcontrol < ${viddev} -f 8x16 ${font8x16}
118	;;
119esac
120
121# font 8x14
122#
123case ${font8x14} in
124[Nn][Oo] | '')
125        ;;
126*)
127	echo -n ' font8x14';	vidcontrol < ${viddev} -f 8x14 ${font8x14}
128	;;
129esac
130
131# font 8x8
132#
133case ${font8x8} in
134[Nn][Oo] | '')
135        ;;
136*)
137	echo -n ' font8x8';	vidcontrol < ${viddev} -f 8x8 ${font8x8}
138	;;
139esac
140
141# blank time
142#
143case ${blanktime} in
144[Nn][Oo] | '')
145        ;;
146*)
147	echo -n ' blanktime';	vidcontrol < ${viddev} -t ${blanktime}
148	;;
149esac
150
151# screen saver
152#
153case ${saver} in
154[Nn][Oo] | '')
155        ;;
156*)
157	echo -n ' screensaver'
158	for i in `kldstat | awk '$5 ~ "^splash_.*$" { print $5 }'`; do
159		kldunload ${i}
160	done
161	kldstat -v | grep -q _saver || kldload ${saver}_saver
162	;;
163esac
164
165# set this mode for all virtual screens
166#
167if [ -n "${allscreens_flags}" ]; then
168	echo -n ' allscreens'
169	for ttyv in /dev/ttyv*; do
170		vidcontrol ${allscreens_flags} < ${ttyv} > ${ttyv} 2>&1
171	done
172fi
173
174# set this keyboard mode for all virtual terminals
175#
176if [ -n "${allscreens_kbdflags}" ]; then
177	echo -n ' allscreens_kbd'
178	for ttyv in /dev/ttyv*; do
179		kbdcontrol ${allscreens_kbdflags} < ${ttyv} > ${ttyv} 2>&1
180	done
181fi
182
183echo '.'
184