c2965cd185
Reviewed by: brueffer
566 lines
16 KiB
Groff
566 lines
16 KiB
Groff
.\"
|
|
.\" Copyright (c) 1999
|
|
.\" Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
|
|
.\" 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 as
|
|
.\" the first lines of this file unmodified.
|
|
.\" 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 ``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 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$
|
|
.\"
|
|
.Dd September 11, 2009
|
|
.Dt SYSCONS 4
|
|
.Os
|
|
.Sh NAME
|
|
.Nm syscons ,
|
|
.Nm sc
|
|
.Nd the console driver
|
|
.Sh SYNOPSIS
|
|
.Cd "options MAXCONS=N"
|
|
.Cd "options SC_ALT_MOUSE_IMAGE"
|
|
.Cd "options SC_CUT_SEPCHARS=_characters_"
|
|
.Cd "options SC_CUT_SPACES2TABS"
|
|
.Cd "options SC_DISABLE_KDBKEY"
|
|
.Cd "options SC_DISABLE_REBOOT"
|
|
.Cd "options SC_HISTORY_SIZE=N"
|
|
.Cd "options SC_MOUSE_CHAR=C"
|
|
.Cd "options SC_NO_CUTPASTE"
|
|
.Cd "options SC_NO_FONT_LOADING"
|
|
.Cd "options SC_NO_HISTORY"
|
|
.Cd "options SC_NO_PALETTE_LOADING"
|
|
.Cd "options SC_NO_SUSPEND_VTYSWITCH"
|
|
.Cd "options SC_NO_SYSMOUSE"
|
|
.Cd "options SC_PIXEL_MODE"
|
|
.Cd "options SC_TWOBUTTON_MOUSE"
|
|
.Cd "options SC_NORM_ATTR=_attribute_"
|
|
.Cd "options SC_NORM_REV_ATTR=_attribute_"
|
|
.Cd "options SC_KERNEL_CONS_ATTR=_attribute_"
|
|
.Cd "options SC_KERNEL_CONS_REV_ATTR=_attribute_"
|
|
.Cd "options SC_DFLT_FONT"
|
|
.Cd "makeoptions SC_DFLT_FONT=_font_name_"
|
|
.Cd "device sc"
|
|
.Pp
|
|
In
|
|
.Pa /boot/device.hints :
|
|
.Cd hint.sc.0.at="isa"
|
|
.Cd hint.sc.0.vesa_mode=0x103
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
driver provides multiple virtual terminals.
|
|
It resembles the SCO color console driver.
|
|
.Pp
|
|
The
|
|
.Nm
|
|
driver is implemented on top of the keyboard driver
|
|
.Pq Xr atkbd 4
|
|
and the video card driver
|
|
.Pq Xr vga 4
|
|
and so requires both of them to be configured in the system.
|
|
.Pp
|
|
There can be only one
|
|
.Nm
|
|
device defined in the system.
|
|
.Ss Virtual Terminals
|
|
The
|
|
.Nm
|
|
driver provides multiple virtual terminals which appear as if they were
|
|
separate terminals.
|
|
One virtual terminal is considered current and exclusively
|
|
occupies the screen and the keyboard; the other virtual terminals
|
|
are placed in the background.
|
|
.Pp
|
|
In order to use virtual terminals, they must be individually
|
|
marked ``on'' in
|
|
.Pa /etc/ttys
|
|
so that
|
|
.Xr getty 8
|
|
will recognize them to be active and run
|
|
.Xr login 1
|
|
to let the user log in to the system.
|
|
By default, only the first eight virtual terminals are activated in
|
|
.Pa /etc/ttys .
|
|
.Pp
|
|
You press the
|
|
.Dv Alt
|
|
key and a switch key to switch between
|
|
virtual terminals.
|
|
The following table summarizes the correspondence between the switch
|
|
key and the virtual terminal.
|
|
.Bd -literal -offset indent
|
|
Alt-F1 ttyv0 Alt-F7 ttyv6 Shift-Alt-F1 ttyva
|
|
Alt-F2 ttyv1 Alt-F8 ttyv7 Shift-Alt-F2 ttyvb
|
|
Alt-F3 ttyv2 Alt-F9 ttyv8 Shift-Alt-F3 ttyvc
|
|
Alt-F4 ttyv3 Alt-F10 ttyv9 Shift-Alt-F4 ttyvd
|
|
Alt-F5 ttyv4 Alt-F11 ttyva Shift-Alt-F5 ttyve
|
|
Alt-F6 ttyv5 Alt-F12 ttyvb Shift-Alt-F6 ttyvf
|
|
.Ed
|
|
.Pp
|
|
You can also use the ``nscr'' key (usually the
|
|
.Dv PrintScreen
|
|
key on the AT Enhanced keyboard) to cycle available virtual terminals.
|
|
.Pp
|
|
The default number of available virtual terminals is 16.
|
|
This can be changed with the kernel configuration option
|
|
.Dv MAXCONS
|
|
(see below).
|
|
.Pp
|
|
Note that the X server usually requires a virtual terminal for display
|
|
purposes, so at least one terminal must be left unused by
|
|
.Xr getty 8
|
|
so that it can be used by the X server.
|
|
.Ss Key Definitions and Function Key Strings
|
|
The
|
|
.Nm
|
|
driver, in conjunction with the keyboard driver, allows the user
|
|
to change key definitions and function key strings.
|
|
The
|
|
.Xr kbdcontrol 1
|
|
command will load a key definition file (known as ``keymap'' file),
|
|
dump the current keymap, and assign a string to a function key.
|
|
See
|
|
.Xr keyboard 4
|
|
and
|
|
.Xr kbdmap 5
|
|
for the keymap file.
|
|
.Pp
|
|
You may want to set the
|
|
.Ar keymap
|
|
variable in
|
|
.Pa /etc/rc.conf.local
|
|
to the desired keymap file so that it will be automatically loaded
|
|
when the system starts up.
|
|
.Ss Software Font
|
|
For most modern video cards, e.g., VGA, the
|
|
.Nm
|
|
driver and the video card driver allow the user to change
|
|
the font used on the screen.
|
|
The
|
|
.Xr vidcontrol 1
|
|
command can be used to load a font file from
|
|
.Pa /usr/share/syscons/fonts .
|
|
.Pp
|
|
The font comes in various sizes: 8x8, 8x14 and 8x16.
|
|
The 8x16 font is typically used for the VGA card in the
|
|
80-column-by-25-line mode.
|
|
Other video modes may require different font sizes.
|
|
It is better to always load all three sizes of the same font.
|
|
.Pp
|
|
You may set
|
|
.Ar font8x8 ,
|
|
.Ar font8x14
|
|
and
|
|
.Ar font8x16
|
|
variables in
|
|
.Pa /etc/rc.conf
|
|
to the desired font files so that they will be automatically loaded
|
|
when the system starts up.
|
|
.Pp
|
|
Optionally you can specify a particular font file as the default.
|
|
See the
|
|
.Dv SC_DFLT_FONT
|
|
option below.
|
|
.Ss Screen Map
|
|
If your video card does not support software fonts, you may still be able
|
|
to achieve a similar effect by re-mapping the font built into your video card.
|
|
Use
|
|
.Xr vidcontrol 1
|
|
to load a screen map file which defines the mapping between character codes.
|
|
.Ss Mouse Support and Copy-and-Paste
|
|
You can use your mouse to copy text on the screen and paste it as if
|
|
it was typed by hand.
|
|
You must be running the mouse daemon
|
|
.Xr moused 8
|
|
and enable the mouse cursor in the virtual terminal via
|
|
.Xr vidcontrol 1 .
|
|
.Pp
|
|
Pressing mouse button 1 (usually the left button) will start selection.
|
|
Releasing button 1 will end the selection process.
|
|
The selected text will be marked by inverting foreground and
|
|
background colors.
|
|
You can press button 3 (usually the right button) to extend
|
|
the selected region.
|
|
The selected text is placed in the copy buffer and can be pasted
|
|
at the cursor position by pressing button 2 (usually the
|
|
middle button) as many times as you like.
|
|
.Pp
|
|
If your mouse has only two buttons, you may want to use the
|
|
.Dv SC_TWOBUTTON_MOUSE
|
|
option below to make the right button to paste the text.
|
|
Alternatively you can make the mouse daemon
|
|
emulate the middle button.
|
|
See the man page for
|
|
.Xr moused 8
|
|
for more details.
|
|
.Ss Back Scrolling
|
|
The
|
|
.Nm
|
|
driver allows the user to browse the output which has ``scrolled off''
|
|
the top of the screen.
|
|
.Pp
|
|
Press the ``slock'' key (usually
|
|
.Dv ScrllLock
|
|
/
|
|
.Dv Scroll Lock
|
|
or
|
|
.Dv Pause
|
|
on many keyboards) and the terminal is
|
|
in the ``scrollback'' mode.
|
|
It is indicated by the
|
|
.Dv Scroll Lock
|
|
LED.
|
|
Use the arrow keys, the
|
|
.Dv Page Up/Down
|
|
keys and the
|
|
.Dv Home/End
|
|
keys to scroll buffered terminal output.
|
|
Press the ``slock'' key again to get back to the normal terminal mode.
|
|
.Pp
|
|
The size of the scrollback buffer can be set by the
|
|
.Dv SC_HISTORY_SIZE
|
|
option described below.
|
|
.Ss Screen Saver
|
|
The
|
|
.Nm
|
|
driver can be made to put up the screen saver if the current
|
|
virtual terminal is idle, that is, the user is not typing
|
|
on the keyboard nor moving the mouse.
|
|
See
|
|
.Xr splash 4
|
|
and
|
|
.Xr vidcontrol 1
|
|
for more details.
|
|
.Sh DRIVER CONFIGURATION
|
|
.Ss Kernel Configuration Options
|
|
The following kernel configuration options control the
|
|
.Nm
|
|
driver.
|
|
.Bl -tag -width MOUSE
|
|
.It Dv MAXCONS=N
|
|
This option sets the number of virtual terminals to
|
|
.Fa N .
|
|
The default value is 16.
|
|
.It Dv SC_ALT_MOUSE_IMAGE
|
|
This option selects the alternative way of displaying the mouse cursor
|
|
in the virtual terminal.
|
|
It may be expensive for some video cards to draw the arrow-shaped
|
|
cursor, and you may want to try this option.
|
|
However, the appearance of the alternative mouse cursor may not be
|
|
very appealing.
|
|
Note that if you use the
|
|
.Dv SC_NO_FONT_LOADING
|
|
option then you must also use this option if you wish to be able to use
|
|
the mouse.
|
|
.It Dv SC_CUT_SEPCHARS=_characters_
|
|
This options specifies characters that will be looked for when the
|
|
driver searches for words boundaries when doing cut operation.
|
|
By default, its value is
|
|
.Qq Li \ex20
|
|
\(em a space character.
|
|
.It Dv SC_CUT_SPACES2TABS
|
|
This options instructs the driver to convert leading spaces into tabs
|
|
when copying data into cut buffer.
|
|
This might be useful to preserve
|
|
indentation when copying tab-indented text.
|
|
.It Dv SC_DISABLE_KDBKEY
|
|
This option disables the ``debug'' key combination (by default, it is
|
|
.Dv Alt-Esc ,
|
|
or
|
|
.Dv Ctl-PrintScreen ) .
|
|
It will prevent users from
|
|
entering the kernel debugger (KDB) by pressing the key combination.
|
|
KDB will still be invoked when the kernel panics or hits a break point
|
|
if it is included in the kernel.
|
|
If this option is not defined, this behavior may be controlled at runtime
|
|
by the
|
|
.Xr sysctl 8
|
|
variable
|
|
.Va hw.syscons.kbd_debug .
|
|
.It Dv SC_DISABLE_REBOOT
|
|
This option disables the ``reboot'' key (by default, it is
|
|
.Dv Ctl-Alt-Del ) ,
|
|
so that the casual user may not accidentally reboot the system.
|
|
If this option is not defined, this behavior may be controlled at runtime
|
|
by the
|
|
.Xr sysctl 8
|
|
variable
|
|
.Va hw.syscons.kbd_reboot .
|
|
.It Dv SC_HISTORY_SIZE=N
|
|
Sets the size of back scroll buffer to
|
|
.Fa N
|
|
lines.
|
|
The default value is 100.
|
|
.It Dv SC_MOUSE_CHAR=C
|
|
Unless the
|
|
.Dv SC_ALT_MOUSE_IMAGE
|
|
option above is specified, the
|
|
.Nm
|
|
driver reserves four consecutive character codes in order to display the
|
|
mouse cursor in the virtual terminals in some systems.
|
|
This option specifies the first character code to
|
|
.Fa C
|
|
to be used for this purpose.
|
|
The default value is 0xd0.
|
|
A good candidate is 0x03.
|
|
.It Dv SC_PIXEL_MODE
|
|
Adds support for pixel (raster) mode console.
|
|
This mode is useful on some laptop computers, but less so on
|
|
most other systems, and it adds substantial amount of code to syscons.
|
|
If this option is NOT defined, you can reduce the kernel size a lot.
|
|
See the
|
|
.Dv VESAMODE
|
|
flag below.
|
|
.It Dv SC_TWOBUTTON_MOUSE
|
|
If you have a two button mouse, you may want to add this option
|
|
to use the right button of the mouse to paste text.
|
|
See
|
|
.Sx Mouse Support and Copy-and-Paste
|
|
above.
|
|
.It Dv SC_NORM_ATTR=_attribute_
|
|
.It Dv SC_NORM_REV_ATTR=_attribute_
|
|
.It Dv SC_KERNEL_CONS_ATTR=_attribute_
|
|
.It Dv SC_KERNEL_CONS_REV_ATTR=_attribute_
|
|
These options will set the default colors.
|
|
Available colors are defined in
|
|
.In machine/pc/display.h .
|
|
See
|
|
.Sx EXAMPLES
|
|
below.
|
|
.It Dv SC_DFLT_FONT
|
|
This option will specify the default font.
|
|
Available fonts are: iso, iso2, koi8-r, koi8-u, cp437, cp850, cp865,
|
|
cp866 and cp866u.
|
|
16-line, 14-line and 8-line font data will be compiled in.
|
|
Without this option, the
|
|
.Nm
|
|
driver will use whatever font is already loaded in the video card,
|
|
unless you explicitly load a software font at startup.
|
|
See
|
|
.Sx EXAMPLES
|
|
below.
|
|
.It Dv SC_NO_SUSPEND_VTYSWITCH
|
|
This option, which is also available as
|
|
.Xr loader 8
|
|
tunable and
|
|
.Xr sysctl 8
|
|
variable
|
|
.Va hw.syscons.sc_no_suspend_vtswitch ,
|
|
disables switching between virtual terminals (graphics <-> text) during
|
|
suspend/resume (ACPI and APM).
|
|
Use this option if your system is freezing
|
|
when you are running X and trying to suspend.
|
|
.El
|
|
.Pp
|
|
The following options will remove some features from the
|
|
.Nm
|
|
driver and save kernel memory.
|
|
.Bl -tag -width MOUSE
|
|
.It Dv SC_NO_CUTPASTE
|
|
This option disables ``copy and paste'' operation in virtual
|
|
terminals.
|
|
.It Dv SC_NO_FONT_LOADING
|
|
The
|
|
.Nm
|
|
driver can load software fonts on some video cards.
|
|
This option removes this feature.
|
|
Note that if you still wish to use
|
|
the mouse with this option then you must also use the
|
|
.Dv SC_ALT_MOUSE_IMAGE
|
|
option.
|
|
.It Dv SC_NO_HISTORY
|
|
This option disables back-scrolling in virtual terminals.
|
|
.\".It Dv SC_NO_PALETTE_LOADING
|
|
.It Dv SC_NO_SYSMOUSE
|
|
This option removes mouse support in the
|
|
.Nm
|
|
driver.
|
|
The mouse daemon
|
|
.Xr moused 8
|
|
will fail if this option is defined.
|
|
This option implies the
|
|
.Dv SC_NO_CUTPASTE
|
|
option too.
|
|
.El
|
|
.Ss Driver Flags
|
|
The following driver flags can be used to control the
|
|
.Nm
|
|
driver.
|
|
They can be set either in
|
|
.Pa /boot/device.hints ,
|
|
or else at the loader prompt (see
|
|
.Xr loader 8 ) .
|
|
.Bl -tag -width bit_0
|
|
.\".It bit 0 (VISUAL_BELL)
|
|
.\"Uses the ``visual'' bell.
|
|
.\"The screen will blink instead of generating audible sound.
|
|
.\".It bit 1,2 (CURSOR_TYPE)
|
|
.\"This option specifies the cursor appearance.
|
|
.\"Possible values are:
|
|
.\".Bl -tag -width TYPE -compact
|
|
.\".It Dv 0
|
|
.\"normal block cursor
|
|
.\".It Dv 2
|
|
.\"blinking block cursor
|
|
.\".It Dv 4
|
|
.\"underline cursor
|
|
.\".It Dv 6
|
|
.\"blinking underline (aka destructive) cursor
|
|
.\".El
|
|
.\".It bit 6 (QUIET_BELL)
|
|
.\"This option suppresses the bell, whether audible or visual,
|
|
.\"if it is rung in a background virtual terminal.
|
|
.It 0x0080 (VESAMODE)
|
|
This option puts the video card in the VESA mode specified by
|
|
.Pa /boot/device.hints
|
|
variable
|
|
.Va vesa_mode
|
|
during kernel initialization.
|
|
Note that in order for this flag to work, the kernel must be
|
|
compiled with the
|
|
.Dv SC_PIXEL_MODE
|
|
option explained above.
|
|
A list of the available mode can be obtained via
|
|
.Xr vidcontrol 1 .
|
|
.\"Note also that the ``copy-and-paste'' function is not currently supported
|
|
.\"in this mode and the mouse pointer will not be displayed.
|
|
.It 0x0100 (AUTODETECT_KBD)
|
|
This option instructs the syscons driver to periodically scan
|
|
for a keyboard device if it is not currently attached to one.
|
|
Otherwise, the driver only probes for a keyboard once during bootup.
|
|
.El
|
|
.Sh FILES
|
|
.Bl -tag -width /usr/share/syscons/xxxxyyyyzzz -compact
|
|
.It Pa /dev/console
|
|
.It Pa /dev/consolectl
|
|
.It Pa /dev/ttyv?
|
|
virtual terminals
|
|
.It Pa /etc/ttys
|
|
terminal initialization information
|
|
.It Pa /usr/share/syscons/fonts/*
|
|
font files
|
|
.It Pa /usr/share/syscons/keymaps/*
|
|
key map files
|
|
.It Pa /usr/share/syscons/scrmaps/*
|
|
screen map files
|
|
.El
|
|
.Sh EXAMPLES
|
|
As the
|
|
.Nm
|
|
driver requires the keyboard driver and the video card driver,
|
|
the kernel configuration file should contain the following lines.
|
|
.Bd -literal -offset indent
|
|
device atkbdc
|
|
device atkbd
|
|
device vga
|
|
device sc
|
|
|
|
device splash
|
|
.Ed
|
|
You also need the following lines in
|
|
.Pa /boot/device.hints
|
|
for these drivers.
|
|
.Bd -literal -offset indent
|
|
hint.atkbdc.0.at="isa"
|
|
hint.atkbdc.0.port="0x060"
|
|
hint.atkbd.0.at="atkbdc"
|
|
hint.atkbd.0.irq="1"
|
|
hint.vga.0.at="isa"
|
|
hint.sc.0.at="isa"
|
|
.Ed
|
|
.Pp
|
|
If you do not intend to load the splash image or use the screen saver,
|
|
the last line is not necessary, and can be omitted.
|
|
.Pp
|
|
Note that the keyboard controller driver
|
|
.Nm atkbdc
|
|
is required by the keyboard driver
|
|
.Nm atkbd .
|
|
.Pp
|
|
The following lines will set the default colors.
|
|
The normal text will be green on black background.
|
|
The reversed text will be yellow on green background.
|
|
Note that you cannot put any white space inside the quoted string,
|
|
because of the current implementation of
|
|
.Xr config 8 .
|
|
.Pp
|
|
.Dl "options SC_NORM_ATTR=(FG_GREEN|BG_BLACK)"
|
|
.Dl "options SC_NORM_REV_ATTR=(FG_YELLOW|BG_GREEN)"
|
|
.Pp
|
|
The following lines will set the default colors of the kernel message.
|
|
The kernel message will be printed bright red on black background.
|
|
The reversed message will be black on red background.
|
|
.Pp
|
|
.Dl "options SC_KERNEL_CONS_ATTR=(FG_LIGHTRED|BG_BLACK)"
|
|
.Dl "options SC_KERNEL_CONS_REV_ATTR=(FG_BLACK|BG_RED)"
|
|
.Pp
|
|
The following example adds the font files
|
|
.Pa cp850-8x16.fnt ,
|
|
.Pa cp850-8x14.font
|
|
and
|
|
.Pa cp850-8x8.font
|
|
to the kernel.
|
|
.Pp
|
|
.Dl "options SC_DFLT_FONT"
|
|
.Dl "makeoptions SC_DFLT_FONT=cp850"
|
|
.Dl "device sc"
|
|
.\".Sh DIAGNOSTICS
|
|
.Sh SEE ALSO
|
|
.Xr kbdcontrol 1 ,
|
|
.Xr login 1 ,
|
|
.Xr vidcontrol 1 ,
|
|
.Xr atkbd 4 ,
|
|
.Xr atkbdc 4 ,
|
|
.Xr keyboard 4 ,
|
|
.Xr screen 4 ,
|
|
.Xr splash 4 ,
|
|
.Xr ukbd 4 ,
|
|
.Xr vga 4 ,
|
|
.Xr kbdmap 5 ,
|
|
.Xr rc.conf 5 ,
|
|
.Xr ttys 5 ,
|
|
.Xr config 8 ,
|
|
.Xr getty 8 ,
|
|
.Xr kldload 8 ,
|
|
.Xr moused 8
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
driver first appeared in
|
|
.Fx 1.0 .
|
|
.Sh AUTHORS
|
|
.An -nosplit
|
|
The
|
|
.Nm
|
|
driver was written by
|
|
.An S\(/oren Schmidt Aq sos@FreeBSD.org .
|
|
This manual page was written by
|
|
.An Kazutaka Yokota Aq yokota@FreeBSD.org .
|
|
.Sh CAVEATS
|
|
The amount of data that is possible to insert from the cut buffer is limited
|
|
by the
|
|
.Brq Dv MAX_INPUT ,
|
|
a system limit on the number of bytes that may be stored in the terminal
|
|
input queue - usually 1024 bytes
|
|
(see
|
|
.Xr termios 4 ) .
|
|
.Sh BUGS
|
|
This manual page is incomplete and urgently needs revision.
|