Date: Sun, 28 Jun 1998 19:51:23 +0200 (CEST) From: hm@kts.org To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: i386/7100: pcvt: better integration into FreeBSD Message-ID: <m0yqLbn-000020C@bert.kts.org>
index | next in thread | raw e-mail
>Number: 7100
>Category: i386
>Synopsis: integrate pcvt configuration into the /etc/rc.XXX FreeBSD startup system
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Sun Jun 28 11:10:00 PDT 1998
>Last-Modified:
>Originator: Hellmuth Michaelis
>Organization:
Kitchen Table Systems
>Release: FreeBSD 2.2.6-RELEASE i386
>Environment:
In the kernel config(8) file, disable
device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
and enable
device vt0 at isa? port "IO_KBD" tty irq 1 vector pcrint
>Description:
In case pcvt is configured instead of syscons, the syscons-specific
section in rc.conf and rc.i386 no longer applies and no replacement
is currently available to set the necessary options for the pcvt
console driver.
>How-To-Repeat:
Configure a kernel with pcvt enabled instead of syscons.
>Fix:
What follows is three enhancments to files /etc/rc.conf, /etc/rc.i386
and the rc.conf manual page rc.conf.5 to integrate pcvt support into
the standard FreeBSD startup procedure:
1. addon to /etc/rc.conf
------------------------
##############################################################
### pcvt console options (VT100/VT220 emulation) ############
##############################################################
pcvt_keymap="NO" # keyboard map in /usr/share/misc/keycap.pcvt (or NO).
pcvt_keydel="NO" # key repeat delay, 0-3 (250,500,750,1000 msec) (or NO).
pcvt_keyrate="NO" # keyboard repetition rate 31-0 (2-30 char/sec) (or NO).
pcvt_keyrepeat="NO" # keyboard repeat ON or OFF (or NO).
pcvt_force24="NO" # force a 24 line display (when 25 possible) (or NO).
pcvt_hpext="NO" # use HP extensions (function keys labels) (or NO).
pcvt_lines="NO" # lines (25, 28, 40, 50 or NO).
pcvt_blanktime="NO" # blank time (in seconds) (or NO).
pcvt_cursorh="NO" # cursor top scanline (topmost line is 0) (or NO).
pcvt_cursorl="NO" # cursor low scanline (bottom line is 16) (or NO).
pcvt_monohigh="NO" # set intensity to high on monochrome monitors (or NO).
2. addon to /etc/rc.i386
------------------------
##########################################################################
####### pcvt VT100/VT220 terminal emulator section ########
##########################################################################
# path for pcvt's EGA/VGA download fonts
FONTP=/usr/share/misc/pcvtfonts
# check for correct driver and driver version matching
if ispcvt -d /dev/ttyv0 ; then
echo "rc.i386 configuring pcvt:"
# get video adaptor type
adaptor=`scon -d /dev/ttyv0 -a`
echo " video adaptor type is $adaptor"
# load fonts into vga
if [ $adaptor = VGA ] ; then
echo -n ' loading fonts: 8x16:0,'
loadfont -d /dev/ttyv0 -c0 -f $FONTP/vt220l.816
echo -n '1 '
loadfont -d /dev/ttyv0 -c1 -f $FONTP/vt220h.816
echo -n ' 8x14:0,'
loadfont -d /dev/ttyv0 -c2 -f $FONTP/vt220l.814
echo -n '1 '
loadfont -d /dev/ttyv0 -c3 -f $FONTP/vt220h.814
echo -n ' 8x10:0,'
loadfont -d /dev/ttyv0 -c4 -f $FONTP/vt220l.810
echo -n '1 '
loadfont -d /dev/ttyv0 -c5 -f $FONTP/vt220h.810
echo -n ' 8x8:0,'
loadfont -d /dev/ttyv0 -c6 -f $FONTP/vt220l.808
echo '1 '
loadfont -d /dev/ttyv0 -c7 -f $FONTP/vt220h.808
# setting screen sizes
if [ "X${pcvt_lines}" = X"28" ]; then
size=-s28
echo ' switching to 28 lines'
elif [ "X${pcvt_lines}" = X"40" ]; then
size=-s40
echo ' switching to 40 lines'
elif [ "X${pcvt_lines}" = X"50" ]; then
size=-s50
echo ' switching to 50 lines'
else
size=-s25
echo ' switching to 25 lines'
fi
fi
# get monitor type (mono/color)
monitor=`scon -d /dev/ttyv0 -m`
echo " monitor type is $monitor"
# use HP extensions to VT220 emulation ?
if [ "X${pcvt_hpext}" != X"NO" ] ; then
emulation=-H
echo " setting emulation to VT220"
else
emulation=-V
echo " setting emulation to VT220 with HP extensions"
fi
# for all screens do
for device in /dev/ttyv*
do
scon -d$device $size $emulation
if [ X${pcvt_cursorh} != X"NO" -a X${pcvt_cursorl} != X"NO" ] ; then
cursor -d$device -s$pcvt_cursorh -e$pcvt_cursorl
fi
# if monochrome monitor, set color palette to use a higher intensity
if [ X${pcvt_monohigh} != X"NO" -a $monitor = MONO -a $adaptor = VGA ] ; then
scon -d$device -p8,60,60,60
fi
done
# switch to screen 0
echo " switching to screen 0"
scon -d /dev/ttyv0
# set screensaver timeout
if [ "X${pcvt_blanktime}" != X"NO" ]; then
echo " setting screensaver timeout to $pcvt_blanktime seconds"
scon -d /dev/ttyv0 -t$pcvt_blanktime
fi
# setup keyboard for national keyboard layout
if [ "X${pcvt_keymap}" != X"NO" ]; then
echo " switching national keyboard layout to $pcvt_keymap"
kcon -m $pcvt_keymap
fi
# setup keyboard repeat delay value
if [ "X${pcvt_keydel}" != X"NO" ]; then
echo " setting keyboard delay to $pcvt_keydel"
kcon -d$pcvt_keydel
fi
# setup keyboard repeat rate value
if [ "X${pcvt_keyrate}" != X"NO" ]; then
echo " setting keyboard repeat rate to $pcvt_keyrate"
kcon -r$pcvt_keyrate
fi
echo "rc.i386 configuring pcvt finished."
fi
3. addon to manual page rc.conf.5
---------------------------------
.It Ar pcvt_keymap
(str) If set to
.Ar NO
then no national keyboard map is installed, otherwise the value is used
to install the keyboard map from
.Pa /usr/share/misc/keycap.pcvt
This file is a simple termcap-like keymap description file, for a description
see
.Xr keycap 5
and
.Xr keycap 3 .
.It Ar pcvt_keydel
(int) The keyboard repeat delay. Set to
.Bl -tag -width 123 -compact -offset
.It Ar 0
for 250 ms delay
.It Ar 1
for 500 ms delay
.It Ar 2
for 750 ms delay
.It Ar 3
for 1000 ms delay or
.It Ar NO
for the default behaviour. See also
.Xr kcon 1 .
.El
.It Ar pcvt_keyrate
(int) The keyboard repetition rate. It may be set to values from 0 to 31
corresponding to rates of 30 charcters per second to 2 characters per second
or to
.Ar NO
if the default behavior is desired. See also
.Xr kcon 1 .
.It Ar pcvt_keyrepeat
(bool) If set to
.Ar OFF ,
keyboard key repeat will be disabled, setting it to
.Ar ON
will enable keyboard key repeat.
.Ar NO
gives the default behaviour. See also
.Xr kcon 1 .
.It Ar pcvt_force24
(bool) If set to any other value than
.Ar NO
will force a 24 line display in case a 25 lines display is selected. This
will resolve some problems with applications depending on the real VT100/VT220
screen size of 24 lines. See also
.Xr scon 1 .
.It Ar pcvt_hpext
(bool) If this is not set to
.Ar NO ,
the Hewlett-Packard Function Key Label emulation extension will be enabled.
Eight programmable Function Key Labels will be displayed which are
available in the HP239x and HP7009x terminals in VT100/VT220 emulation mode.
See also
.Xr scon 1 .
.It Ar pcvt_lines
(int) Sets the number of lines on display. The available values for VGA
adaptors are
.Ar 25 ,
.Ar 28 ,
.Ar 40
and
.Ar 50 .
Setting this to
.Ar NO
gives 25 lines. See also
.Xr scon 1 .
.It Ar pcvt_blanktime
(int) If set to
.Ar NO
then the default screensave blanking timeout is used, otherwise it is set
to
.Ar value
seconds. See also
.Xr scon 1 .
.It Ar pcvt_cursorh
(int) If not set to
.Ar NO ,
it sets the top scanline on which the cursor starts. Scanlines are numbered
from top (value 0) to bottom (value 16 for 16 scanline fonts on 80x25 display).
See also
.Xr cursor 1 .
.It Ar pcvt_cursorl
(int) If not set to
.Ar NO ,
it sets the bottom scanline on which the cursor ends.
.It Ar pcvt_monohigh
(bool) If not set to
.Ar NO ,
on monochrome VGA displays the intensity is set to high. See also
.Xr scon 1 .
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?m0yqLbn-000020C>
