diff options
author | hm <hm@FreeBSD.org> | 2002-08-30 12:43:23 +0000 |
---|---|---|
committer | hm <hm@FreeBSD.org> | 2002-08-30 12:43:23 +0000 |
commit | bb3cc65f1f18fdf41fe4e945d7b9c465176561d4 (patch) | |
tree | 04a0ff520867348df4160cbe0bc7c4c4f1aea38a | |
parent | 605d09c7f9581052248752fa4c3e1ff632c8c490 (diff) | |
download | FreeBSD-src-bb3cc65f1f18fdf41fe4e945d7b9c465176561d4.zip FreeBSD-src-bb3cc65f1f18fdf41fe4e945d7b9c465176561d4.tar.gz |
integrate pcvt configuration into the new /etc/rc.d startup system
PR: i386/7100
Reviewed by: Gordon Tetlow <gordon@FreeBSD.org>
-rwxr-xr-x | etc/rc.d/Makefile | 2 | ||||
-rw-r--r-- | etc/rc.d/pcvt | 226 |
2 files changed, 227 insertions, 1 deletions
diff --git a/etc/rc.d/Makefile b/etc/rc.d/Makefile index 42bc3f0..db6427d 100755 --- a/etc/rc.d/Makefile +++ b/etc/rc.d/Makefile @@ -12,7 +12,7 @@ FILES= DAEMON LOGIN NETWORKING SERVERS abi accounting addswap adjkerntz altqd \ mountall mountcritlocal mountcritremote mountd moused mroute6d \ mrouted msgs named network network1 network2 network3 \ network_ipv6 newsyslog nfsclient nfsd nfslocking \ - othermta nfsserver ntpd ntpdate pccard poffd ppp-user \ + othermta nfsserver ntpd ntpdate pccard pcvt poffd ppp-user \ postfix ppp pppoed pwcheck quota racoon raidframe random rarpd \ rbootd root route6d routed rpcbind rtadvd rtsold \ rwho savecore screenblank securelevel sendmail serial sppp sshd swap1 \ diff --git a/etc/rc.d/pcvt b/etc/rc.d/pcvt new file mode 100644 index 0000000..4f71abc --- /dev/null +++ b/etc/rc.d/pcvt @@ -0,0 +1,226 @@ +#!/bin/sh - +# +# Copyright (c) 2002 The FreeBSD Project +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ +# + +# PROVIDE: pcvt +# REQUIRE: LOGIN +# KEYWORD: FreeBSD + +. /etc/rc.subr + +name="pcvt" +start_precmd="/usr/sbin/ispcvt -d /dev/ttyv0" +start_cmd="pcvt_start" + +pcvt_echo() +{ + if checkyesno pcvt_verbose; then + echo $1 "$2" + fi +} + +pcvt_start() +{ + # path for pcvt's EGA/VGA download fonts + FONTP=/usr/share/misc/pcvtfonts + + if checkyesno pcvt_verbose; then + echo "Configuring pcvt console driver:" + else + echo "-n" "Configuring pcvt" + fi + + # video adapter type + + adapter=`/usr/sbin/scon -d /dev/ttyv0 -a` + + pcvt_echo "-n" " video adapter type is $adapter, " + + # monitor type (mono/color) + + monitor=`/usr/sbin/scon -d /dev/ttyv0 -m` + + pcvt_echo "" "monitor type is $monitor" + + # load fonts into VGA + + if [ $adapter = VGA ] ; then + pcvt_echo "-n" " loading fonts: 8x16:0," + loadfont -d /dev/ttyv0 -c0 -f $FONTP/vt220l.816 + + pcvt_echo "-n" "1 " + loadfont -d /dev/ttyv0 -c1 -f $FONTP/vt220h.816 + + pcvt_echo "-n" " 8x14:0," + loadfont -d /dev/ttyv0 -c2 -f $FONTP/vt220l.814 + + pcvt_echo "-n" "1 " + loadfont -d /dev/ttyv0 -c3 -f $FONTP/vt220h.814 + + pcvt_echo "-n" " 8x10:0," + loadfont -d /dev/ttyv0 -c4 -f $FONTP/vt220l.810 + + pcvt_echo "-n" "1 " + loadfont -d /dev/ttyv0 -c5 -f $FONTP/vt220h.810 + + pcvt_echo "-n" " 8x8:0," + loadfont -d /dev/ttyv0 -c6 -f $FONTP/vt220l.808 + + pcvt_echo "" "1 " + loadfont -d /dev/ttyv0 -c7 -f $FONTP/vt220h.808 + + # setting screen sizes + + case ${pcvt_lines} in + 28) + size=-s28 + pcvt_echo "" " switching to 28 lines" + ;; + 40) + size=-s40 + pcvt_echo "" " switching to 40 lines" + ;; + 50) + size=-s50 + pcvt_echo "" " switching to 50 lines" + ;; + *) + size=-s25 + pcvt_echo "" " switching to 25 lines" + ;; + esac + fi + + # use HP extensions to VT220 or plain VT220 ? + + if checkyesno pcvt_hpext; then + emulation=-H + pcvt_echo "" " setting emulation to VT220 with HP extensions" + else + emulation=-V + pcvt_echo "" " setting emulation to VT220" + fi + + # for all screens do + + for device in /dev/ttyv* + do + # set emulation + + /usr/sbin/scon -d$device $size $emulation >/dev/null 2>&1 + if [ $? != 0 ] ; then + break 1 + fi + + # set cursor shape + + case ${pcvt_cursorh} in + [Nn][Oo] | '') + ;; + *) + case ${pcvt_cursorl} in + [Nn][Oo] | '') + ;; + *) + /usr/sbin/cursor -d$device -s$pcvt_cursorh -e$pcvt_cursorl + ;; + esac + ;; + esac + + + # on monochrome monitor, set color palette to use a higher intensity + + if checkyesno pcvt_monohigh && \ + [ $monitor = MONO -a $adapter = VGA ] + then + /usr/sbin/scon -d$device -p8,60,60,60 + fi + done + + # switch to screen 0 + + pcvt_echo "" " switching to screen 0" + + /usr/sbin/scon -d /dev/ttyv0 + + # screensaver timeout + + case ${pcvt_blanktime} in + [Nn][Oo] | '') + ;; + *) + pcvt_echo "" " setting screensaver timeout to $pcvt_blanktime seconds" + /usr/sbin/scon -d /dev/ttyv0 -t$pcvt_blanktime + ;; + esac + + # national keyboard layout + + case ${pcvt_keymap} in + [Nn][Oo] | '') + ;; + *) + pcvt_echo "" " switching national keyboard layout to $pcvt_keymap" + /usr/sbin/kcon -m $pcvt_keymap + ;; + esac + + # keyboard repeat delay value + + case ${pcvt_keydel} in + [Nn][Oo] | '') + ;; + *) + pcvt_echo "" " setting keyboard delay to $pcvt_keydel" + /usr/sbin/kcon -d$pcvt_keydel + ;; + esac + + # keyboard repeat rate value + + case ${pcvt_keyrate} in + [Nn][Oo] | '') + ;; + *) + pcvt_echo "" " setting keyboard repeat rate to $pcvt_keyrate" + /usr/sbin/kcon -r$pcvt_keyrate + ;; + esac + + # done + + if checkyesno pcvt_verbose; then + echo "Finished configuring pcvt console driver." + else + echo "." + fi +} + +load_rc_config $name +run_rc_command "$1" |