xref: /freebsd/libexec/rc/rc.d/syscons (revision 3662862f558f6afbdb53b1d6570c482c7d180580)
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# $FreeBSD$
280696600cSBjoern A. Zeeb#
290696600cSBjoern A. Zeeb
300696600cSBjoern A. Zeeb# PROVIDE: syscons
310696600cSBjoern A. Zeeb# REQUIRE: LOGIN
320696600cSBjoern A. Zeeb# KEYWORD: nojail
330696600cSBjoern A. Zeeb
340696600cSBjoern A. Zeeb. /etc/rc.subr
350696600cSBjoern A. Zeeb
360696600cSBjoern A. Zeebname="syscons"
370696600cSBjoern A. Zeebdesc="Configure the system console"
380696600cSBjoern A. Zeebextra_commands="setkeyboard"
390696600cSBjoern A. Zeebsetkeyboard_cmd="syscons_setkeyboard"
400696600cSBjoern A. Zeebstart_precmd="syscons_precmd"
410696600cSBjoern A. Zeebstart_cmd="syscons_start"
420696600cSBjoern A. Zeebstop_cmd=":"
430696600cSBjoern A. Zeeb
440696600cSBjoern A. Zeeb# stdin must be redirected because it might be for a serial console
450696600cSBjoern A. Zeeb#
460696600cSBjoern A. Zeebkbddev=/dev/ttyv0
470696600cSBjoern A. Zeebviddev=/dev/ttyv0
480696600cSBjoern A. Zeeb
490696600cSBjoern A. Zeeb_sc_config=
500696600cSBjoern A. Zeeb_sc_console=
510696600cSBjoern A. Zeeb_sc_initdone=
520696600cSBjoern A. Zeeb_sc_keymap_msg=
53*3662862fSEmmanuel Vadot_sc_bootmethod=
540696600cSBjoern A. Zeebsc_init()
550696600cSBjoern A. Zeeb{
56*3662862fSEmmanuel Vadot	local bootmethod
57*3662862fSEmmanuel Vadot
580696600cSBjoern A. Zeeb	if [ -z "${_sc_initdone}" ]; then
590696600cSBjoern A. Zeeb		if [ -z "${_sc_console}" ]; then
600696600cSBjoern A. Zeeb			if [ x`sysctl -n kern.vty` = x"vt" ]; then
610696600cSBjoern A. Zeeb				_sc_console="vt"
620696600cSBjoern A. Zeeb			else
630696600cSBjoern A. Zeeb				_sc_console="syscons"
640696600cSBjoern A. Zeeb			fi
650696600cSBjoern A. Zeeb			_sc_config="${_sc_console}"
660696600cSBjoern A. Zeeb		fi
67*3662862fSEmmanuel Vadot		if [ -z "${_sc_bootmethod}" ]; then
68*3662862fSEmmanuel Vadot			bootmethod=$(sysctl -qn machdep.bootmethod)
69*3662862fSEmmanuel Vadot			case ${bootmethod} in
70*3662862fSEmmanuel Vadot				UEFI)
71*3662862fSEmmanuel Vadot					_sc_bootmethod="uefi"
72*3662862fSEmmanuel Vadot					;;
73*3662862fSEmmanuel Vadot				BIOS)
74*3662862fSEmmanuel Vadot					_sc_bootmethod="bios"
75*3662862fSEmmanuel Vadot					;;
76*3662862fSEmmanuel Vadot				PVH)
77*3662862fSEmmanuel Vadot					_sc_bootmethod="pvh"
78*3662862fSEmmanuel Vadot					;;
79*3662862fSEmmanuel Vadot				*)
80*3662862fSEmmanuel Vadot					_sc_bootmethod="uefi" # Default to UEFI
81*3662862fSEmmanuel Vadot					;;
82*3662862fSEmmanuel Vadot			esac
83*3662862fSEmmanuel Vadot		fi
840696600cSBjoern A. Zeeb		echo -n "Configuring ${_sc_config}:"
850696600cSBjoern A. Zeeb		_sc_initdone=yes
860696600cSBjoern A. Zeeb	fi
870696600cSBjoern A. Zeeb}
880696600cSBjoern A. Zeeb
890696600cSBjoern A. Zeeb# syscons to vt migration helper
900696600cSBjoern A. Zeeblookup_keymap_for_vt()
910696600cSBjoern A. Zeeb{
920696600cSBjoern A. Zeeb	keymap=`basename $1 .kbd`
930696600cSBjoern A. Zeeb	case $keymap in
940696600cSBjoern A. Zeebhy.armscii-8)			echo am;;
950696600cSBjoern A. Zeebbe.iso.acc)			echo be.acc;;
960696600cSBjoern A. Zeebbe.iso)				echo be;;
970696600cSBjoern A. Zeebbg.bds.ctrlcaps)		echo bg.bds;;
980696600cSBjoern A. Zeebbg.phonetic.ctrlcaps)		echo bg.phonetic;;
990696600cSBjoern A. Zeebbr275.iso.acc)			echo br;;
1000696600cSBjoern A. Zeebbr275.*)			echo br.noacc;;
1010696600cSBjoern A. Zeebby.*)				echo by;;
1020696600cSBjoern A. Zeebfr_CA.iso.acc)			echo ca-fr;;
1030696600cSBjoern A. Zeebswissgerman.macbook.acc)	echo ch.macbook.acc;;
1040696600cSBjoern A. Zeebswissgerman.iso.acc)		echo ch.acc;;
1050696600cSBjoern A. Zeebswissgerman.*)			echo ch;;
1060696600cSBjoern A. Zeebswissfrench.iso.acc)		echo ch-fr.acc;;
1070696600cSBjoern A. Zeebswissfrench.*)			echo ch-fr;;
1080696600cSBjoern A. Zeebce.iso2)			echo centraleuropean.qwerty;;
1090696600cSBjoern A. Zeebcolemak.iso15.acc)		echo colemak.acc;;
1100696600cSBjoern A. Zeebcs.*|cz.*)			echo cz;;
1110696600cSBjoern A. Zeebgerman.iso.acc)			echo de.acc;;
1120696600cSBjoern A. Zeebgerman.*)			echo de;;
1130696600cSBjoern A. Zeebdanish.iso.acc)			echo dk.acc;;
1140696600cSBjoern A. Zeebdanish.iso.macbook)		echo dk.macbook;;
1150696600cSBjoern A. Zeebdanish.*)			echo dk;;
1160696600cSBjoern A. Zeebestonian.*)			echo ee;;
1170696600cSBjoern A. Zeebspanish.dvorak)			echo es.dvorak;;
1180696600cSBjoern A. Zeebspanish.iso*.acc)		echo es.acc;;
1190696600cSBjoern A. Zeebspanish.iso)			echo es;;
1200696600cSBjoern A. Zeebfinnish.*)			echo fi;;
1210696600cSBjoern A. Zeebfr.macbook.acc)			echo fr.macbook;;
1220696600cSBjoern A. Zeebfr.iso.acc)			echo fr.acc;;
1230696600cSBjoern A. Zeebfr.iso)				echo fr;;
1240696600cSBjoern A. Zeebel.iso07)			echo gr;;
1250696600cSBjoern A. Zeebgr.us101.acc)			echo gr.101.acc;;
1260696600cSBjoern A. Zeebhr.iso)				echo hr;;
1270696600cSBjoern A. Zeebhu.iso2.101keys)		echo hu.101;;
1280696600cSBjoern A. Zeebhu.iso2.102keys)		echo hu.102;;
1290696600cSBjoern A. Zeebiw.iso8)			echo il;;
1300696600cSBjoern A. Zeebicelandic.iso.acc)		echo is.acc;;
1310696600cSBjoern A. Zeebicelandic.iso)			echo is;;
1320696600cSBjoern A. Zeebit.iso)				echo it;;
1330696600cSBjoern A. Zeebjp.106x)			echo jp.capsctrl;;
1340696600cSBjoern A. Zeebjp.106)				echo jp;;
1350696600cSBjoern A. Zeebkk.pt154.io)			echo kz.io;;
1360696600cSBjoern A. Zeebkk.pt154.kst)			echo kz.kst;;
1370696600cSBjoern A. Zeeblatinamerican.iso.acc)		echo latinamerican.acc;;
1380696600cSBjoern A. Zeeblt.iso4)			echo lt;;
1390696600cSBjoern A. Zeebnorwegian.iso)			echo no;;
1400696600cSBjoern A. Zeebnorwegian.dvorak)		echo no.dvorak;;
1410696600cSBjoern A. Zeebdutch.iso.acc)			echo nl;;
1420696600cSBjoern A. Zeebeee_nordic)			echo nordic.asus-eee;;
1430696600cSBjoern A. Zeebpl_PL.dvorak)			echo pl.dvorak;;
1440696600cSBjoern A. Zeebpl_PL.ISO8859-2)		echo pl;;
1450696600cSBjoern A. Zeebpt.iso.acc)			echo pt.acc;;
1460696600cSBjoern A. Zeebpt.iso)				echo pt;;
1470696600cSBjoern A. Zeebru.koi8-r.shift)		echo ru.shift;;
1480696600cSBjoern A. Zeebru.koi8-r.win)			echo ru.win;;
1490696600cSBjoern A. Zeebru.*)				echo ru;;
1500696600cSBjoern A. Zeebswedish.*)			echo se;;
1510696600cSBjoern A. Zeebsi.iso)				echo si;;
1520696600cSBjoern A. Zeebsk.iso2)			echo sk;;
1530696600cSBjoern A. Zeebtr.iso9.q)			echo tr;;
1540696600cSBjoern A. Zeebua.koi8-u.shift.alt)		echo ua.shift.alt;;
1550696600cSBjoern A. Zeebua.*)				echo ua;;
1560696600cSBjoern A. Zeebuk.*-ctrl)			echo uk.capsctrl;;
1570696600cSBjoern A. Zeebuk.dvorak)			echo uk.dvorak;;
1580696600cSBjoern A. Zeebuk.*)				echo uk;;
1590696600cSBjoern A. Zeebus.iso.acc)			echo us.acc;;
1600696600cSBjoern A. Zeebus.pc-ctrl)			echo us.ctrl;;
1610696600cSBjoern A. Zeebus.iso)				echo us;;
1620696600cSBjoern A. Zeeb	esac
1630696600cSBjoern A. Zeeb}
1640696600cSBjoern A. Zeeb
1650696600cSBjoern A. Zeebkbdcontrol_load_keymap()
1660696600cSBjoern A. Zeeb{
1670696600cSBjoern A. Zeeb	errmsg=`kbdcontrol < ${kbddev} -l ${keymap} 2>&1`
1680696600cSBjoern A. Zeeb	if [ -n "${errmsg}" -a "${_sc_console}" = "vt" ]; then
1690696600cSBjoern A. Zeeb		_sc_keymap_msg="${errmsg}"
1700696600cSBjoern A. Zeeb		keymap_vt=`lookup_keymap_for_vt ${keymap}`
1710696600cSBjoern A. Zeeb		if [ -n "${keymap_vt}" ]; then
1720696600cSBjoern A. Zeeb			errmsg=`kbdcontrol < ${kbddev} -l ${keymap_vt} 2>&1`
1730696600cSBjoern A. Zeeb			if [ -z "${errmsg}" ]; then
1740696600cSBjoern A. Zeeb				_sc_keymap_msg="New keymap: In /etc/rc.conf replace 'keymap=${keymap}' by 'keymap=${keymap_vt}'"
1750696600cSBjoern A. Zeeb			fi
1760696600cSBjoern A. Zeeb		else
1770696600cSBjoern A. Zeeb			_sc_keymap_msg="No replacement found for keymap '${keymap}'.
1780696600cSBjoern A. ZeebYou may try to convert your keymap file using 'convert-keymap.pl', which is
1790696600cSBjoern A. Zeebpart of the system sources and located in /usr/src/tools/tools/vt/keymaps/"
1800696600cSBjoern A. Zeeb		fi
1810696600cSBjoern A. Zeeb	fi
1820696600cSBjoern A. Zeeb}
1830696600cSBjoern A. Zeeb
1840696600cSBjoern A. Zeeb# helper
1850696600cSBjoern A. Zeebsyscons_configure_keyboard()
1860696600cSBjoern A. Zeeb{
1870696600cSBjoern A. Zeeb	# keymap
1880696600cSBjoern A. Zeeb	#
1890696600cSBjoern A. Zeeb	case ${keymap} in
1900696600cSBjoern A. Zeeb	NO | '')
1910696600cSBjoern A. Zeeb		;;
1920696600cSBjoern A. Zeeb	*)
1930696600cSBjoern A. Zeeb		sc_init
1940696600cSBjoern A. Zeeb		echo -n ' keymap';	kbdcontrol_load_keymap
1950696600cSBjoern A. Zeeb		;;
1960696600cSBjoern A. Zeeb	esac
1970696600cSBjoern A. Zeeb
1980696600cSBjoern A. Zeeb	# keyrate
1990696600cSBjoern A. Zeeb	#
2000696600cSBjoern A. Zeeb	case ${keyrate} in
2010696600cSBjoern A. Zeeb	[Nn][Oo] | '')
2020696600cSBjoern A. Zeeb		;;
2030696600cSBjoern A. Zeeb	*)
2040696600cSBjoern A. Zeeb		sc_init
2050696600cSBjoern A. Zeeb		echo -n ' keyrate';	kbdcontrol < ${kbddev} -r ${keyrate}
2060696600cSBjoern A. Zeeb		;;
2070696600cSBjoern A. Zeeb	esac
2080696600cSBjoern A. Zeeb
2090696600cSBjoern A. Zeeb	# keybell
2100696600cSBjoern A. Zeeb	#
2110696600cSBjoern A. Zeeb	case ${keybell} in
2120696600cSBjoern A. Zeeb	[Nn][Oo] | '')
2130696600cSBjoern A. Zeeb		;;
2140696600cSBjoern A. Zeeb	*)
2150696600cSBjoern A. Zeeb		sc_init
2160696600cSBjoern A. Zeeb		echo -n ' keybell';	kbdcontrol < ${kbddev} -b ${keybell}
2170696600cSBjoern A. Zeeb		;;
2180696600cSBjoern A. Zeeb	esac
2190696600cSBjoern A. Zeeb
2200696600cSBjoern A. Zeeb	# change function keys
2210696600cSBjoern A. Zeeb	#
2220696600cSBjoern A. Zeeb	case ${keychange} in
2230696600cSBjoern A. Zeeb	[Nn][Oo] | '')
2240696600cSBjoern A. Zeeb		;;
2250696600cSBjoern A. Zeeb	*)
2260696600cSBjoern A. Zeeb		sc_init
2270696600cSBjoern A. Zeeb		echo -n ' keychange'
2280696600cSBjoern A. Zeeb		set -- ${keychange}
2290696600cSBjoern A. Zeeb		while [ $# -gt 0 ]; do
2300696600cSBjoern A. Zeeb			kbdcontrol <${kbddev} -f "$1" "$2"
2310696600cSBjoern A. Zeeb			shift; shift
2320696600cSBjoern A. Zeeb		done
2330696600cSBjoern A. Zeeb		;;
2340696600cSBjoern A. Zeeb	esac
2350696600cSBjoern A. Zeeb
2360696600cSBjoern A. Zeeb	# set this keyboard mode for all virtual terminals
2370696600cSBjoern A. Zeeb	#
2380696600cSBjoern A. Zeeb	if [ -n "${allscreens_kbdflags}" ]; then
2390696600cSBjoern A. Zeeb		sc_init
2400696600cSBjoern A. Zeeb		echo -n ' allscreens_kbd'
2410696600cSBjoern A. Zeeb		for ttyv in /dev/ttyv*; do
2420696600cSBjoern A. Zeeb			kbdcontrol ${allscreens_kbdflags} < ${ttyv} > ${ttyv} 2>&1
2430696600cSBjoern A. Zeeb		done
2440696600cSBjoern A. Zeeb	fi
2450696600cSBjoern A. Zeeb}
2460696600cSBjoern A. Zeeb
2470696600cSBjoern A. Zeebsyscons_setkeyboard()
2480696600cSBjoern A. Zeeb{
2490696600cSBjoern A. Zeeb	kbd=$1
2500696600cSBjoern A. Zeeb
2510696600cSBjoern A. Zeeb	if [ -z "${kbd}" ]; then
2520696600cSBjoern A. Zeeb		return 1
2530696600cSBjoern A. Zeeb	fi
2540696600cSBjoern A. Zeeb
2550696600cSBjoern A. Zeeb	# Check if the kbdmux(4) is the current active keyboard
2560696600cSBjoern A. Zeeb	kbdcontrol -i < ${kbddev} | grep kbdmux > /dev/null 2>&1
2570696600cSBjoern A. Zeeb	if [ $? -ne 0 ]; then
2580696600cSBjoern A. Zeeb		kbdcontrol -k ${kbd} < ${kbddev} > /dev/null 2>&1
2590696600cSBjoern A. Zeeb	fi
2600696600cSBjoern A. Zeeb
2610696600cSBjoern A. Zeeb	_sc_config="keyboard"
2620696600cSBjoern A. Zeeb	syscons_configure_keyboard
2630696600cSBjoern A. Zeeb
2640696600cSBjoern A. Zeeb	# Terminate keyboard configuration line and reset global variables.
2650696600cSBjoern A. Zeeb	#
2660696600cSBjoern A. Zeeb	if [ -n "${_sc_initdone}" ]; then
2670696600cSBjoern A. Zeeb		echo '.'
2680696600cSBjoern A. Zeeb		_sc_config="${_sc_console}"
2690696600cSBjoern A. Zeeb		_sc_initdone=
2700696600cSBjoern A. Zeeb	fi
2710696600cSBjoern A. Zeeb}
2720696600cSBjoern A. Zeeb
2730696600cSBjoern A. Zeebsyscons_precmd()
2740696600cSBjoern A. Zeeb{
2750696600cSBjoern A. Zeeb	if [ ! -c $kbddev ]
2760696600cSBjoern A. Zeeb	then
2770696600cSBjoern A. Zeeb		return 1
2780696600cSBjoern A. Zeeb	fi
2790696600cSBjoern A. Zeeb	return 0
2800696600cSBjoern A. Zeeb}
2810696600cSBjoern A. Zeeb
282*3662862fSEmmanuel Vadotsyscons_bios_start()
2830696600cSBjoern A. Zeeb{
2840696600cSBjoern A. Zeeb	# cursor type
2850696600cSBjoern A. Zeeb	#
2860696600cSBjoern A. Zeeb	case ${cursor} in
2870696600cSBjoern A. Zeeb	[Nn][Oo] | '')
2880696600cSBjoern A. Zeeb		;;
2890696600cSBjoern A. Zeeb	*)
2900696600cSBjoern A. Zeeb		sc_init
2910696600cSBjoern A. Zeeb		echo -n ' cursor';	vidcontrol < ${viddev} -c ${cursor}
2920696600cSBjoern A. Zeeb		;;
2930696600cSBjoern A. Zeeb	esac
2940696600cSBjoern A. Zeeb
2950696600cSBjoern A. Zeeb	# screen mapping
2960696600cSBjoern A. Zeeb	#
2970696600cSBjoern A. Zeeb	case ${scrnmap} in
2980696600cSBjoern A. Zeeb	[Nn][Oo] | '')
2990696600cSBjoern A. Zeeb		;;
3000696600cSBjoern A. Zeeb	*)
3010696600cSBjoern A. Zeeb		sc_init
3020696600cSBjoern A. Zeeb		echo -n ' scrnmap';	vidcontrol < ${viddev} -l ${scrnmap}
3030696600cSBjoern A. Zeeb		;;
3040696600cSBjoern A. Zeeb	esac
3050696600cSBjoern A. Zeeb
306*3662862fSEmmanuel Vadot	# blank time
307*3662862fSEmmanuel Vadot	#
308*3662862fSEmmanuel Vadot	case ${blanktime} in
309*3662862fSEmmanuel Vadot	[Nn][Oo] | '')
310*3662862fSEmmanuel Vadot		;;
311*3662862fSEmmanuel Vadot	*)
312*3662862fSEmmanuel Vadot		sc_init
313*3662862fSEmmanuel Vadot		echo -n ' blanktime';	vidcontrol < ${viddev} -t ${blanktime}
314*3662862fSEmmanuel Vadot		;;
315*3662862fSEmmanuel Vadot	esac
316*3662862fSEmmanuel Vadot
317*3662862fSEmmanuel Vadot	# screen saver
318*3662862fSEmmanuel Vadot	#
319*3662862fSEmmanuel Vadot	case ${saver} in
320*3662862fSEmmanuel Vadot	[Nn][Oo] | '')
321*3662862fSEmmanuel Vadot		;;
322*3662862fSEmmanuel Vadot	*)
323*3662862fSEmmanuel Vadot		sc_init
324*3662862fSEmmanuel Vadot		echo -n ' screensaver'
325*3662862fSEmmanuel Vadot		for i in `kldstat | awk '$5 ~ "_saver\.ko$" { print $5 }'`; do
326*3662862fSEmmanuel Vadot			kldunload ${i}
327*3662862fSEmmanuel Vadot		done
328*3662862fSEmmanuel Vadot		load_kld -e _saver ${saver}_saver
329*3662862fSEmmanuel Vadot		;;
330*3662862fSEmmanuel Vadot	esac
331*3662862fSEmmanuel Vadot}
332*3662862fSEmmanuel Vadot
333*3662862fSEmmanuel Vadotsyscons_start()
334*3662862fSEmmanuel Vadot{
335*3662862fSEmmanuel Vadot	# keyboard
336*3662862fSEmmanuel Vadot	#
337*3662862fSEmmanuel Vadot	if [ -n "${keyboard}" ]; then
338*3662862fSEmmanuel Vadot		syscons_setkeyboard ${keyboard}
339*3662862fSEmmanuel Vadot	fi
340*3662862fSEmmanuel Vadot
341*3662862fSEmmanuel Vadot	syscons_configure_keyboard
342*3662862fSEmmanuel Vadot
343*3662862fSEmmanuel Vadot	if [ "${_sc_bootmethod}" = "bios" ]; then
344*3662862fSEmmanuel Vadot		syscons_bios_start
345*3662862fSEmmanuel Vadot	fi
346*3662862fSEmmanuel Vadot
3470696600cSBjoern A. Zeeb	# font 8x16
3480696600cSBjoern A. Zeeb	#
3490696600cSBjoern A. Zeeb	case ${font8x16} in
3500696600cSBjoern A. Zeeb	[Nn][Oo] | '')
3510696600cSBjoern A. Zeeb		;;
3520696600cSBjoern A. Zeeb	*)
3530696600cSBjoern A. Zeeb		sc_init
3540696600cSBjoern A. Zeeb		echo -n ' font8x16';	vidcontrol < ${viddev} -f 8x16 ${font8x16}
3550696600cSBjoern A. Zeeb		;;
3560696600cSBjoern A. Zeeb	esac
3570696600cSBjoern A. Zeeb
3580696600cSBjoern A. Zeeb	# font 8x14
3590696600cSBjoern A. Zeeb	#
3600696600cSBjoern A. Zeeb	case ${font8x14} in
3610696600cSBjoern A. Zeeb	[Nn][Oo] | '')
3620696600cSBjoern A. Zeeb		;;
3630696600cSBjoern A. Zeeb	*)
3640696600cSBjoern A. Zeeb		sc_init
3650696600cSBjoern A. Zeeb		echo -n ' font8x14';	vidcontrol < ${viddev} -f 8x14 ${font8x14}
3660696600cSBjoern A. Zeeb		;;
3670696600cSBjoern A. Zeeb	esac
3680696600cSBjoern A. Zeeb
3690696600cSBjoern A. Zeeb	# font 8x8
3700696600cSBjoern A. Zeeb	#
3710696600cSBjoern A. Zeeb	case ${font8x8} in
3720696600cSBjoern A. Zeeb	[Nn][Oo] | '')
3730696600cSBjoern A. Zeeb		;;
3740696600cSBjoern A. Zeeb	*)
3750696600cSBjoern A. Zeeb		sc_init
3760696600cSBjoern A. Zeeb		echo -n ' font8x8';	vidcontrol < ${viddev} -f 8x8 ${font8x8}
3770696600cSBjoern A. Zeeb		;;
3780696600cSBjoern A. Zeeb	esac
3790696600cSBjoern A. Zeeb
3800696600cSBjoern A. Zeeb	# set this mode for all virtual screens
3810696600cSBjoern A. Zeeb	#
3820696600cSBjoern A. Zeeb	if [ -n "${allscreens_flags}" ]; then
3830696600cSBjoern A. Zeeb		sc_init
3840696600cSBjoern A. Zeeb		echo -n ' allscreens'
3850696600cSBjoern A. Zeeb		for ttyv in /dev/ttyv*; do
3860696600cSBjoern A. Zeeb			vidcontrol ${allscreens_flags} < ${ttyv} > ${ttyv} 2>&1
3870696600cSBjoern A. Zeeb		done
3880696600cSBjoern A. Zeeb	fi
3890696600cSBjoern A. Zeeb
3900696600cSBjoern A. Zeeb	[ -n "${_sc_initdone}" ] && echo '.'
3910696600cSBjoern A. Zeeb	if [ -n "${_sc_keymap_msg}" ]; then
3920696600cSBjoern A. Zeeb		echo
3930696600cSBjoern A. Zeeb		echo "WARNING:"
3940696600cSBjoern A. Zeeb		echo "${_sc_keymap_msg}."
3950696600cSBjoern A. Zeeb		echo
3960696600cSBjoern A. Zeeb	fi
3970696600cSBjoern A. Zeeb}
3980696600cSBjoern A. Zeeb
3990696600cSBjoern A. Zeebload_rc_config $name
4000696600cSBjoern A. Zeebrun_rc_command $*
4010696600cSBjoern A. Zeeb
402