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 $ 28# $DragonFly: src/etc/rc.d/syscons,v 1.3 2005/04/22 00:55:32 swildner Exp $ 29# 30 31# PROVIDE: syscons 32# REQUIRE: LOGIN usbd 33# KEYWORD: DragonFly 34 35. /etc/rc.subr 36 37name="syscons" 38start_cmd="syscons_start" 39 40# stdin must be redirected because it might be for a serial console 41# 42kbddev=/dev/ttyv0 43viddev=/dev/ttyv0 44 45syscons_start() 46{ 47 echo -n 'Configuring syscons:' 48 49 # keymap 50 # 51 case ${keymap} in 52 [Nn][Oo] | '') 53 ;; 54 *) 55 echo -n ' keymap'; kbdcontrol < ${kbddev} -l ${keymap} 56 ;; 57 esac 58 59 # keyrate 60 # 61 case ${keyrate} in 62 [Nn][Oo] | '') 63 ;; 64 *) 65 echo -n ' keyrate'; kbdcontrol < ${kbddev} -r ${keyrate} 66 ;; 67 esac 68 69 # keybell 70 # 71 case ${keybell} in 72 [Nn][Oo] | '') 73 ;; 74 *) 75 echo -n ' keybell'; kbdcontrol < ${kbddev} -b ${keybell} 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 *) 100 echo -n ' cursor'; vidcontrol < ${viddev} -c ${cursor} 101 ;; 102 esac 103 104 # screen mapping 105 # 106 case ${scrnmap} in 107 [Nn][Oo] | '') 108 ;; 109 *) 110 echo -n ' scrnmap'; vidcontrol < ${viddev} -l ${scrnmap} 111 ;; 112 esac 113 114 # font 8x16 115 # 116 case ${font8x16} in 117 [Nn][Oo] | '') 118 ;; 119 *) 120 echo -n ' font8x16'; vidcontrol < ${viddev} -f 8x16 ${font8x16} 121 ;; 122 esac 123 124 # font 8x14 125 # 126 case ${font8x14} in 127 [Nn][Oo] | '') 128 ;; 129 *) 130 echo -n ' font8x14'; vidcontrol < ${viddev} -f 8x14 ${font8x14} 131 ;; 132 esac 133 134 # font 8x8 135 # 136 case ${font8x8} in 137 [Nn][Oo] | '') 138 ;; 139 *) 140 echo -n ' font8x8'; vidcontrol < ${viddev} -f 8x8 ${font8x8} 141 ;; 142 esac 143 144 # blank time 145 # 146 case ${blanktime} in 147 [Nn][Oo] | '') 148 ;; 149 *) 150 echo -n ' blanktime'; vidcontrol < ${viddev} -t ${blanktime} 151 ;; 152 esac 153 154 # screen saver 155 # 156 case ${saver} in 157 [Nn][Oo] | '') 158 ;; 159 *) 160 echo -n ' screensaver' 161 for i in `kldstat | awk '$5 ~ "^splash_.*$" { print $5 }'`; do 162 kldunload ${i} 163 done 164 kldstat -v | grep -q _saver || kldload ${saver}_saver 165 ;; 166 esac 167 168 # set this mode for all virtual screens 169 # 170 if [ -n "${allscreens_flags}" ]; then 171 echo -n ' allscreens' 172 for ttyv in /dev/ttyv*; do 173 vidcontrol ${allscreens_flags} < ${ttyv} > ${ttyv} 2>&1 174 done 175 fi 176 177 # set this keyboard mode for all virtual terminals 178 # 179 if [ -n "${allscreens_kbdflags}" ]; then 180 echo -n ' allscreens_kbd' 181 for ttyv in /dev/ttyv*; do 182 kbdcontrol ${allscreens_kbdflags} < ${ttyv} > ${ttyv} 2>&1 183 done 184 fi 185 186 echo '.' 187} 188 189load_rc_config $name 190run_rc_command "$1" 191