nrelease - fix/improve livecd
[dragonfly.git] / etc / rc.d / syscons
CommitLineData
9c600e7d
MD
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: src/etc/rc.d/syscons,v 1.9 2002/09/09 22:40:34 gordon Exp $
9c600e7d
MD
28#
29
30# PROVIDE: syscons
2a617999 31# REQUIRE: LOGIN
9c600e7d
MD
32
33. /etc/rc.subr
34
35name="syscons"
9c600e7d
MD
36start_cmd="syscons_start"
37
38# stdin must be redirected because it might be for a serial console
9c600e7d
MD
39kbddev=/dev/ttyv0
40viddev=/dev/ttyv0
41
9c600e7d
MD
42syscons_start()
43{
44 echo -n 'Configuring syscons:'
45
46 # keymap
47 #
48 case ${keymap} in
49 [Nn][Oo] | '')
50 ;;
51 *)
e54c8dc8
AL
52 echo -n ' keymap'
53 kbdcontrol < ${kbddev} -l ${keymap}
9c600e7d
MD
54 ;;
55 esac
56
57 # keyrate
58 #
59 case ${keyrate} in
60 [Nn][Oo] | '')
61 ;;
62 *)
e54c8dc8
AL
63 echo -n ' keyrate'
64 kbdcontrol < ${kbddev} -r ${keyrate}
9c600e7d
MD
65 ;;
66 esac
67
68 # keybell
69 #
70 case ${keybell} in
71 [Nn][Oo] | '')
72 ;;
73 *)
e54c8dc8
AL
74 echo -n ' keybell'
75 kbdcontrol < ${kbddev} -b ${keybell}
9c600e7d
MD
76 ;;
77 esac
78
79 # change function keys
80 #
81 case ${keychange} in
82 [Nn][Oo] | '')
83 ;;
84 *)
85 echo -n ' keychange'
86 set - ${keychange}
87 while [ $# -gt 0 ]; do
88 kbdcontrol <${kbddev} -f "$1" "$2"
89 shift; shift
90 done
91 ;;
92 esac
93
94 # cursor type
95 #
96 case ${cursor} in
97 [Nn][Oo] | '')
98 ;;
99 *)
e54c8dc8
AL
100 echo -n ' cursor'
101 vidcontrol < ${viddev} -c ${cursor}
9c600e7d
MD
102 ;;
103 esac
104
105 # screen mapping
106 #
107 case ${scrnmap} in
108 [Nn][Oo] | '')
109 ;;
110 *)
e54c8dc8
AL
111 echo -n ' scrnmap'
112 vidcontrol < ${viddev} -l ${scrnmap}
9c600e7d
MD
113 ;;
114 esac
115
116 # font 8x16
117 #
118 case ${font8x16} in
119 [Nn][Oo] | '')
120 ;;
121 *)
e54c8dc8
AL
122 echo -n ' font8x16'
123 vidcontrol < ${viddev} -f 8x16 ${font8x16}
9c600e7d
MD
124 ;;
125 esac
126
127 # font 8x14
128 #
129 case ${font8x14} in
130 [Nn][Oo] | '')
131 ;;
132 *)
e54c8dc8
AL
133 echo -n ' font8x14'
134 vidcontrol < ${viddev} -f 8x14 ${font8x14}
9c600e7d
MD
135 ;;
136 esac
137
138 # font 8x8
139 #
140 case ${font8x8} in
141 [Nn][Oo] | '')
142 ;;
143 *)
e54c8dc8
AL
144 echo -n ' font8x8'
145 vidcontrol < ${viddev} -f 8x8 ${font8x8}
9c600e7d
MD
146 ;;
147 esac
148
149 # blank time
150 #
151 case ${blanktime} in
152 [Nn][Oo] | '')
153 ;;
154 *)
e54c8dc8
AL
155 echo -n ' blanktime'
156 vidcontrol < ${viddev} -t ${blanktime}
9c600e7d
MD
157 ;;
158 esac
159
160 # screen saver
161 #
162 case ${saver} in
163 [Nn][Oo] | '')
164 ;;
165 *)
166 echo -n ' screensaver'
167 for i in `kldstat | awk '$5 ~ "^splash_.*$" { print $5 }'`; do
168 kldunload ${i}
169 done
0dfdc028 170 kldstat -qm ${saver}_saver || kldload -n ${saver}_saver
9c600e7d
MD
171 ;;
172 esac
173
38f96ee6
MD
174 # video history buffer
175 #
176 case ${vidhistory} in
177 [Nn][Oo] | '')
178 ;;
179 *)
e54c8dc8
AL
180 echo -n ' vidhistory'
181 vidcontrol < ${viddev} -h ${vidhistory}
38f96ee6
MD
182 ;;
183 esac
184
9c600e7d
MD
185 # set this mode for all virtual screens
186 #
187 if [ -n "${allscreens_flags}" ]; then
188 echo -n ' allscreens'
189 for ttyv in /dev/ttyv*; do
190 vidcontrol ${allscreens_flags} < ${ttyv} > ${ttyv} 2>&1
191 done
192 fi
193
194 # set this keyboard mode for all virtual terminals
195 #
196 if [ -n "${allscreens_kbdflags}" ]; then
197 echo -n ' allscreens_kbd'
198 for ttyv in /dev/ttyv*; do
199 kbdcontrol ${allscreens_kbdflags} < ${ttyv} > ${ttyv} 2>&1
200 done
201 fi
202
203 echo '.'
204}
205
206load_rc_config $name
207run_rc_command "$1"