xref: /freebsd/libexec/rc/rc.d/syscons (revision f99f0ee14e3af81c23150a6a340259ca8a33d01a)
10696600cSBjoern A. Zeeb#!/bin/sh -
20696600cSBjoern A. Zeeb#
30696600cSBjoern A. Zeeb# Copyright (c) 2000  The FreeBSD Project
40696600cSBjoern A. Zeeb# All rights reserved.
50696600cSBjoern A. Zeeb#
60696600cSBjoern A. Zeeb# Redistribution and use in source and binary forms, with or without
70696600cSBjoern A. Zeeb# modification, are permitted provided that the following conditions
80696600cSBjoern A. Zeeb# are met:
90696600cSBjoern A. Zeeb# 1. Redistributions of source code must retain the above copyright
100696600cSBjoern A. Zeeb#    notice, this list of conditions and the following disclaimer.
110696600cSBjoern A. Zeeb# 2. Redistributions in binary form must reproduce the above copyright
120696600cSBjoern A. Zeeb#    notice, this list of conditions and the following disclaimer in the
130696600cSBjoern A. Zeeb#    documentation and/or other materials provided with the distribution.
140696600cSBjoern A. Zeeb#
150696600cSBjoern A. Zeeb# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
160696600cSBjoern A. Zeeb# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
170696600cSBjoern A. Zeeb# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
180696600cSBjoern A. Zeeb# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
190696600cSBjoern A. Zeeb# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
200696600cSBjoern A. Zeeb# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
210696600cSBjoern A. Zeeb# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
220696600cSBjoern A. Zeeb# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
230696600cSBjoern A. Zeeb# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
240696600cSBjoern A. Zeeb# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
250696600cSBjoern A. Zeeb# SUCH DAMAGE.
260696600cSBjoern A. Zeeb#
270696600cSBjoern A. Zeeb#
280696600cSBjoern A. Zeeb
290696600cSBjoern A. Zeeb# PROVIDE: syscons
300696600cSBjoern A. Zeeb# REQUIRE: LOGIN
310696600cSBjoern A. Zeeb# KEYWORD: nojail
320696600cSBjoern A. Zeeb
330696600cSBjoern A. Zeeb. /etc/rc.subr
340696600cSBjoern A. Zeeb
350696600cSBjoern A. Zeebname="syscons"
360696600cSBjoern A. Zeebdesc="Configure the system console"
370696600cSBjoern A. Zeebextra_commands="setkeyboard"
380696600cSBjoern A. Zeebsetkeyboard_cmd="syscons_setkeyboard"
390696600cSBjoern A. Zeebstart_precmd="syscons_precmd"
400696600cSBjoern A. Zeebstart_cmd="syscons_start"
410696600cSBjoern A. Zeebstop_cmd=":"
420696600cSBjoern A. Zeeb
430696600cSBjoern A. Zeeb# stdin must be redirected because it might be for a serial console
440696600cSBjoern A. Zeeb#
450696600cSBjoern A. Zeebkbddev=/dev/ttyv0
460696600cSBjoern A. Zeebviddev=/dev/ttyv0
470696600cSBjoern A. Zeeb
480696600cSBjoern A. Zeeb_sc_config=
490696600cSBjoern A. Zeeb_sc_console=
500696600cSBjoern A. Zeeb_sc_initdone=
510696600cSBjoern A. Zeeb_sc_keymap_msg=
523662862fSEmmanuel Vadot_sc_bootmethod=
530696600cSBjoern A. Zeebsc_init()
540696600cSBjoern A. Zeeb{
553662862fSEmmanuel Vadot	local bootmethod
563662862fSEmmanuel Vadot
570696600cSBjoern A. Zeeb	if [ -z "${_sc_initdone}" ]; then
580696600cSBjoern A. Zeeb		if [ -z "${_sc_console}" ]; then
590696600cSBjoern A. Zeeb			if [ x`sysctl -n kern.vty` = x"vt" ]; then
600696600cSBjoern A. Zeeb				_sc_console="vt"
610696600cSBjoern A. Zeeb			else
620696600cSBjoern A. Zeeb				_sc_console="syscons"
630696600cSBjoern A. Zeeb			fi
640696600cSBjoern A. Zeeb			_sc_config="${_sc_console}"
650696600cSBjoern A. Zeeb		fi
663662862fSEmmanuel Vadot		if [ -z "${_sc_bootmethod}" ]; then
673662862fSEmmanuel Vadot			bootmethod=$(sysctl -qn machdep.bootmethod)
683662862fSEmmanuel Vadot			case ${bootmethod} in
693662862fSEmmanuel Vadot				UEFI)
703662862fSEmmanuel Vadot					_sc_bootmethod="uefi"
713662862fSEmmanuel Vadot					;;
723662862fSEmmanuel Vadot				BIOS)
733662862fSEmmanuel Vadot					_sc_bootmethod="bios"
743662862fSEmmanuel Vadot					;;
753662862fSEmmanuel Vadot				PVH)
763662862fSEmmanuel Vadot					_sc_bootmethod="pvh"
773662862fSEmmanuel Vadot					;;
783662862fSEmmanuel Vadot				*)
793662862fSEmmanuel Vadot					_sc_bootmethod="uefi" # Default to UEFI
803662862fSEmmanuel Vadot					;;
813662862fSEmmanuel Vadot			esac
823662862fSEmmanuel Vadot		fi
830696600cSBjoern A. Zeeb		echo -n "Configuring ${_sc_config}:"
840696600cSBjoern A. Zeeb		_sc_initdone=yes
850696600cSBjoern A. Zeeb	fi
860696600cSBjoern A. Zeeb}
870696600cSBjoern A. Zeeb
880696600cSBjoern A. Zeeb# syscons to vt migration helper
890696600cSBjoern A. Zeeblookup_keymap_for_vt()
900696600cSBjoern A. Zeeb{
910696600cSBjoern A. Zeeb	keymap=`basename $1 .kbd`
920696600cSBjoern A. Zeeb	case $keymap in
930696600cSBjoern A. Zeebhy.armscii-8)			echo am;;
940696600cSBjoern A. Zeebbe.iso.acc)			echo be.acc;;
950696600cSBjoern A. Zeebbe.iso)				echo be;;
960696600cSBjoern A. Zeebbg.bds.ctrlcaps)		echo bg.bds;;
970696600cSBjoern A. Zeebbg.phonetic.ctrlcaps)		echo bg.phonetic;;
980696600cSBjoern A. Zeebbr275.iso.acc)			echo br;;
990696600cSBjoern A. Zeebbr275.*)			echo br.noacc;;
1000696600cSBjoern A. Zeebby.*)				echo by;;
1010696600cSBjoern A. Zeebfr_CA.iso.acc)			echo ca-fr;;
1020696600cSBjoern A. Zeebswissgerman.macbook.acc)	echo ch.macbook.acc;;
1030696600cSBjoern A. Zeebswissgerman.iso.acc)		echo ch.acc;;
1040696600cSBjoern A. Zeebswissgerman.*)			echo ch;;
1050696600cSBjoern A. Zeebswissfrench.iso.acc)		echo ch-fr.acc;;
1060696600cSBjoern A. Zeebswissfrench.*)			echo ch-fr;;
1070696600cSBjoern A. Zeebce.iso2)			echo centraleuropean.qwerty;;
1080696600cSBjoern A. Zeebcolemak.iso15.acc)		echo colemak.acc;;
1090696600cSBjoern A. Zeebcs.*|cz.*)			echo cz;;
1100696600cSBjoern A. Zeebgerman.iso.acc)			echo de.acc;;
1110696600cSBjoern A. Zeebgerman.*)			echo de;;
1120696600cSBjoern A. Zeebdanish.iso.acc)			echo dk.acc;;
1130696600cSBjoern A. Zeebdanish.iso.macbook)		echo dk.macbook;;
1140696600cSBjoern A. Zeebdanish.*)			echo dk;;
1150696600cSBjoern A. Zeebestonian.*)			echo ee;;
1160696600cSBjoern A. Zeebspanish.dvorak)			echo es.dvorak;;
1170696600cSBjoern A. Zeebspanish.iso*.acc)		echo es.acc;;
1180696600cSBjoern A. Zeebspanish.iso)			echo es;;
1190696600cSBjoern A. Zeebfinnish.*)			echo fi;;
1200696600cSBjoern A. Zeebfr.macbook.acc)			echo fr.macbook;;
1210696600cSBjoern A. Zeebfr.iso.acc)			echo fr.acc;;
1220696600cSBjoern A. Zeebfr.iso)				echo fr;;
1230696600cSBjoern A. Zeebel.iso07)			echo gr;;
1240696600cSBjoern A. Zeebgr.us101.acc)			echo gr.101.acc;;
1250696600cSBjoern A. Zeebhr.iso)				echo hr;;
1260696600cSBjoern A. Zeebhu.iso2.101keys)		echo hu.101;;
1270696600cSBjoern A. Zeebhu.iso2.102keys)		echo hu.102;;
1280696600cSBjoern A. Zeebiw.iso8)			echo il;;
1290696600cSBjoern A. Zeebicelandic.iso.acc)		echo is.acc;;
1300696600cSBjoern A. Zeebicelandic.iso)			echo is;;
1310696600cSBjoern A. Zeebit.iso)				echo it;;
1320696600cSBjoern A. Zeebjp.106x)			echo jp.capsctrl;;
1330696600cSBjoern A. Zeebjp.106)				echo jp;;
1340696600cSBjoern A. Zeebkk.pt154.io)			echo kz.io;;
1350696600cSBjoern A. Zeebkk.pt154.kst)			echo kz.kst;;
1360696600cSBjoern A. Zeeblatinamerican.iso.acc)		echo latinamerican.acc;;
1370696600cSBjoern A. Zeeblt.iso4)			echo lt;;
1380696600cSBjoern A. Zeebnorwegian.iso)			echo no;;
1390696600cSBjoern A. Zeebnorwegian.dvorak)		echo no.dvorak;;
1400696600cSBjoern A. Zeebdutch.iso.acc)			echo nl;;
1410696600cSBjoern A. Zeebeee_nordic)			echo nordic.asus-eee;;
1420696600cSBjoern A. Zeebpl_PL.dvorak)			echo pl.dvorak;;
1430696600cSBjoern A. Zeebpl_PL.ISO8859-2)		echo pl;;
1440696600cSBjoern A. Zeebpt.iso.acc)			echo pt.acc;;
1450696600cSBjoern A. Zeebpt.iso)				echo pt;;
1460696600cSBjoern A. Zeebru.koi8-r.shift)		echo ru.shift;;
1470696600cSBjoern A. Zeebru.koi8-r.win)			echo ru.win;;
1480696600cSBjoern A. Zeebru.*)				echo ru;;
1490696600cSBjoern A. Zeebswedish.*)			echo se;;
1500696600cSBjoern A. Zeebsi.iso)				echo si;;
1510696600cSBjoern A. Zeebsk.iso2)			echo sk;;
1520696600cSBjoern A. Zeebtr.iso9.q)			echo tr;;
1530696600cSBjoern A. Zeebua.koi8-u.shift.alt)		echo ua.shift.alt;;
1540696600cSBjoern A. Zeebua.*)				echo ua;;
1550696600cSBjoern A. Zeebuk.*-ctrl)			echo uk.capsctrl;;
1560696600cSBjoern A. Zeebuk.dvorak)			echo uk.dvorak;;
1570696600cSBjoern A. Zeebuk.*)				echo uk;;
1580696600cSBjoern A. Zeebus.iso.acc)			echo us.acc;;
1590696600cSBjoern A. Zeebus.pc-ctrl)			echo us.ctrl;;
1600696600cSBjoern A. Zeebus.iso)				echo us;;
1610696600cSBjoern A. Zeeb	esac
1620696600cSBjoern A. Zeeb}
1630696600cSBjoern A. Zeeb
1640696600cSBjoern A. Zeebkbdcontrol_load_keymap()
1650696600cSBjoern A. Zeeb{
1660696600cSBjoern A. Zeeb	errmsg=`kbdcontrol < ${kbddev} -l ${keymap} 2>&1`
1670696600cSBjoern A. Zeeb	if [ -n "${errmsg}" -a "${_sc_console}" = "vt" ]; then
1680696600cSBjoern A. Zeeb		_sc_keymap_msg="${errmsg}"
1690696600cSBjoern A. Zeeb		keymap_vt=`lookup_keymap_for_vt ${keymap}`
1700696600cSBjoern A. Zeeb		if [ -n "${keymap_vt}" ]; then
1710696600cSBjoern A. Zeeb			errmsg=`kbdcontrol < ${kbddev} -l ${keymap_vt} 2>&1`
1720696600cSBjoern A. Zeeb			if [ -z "${errmsg}" ]; then
1730696600cSBjoern A. Zeeb				_sc_keymap_msg="New keymap: In /etc/rc.conf replace 'keymap=${keymap}' by 'keymap=${keymap_vt}'"
1740696600cSBjoern A. Zeeb			fi
1750696600cSBjoern A. Zeeb		else
1760696600cSBjoern A. Zeeb			_sc_keymap_msg="No replacement found for keymap '${keymap}'.
1770696600cSBjoern A. ZeebYou may try to convert your keymap file using 'convert-keymap.pl', which is
1780696600cSBjoern A. Zeebpart of the system sources and located in /usr/src/tools/tools/vt/keymaps/"
1790696600cSBjoern A. Zeeb		fi
1800696600cSBjoern A. Zeeb	fi
1810696600cSBjoern A. Zeeb}
1820696600cSBjoern A. Zeeb
1830696600cSBjoern A. Zeeb# helper
1840696600cSBjoern A. Zeebsyscons_configure_keyboard()
1850696600cSBjoern A. Zeeb{
1860696600cSBjoern A. Zeeb	# keymap
1870696600cSBjoern A. Zeeb	#
1880696600cSBjoern A. Zeeb	case ${keymap} in
1890696600cSBjoern A. Zeeb	NO | '')
1900696600cSBjoern A. Zeeb		;;
1910696600cSBjoern A. Zeeb	*)
1920696600cSBjoern A. Zeeb		sc_init
1930696600cSBjoern A. Zeeb		echo -n ' keymap';	kbdcontrol_load_keymap
1940696600cSBjoern A. Zeeb		;;
1950696600cSBjoern A. Zeeb	esac
1960696600cSBjoern A. Zeeb
1970696600cSBjoern A. Zeeb	# keyrate
1980696600cSBjoern A. Zeeb	#
1990696600cSBjoern A. Zeeb	case ${keyrate} in
2000696600cSBjoern A. Zeeb	[Nn][Oo] | '')
2010696600cSBjoern A. Zeeb		;;
2020696600cSBjoern A. Zeeb	*)
2030696600cSBjoern A. Zeeb		sc_init
2040696600cSBjoern A. Zeeb		echo -n ' keyrate';	kbdcontrol < ${kbddev} -r ${keyrate}
2050696600cSBjoern A. Zeeb		;;
2060696600cSBjoern A. Zeeb	esac
2070696600cSBjoern A. Zeeb
2080696600cSBjoern A. Zeeb	# keybell
2090696600cSBjoern A. Zeeb	#
2100696600cSBjoern A. Zeeb	case ${keybell} in
2110696600cSBjoern A. Zeeb	[Nn][Oo] | '')
2120696600cSBjoern A. Zeeb		;;
2130696600cSBjoern A. Zeeb	*)
2140696600cSBjoern A. Zeeb		sc_init
2150696600cSBjoern A. Zeeb		echo -n ' keybell';	kbdcontrol < ${kbddev} -b ${keybell}
2160696600cSBjoern A. Zeeb		;;
2170696600cSBjoern A. Zeeb	esac
2180696600cSBjoern A. Zeeb
2190696600cSBjoern A. Zeeb	# change function keys
2200696600cSBjoern A. Zeeb	#
2210696600cSBjoern A. Zeeb	case ${keychange} in
2220696600cSBjoern A. Zeeb	[Nn][Oo] | '')
2230696600cSBjoern A. Zeeb		;;
2240696600cSBjoern A. Zeeb	*)
2250696600cSBjoern A. Zeeb		sc_init
2260696600cSBjoern A. Zeeb		echo -n ' keychange'
2270696600cSBjoern A. Zeeb		set -- ${keychange}
2280696600cSBjoern A. Zeeb		while [ $# -gt 0 ]; do
2290696600cSBjoern A. Zeeb			kbdcontrol <${kbddev} -f "$1" "$2"
2300696600cSBjoern A. Zeeb			shift; shift
2310696600cSBjoern A. Zeeb		done
2320696600cSBjoern A. Zeeb		;;
2330696600cSBjoern A. Zeeb	esac
2340696600cSBjoern A. Zeeb
2350696600cSBjoern A. Zeeb	# set this keyboard mode for all virtual terminals
2360696600cSBjoern A. Zeeb	#
2370696600cSBjoern A. Zeeb	if [ -n "${allscreens_kbdflags}" ]; then
2380696600cSBjoern A. Zeeb		sc_init
2390696600cSBjoern A. Zeeb		echo -n ' allscreens_kbd'
2400696600cSBjoern A. Zeeb		for ttyv in /dev/ttyv*; do
2410696600cSBjoern A. Zeeb			kbdcontrol ${allscreens_kbdflags} < ${ttyv} > ${ttyv} 2>&1
2420696600cSBjoern A. Zeeb		done
2430696600cSBjoern A. Zeeb	fi
2440696600cSBjoern A. Zeeb}
2450696600cSBjoern A. Zeeb
2460696600cSBjoern A. Zeebsyscons_setkeyboard()
2470696600cSBjoern A. Zeeb{
2480696600cSBjoern A. Zeeb	kbd=$1
2490696600cSBjoern A. Zeeb
2500696600cSBjoern A. Zeeb	if [ -z "${kbd}" ]; then
2510696600cSBjoern A. Zeeb		return 1
2520696600cSBjoern A. Zeeb	fi
2530696600cSBjoern A. Zeeb
2540696600cSBjoern A. Zeeb	# Check if the kbdmux(4) is the current active keyboard
2550696600cSBjoern A. Zeeb	kbdcontrol -i < ${kbddev} | grep kbdmux > /dev/null 2>&1
2560696600cSBjoern A. Zeeb	if [ $? -ne 0 ]; then
2570696600cSBjoern A. Zeeb		kbdcontrol -k ${kbd} < ${kbddev} > /dev/null 2>&1
2580696600cSBjoern A. Zeeb	fi
2590696600cSBjoern A. Zeeb
2600696600cSBjoern A. Zeeb	_sc_config="keyboard"
2610696600cSBjoern A. Zeeb	syscons_configure_keyboard
2620696600cSBjoern A. Zeeb
2630696600cSBjoern A. Zeeb	# Terminate keyboard configuration line and reset global variables.
2640696600cSBjoern A. Zeeb	#
2650696600cSBjoern A. Zeeb	if [ -n "${_sc_initdone}" ]; then
2660696600cSBjoern A. Zeeb		echo '.'
2670696600cSBjoern A. Zeeb		_sc_config="${_sc_console}"
2680696600cSBjoern A. Zeeb		_sc_initdone=
2690696600cSBjoern A. Zeeb	fi
2700696600cSBjoern A. Zeeb}
2710696600cSBjoern A. Zeeb
2720696600cSBjoern A. Zeebsyscons_precmd()
2730696600cSBjoern A. Zeeb{
2740696600cSBjoern A. Zeeb	if [ ! -c $kbddev ]
2750696600cSBjoern A. Zeeb	then
2760696600cSBjoern A. Zeeb		return 1
2770696600cSBjoern A. Zeeb	fi
2780696600cSBjoern A. Zeeb	return 0
2790696600cSBjoern A. Zeeb}
2800696600cSBjoern A. Zeeb
2813662862fSEmmanuel Vadotsyscons_bios_start()
2820696600cSBjoern A. Zeeb{
2830696600cSBjoern A. Zeeb	# cursor type
2840696600cSBjoern A. Zeeb	#
2850696600cSBjoern A. Zeeb	case ${cursor} in
2860696600cSBjoern A. Zeeb	[Nn][Oo] | '')
2870696600cSBjoern A. Zeeb		;;
2880696600cSBjoern A. Zeeb	*)
2890696600cSBjoern A. Zeeb		sc_init
2900696600cSBjoern A. Zeeb		echo -n ' cursor';	vidcontrol < ${viddev} -c ${cursor}
2910696600cSBjoern A. Zeeb		;;
2920696600cSBjoern A. Zeeb	esac
2930696600cSBjoern A. Zeeb
2940696600cSBjoern A. Zeeb	# screen mapping
2950696600cSBjoern A. Zeeb	#
2960696600cSBjoern A. Zeeb	case ${scrnmap} in
2970696600cSBjoern A. Zeeb	[Nn][Oo] | '')
2980696600cSBjoern A. Zeeb		;;
2990696600cSBjoern A. Zeeb	*)
3000696600cSBjoern A. Zeeb		sc_init
3010696600cSBjoern A. Zeeb		echo -n ' scrnmap';	vidcontrol < ${viddev} -l ${scrnmap}
3020696600cSBjoern A. Zeeb		;;
3030696600cSBjoern A. Zeeb	esac
3040696600cSBjoern A. Zeeb
3053662862fSEmmanuel Vadot	# blank time
3063662862fSEmmanuel Vadot	#
3073662862fSEmmanuel Vadot	case ${blanktime} in
3083662862fSEmmanuel Vadot	[Nn][Oo] | '')
3093662862fSEmmanuel Vadot		;;
3103662862fSEmmanuel Vadot	*)
3113662862fSEmmanuel Vadot		sc_init
3123662862fSEmmanuel Vadot		echo -n ' blanktime';	vidcontrol < ${viddev} -t ${blanktime}
3133662862fSEmmanuel Vadot		;;
3143662862fSEmmanuel Vadot	esac
3153662862fSEmmanuel Vadot
3163662862fSEmmanuel Vadot	# screen saver
3173662862fSEmmanuel Vadot	#
3183662862fSEmmanuel Vadot	case ${saver} in
3193662862fSEmmanuel Vadot	[Nn][Oo] | '')
3203662862fSEmmanuel Vadot		;;
3213662862fSEmmanuel Vadot	*)
3223662862fSEmmanuel Vadot		sc_init
3233662862fSEmmanuel Vadot		echo -n ' screensaver'
3243662862fSEmmanuel Vadot		for i in `kldstat | awk '$5 ~ "_saver\.ko$" { print $5 }'`; do
3253662862fSEmmanuel Vadot			kldunload ${i}
3263662862fSEmmanuel Vadot		done
3273662862fSEmmanuel Vadot		load_kld -e _saver ${saver}_saver
3283662862fSEmmanuel Vadot		;;
3293662862fSEmmanuel Vadot	esac
3303662862fSEmmanuel Vadot}
3313662862fSEmmanuel Vadot
3323662862fSEmmanuel Vadotsyscons_start()
3333662862fSEmmanuel Vadot{
3343662862fSEmmanuel Vadot	# keyboard
3353662862fSEmmanuel Vadot	#
3363662862fSEmmanuel Vadot	if [ -n "${keyboard}" ]; then
3373662862fSEmmanuel Vadot		syscons_setkeyboard ${keyboard}
3383662862fSEmmanuel Vadot	fi
3393662862fSEmmanuel Vadot
3403662862fSEmmanuel Vadot	syscons_configure_keyboard
3413662862fSEmmanuel Vadot
3423662862fSEmmanuel Vadot	if [ "${_sc_bootmethod}" = "bios" ]; then
3433662862fSEmmanuel Vadot		syscons_bios_start
3443662862fSEmmanuel Vadot	fi
3453662862fSEmmanuel Vadot
3460696600cSBjoern A. Zeeb	# font 8x16
3470696600cSBjoern A. Zeeb	#
3480696600cSBjoern A. Zeeb	case ${font8x16} in
3490696600cSBjoern A. Zeeb	[Nn][Oo] | '')
3500696600cSBjoern A. Zeeb		;;
3510696600cSBjoern A. Zeeb	*)
3520696600cSBjoern A. Zeeb		sc_init
3530696600cSBjoern A. Zeeb		echo -n ' font8x16';	vidcontrol < ${viddev} -f 8x16 ${font8x16}
3540696600cSBjoern A. Zeeb		;;
3550696600cSBjoern A. Zeeb	esac
3560696600cSBjoern A. Zeeb
3570696600cSBjoern A. Zeeb	# font 8x14
3580696600cSBjoern A. Zeeb	#
3590696600cSBjoern A. Zeeb	case ${font8x14} in
3600696600cSBjoern A. Zeeb	[Nn][Oo] | '')
3610696600cSBjoern A. Zeeb		;;
3620696600cSBjoern A. Zeeb	*)
3630696600cSBjoern A. Zeeb		sc_init
3640696600cSBjoern A. Zeeb		echo -n ' font8x14';	vidcontrol < ${viddev} -f 8x14 ${font8x14}
3650696600cSBjoern A. Zeeb		;;
3660696600cSBjoern A. Zeeb	esac
3670696600cSBjoern A. Zeeb
3680696600cSBjoern A. Zeeb	# font 8x8
3690696600cSBjoern A. Zeeb	#
3700696600cSBjoern A. Zeeb	case ${font8x8} in
3710696600cSBjoern A. Zeeb	[Nn][Oo] | '')
3720696600cSBjoern A. Zeeb		;;
3730696600cSBjoern A. Zeeb	*)
3740696600cSBjoern A. Zeeb		sc_init
3750696600cSBjoern A. Zeeb		echo -n ' font8x8';	vidcontrol < ${viddev} -f 8x8 ${font8x8}
3760696600cSBjoern A. Zeeb		;;
3770696600cSBjoern A. Zeeb	esac
3780696600cSBjoern A. Zeeb
3790696600cSBjoern A. Zeeb	# set this mode for all virtual screens
3800696600cSBjoern A. Zeeb	#
3810696600cSBjoern A. Zeeb	if [ -n "${allscreens_flags}" ]; then
3820696600cSBjoern A. Zeeb		sc_init
3830696600cSBjoern A. Zeeb		echo -n ' allscreens'
3840696600cSBjoern A. Zeeb		for ttyv in /dev/ttyv*; do
3850696600cSBjoern A. Zeeb			vidcontrol ${allscreens_flags} < ${ttyv} > ${ttyv} 2>&1
3860696600cSBjoern A. Zeeb		done
3870696600cSBjoern A. Zeeb	fi
3880696600cSBjoern A. Zeeb
3890696600cSBjoern A. Zeeb	[ -n "${_sc_initdone}" ] && echo '.'
3900696600cSBjoern A. Zeeb	if [ -n "${_sc_keymap_msg}" ]; then
3910696600cSBjoern A. Zeeb		echo
3920696600cSBjoern A. Zeeb		echo "WARNING:"
3930696600cSBjoern A. Zeeb		echo "${_sc_keymap_msg}."
3940696600cSBjoern A. Zeeb		echo
3950696600cSBjoern A. Zeeb	fi
3960696600cSBjoern A. Zeeb}
3970696600cSBjoern A. Zeeb
3980696600cSBjoern A. Zeebload_rc_config $name
399*f99f0ee1SAlexander Leidinger
400*f99f0ee1SAlexander Leidinger# doesn't make sense to run in a svcj: config setting
401*f99f0ee1SAlexander Leidingersyscons_svcj="NO"
402*f99f0ee1SAlexander Leidinger
4030696600cSBjoern A. Zeebrun_rc_command $*
4040696600cSBjoern A. Zeeb
405