|
Packit Service |
50ad14 |
# International console driver fixes for Linux kernel .99pl13
|
|
Packit Service |
50ad14 |
# Eugene G. Crosser <crosser@pccross.msk.su>
|
|
Packit Service |
50ad14 |
|
|
Packit Service |
50ad14 |
This package provide fixes in the kernel (console.c, keydoard.c and vt.c),
|
|
Packit Service |
50ad14 |
setfont and mapscrn utilities, and fixes to the loadkey utility.
|
|
Packit Service |
50ad14 |
setfont loads custom EGA/VGA fonts, mapscrn specifies screen output mapping,
|
|
Packit Service |
50ad14 |
and loadkeys with this fixes provides "AltGr-Lock" state of the keyboard,
|
|
Packit Service |
50ad14 |
and makes possible to specify which characters are alphabetic and therefore
|
|
Packit Service |
50ad14 |
should be affected by the CapsLock.
|
|
Packit Service |
50ad14 |
|
|
Packit Service |
50ad14 |
make all - compile utilities and binary tables
|
|
Packit Service |
50ad14 |
make apply - apply cdiffs to the kernel code & .h files
|
|
Packit Service |
50ad14 |
make install - install utilities in the /etc directory
|
|
Packit Service |
50ad14 |
|
|
Packit Service |
50ad14 |
Utilities make use of ioctl() entries added to the kernel as follows:
|
|
Packit Service |
50ad14 |
|
|
Packit Service |
50ad14 |
"setfont" accepts binary font from the file specified as a paramter.
|
|
Packit Service |
50ad14 |
File size may be 2048, 3584 and 4096 bytes for 8x8, 8x14 and 8x16
|
|
Packit Service |
50ad14 |
fonts respectively.
|
|
Packit Service |
50ad14 |
|
|
Packit Service |
50ad14 |
"mapscrn" accepts a 256 byte translation table from the file specified as a
|
|
Packit Service |
50ad14 |
parameter and passes it to the "user definable" (fourth) mapping table
|
|
Packit Service |
50ad14 |
in the kernel. First 32 bytes of the file (control characters) are always
|
|
Packit Service |
50ad14 |
ignored. All screen output will be translated if a "\033(K" (or "\033)K")
|
|
Packit Service |
50ad14 |
sequence was outputted to select the "user definable" table.
|
|
Packit Service |
50ad14 |
|
|
Packit Service |
50ad14 |
All this witchkraft with the output mapping is nesseccary because of
|
|
Packit Service |
50ad14 |
VGA architecture: it extends the character bitmap from 8 to 9 columns
|
|
Packit Service |
50ad14 |
for some interval of codes on the hardware level. This is appropriate
|
|
Packit Service |
50ad14 |
for certain graphic characters, but inappropriate if you have letters
|
|
Packit Service |
50ad14 |
in that place ot the character table. In the latter case, you can place
|
|
Packit Service |
50ad14 |
character bitmaps on not-extendable positions in the font table, and
|
|
Packit Service |
50ad14 |
use appropriate mapping table. This is done for Cyrillic character set
|
|
Packit Service |
50ad14 |
"koi8-r" (RFC1489).
|
|
Packit Service |
50ad14 |
|
|
Packit Service |
50ad14 |
The fixes in loadkey utility are necessary because of two reasons.
|
|
Packit Service |
50ad14 |
First, non-Latin based character sets (such as Cyrillic) require a
|
|
Packit Service |
50ad14 |
special lock state for the keyboard. Current "shift-locks" implementation
|
|
Packit Service |
50ad14 |
in the keyboard driver is inconvenient, as it does not allow "switchback"
|
|
Packit Service |
50ad14 |
when the "shift" key is pressed while "shift-lock" is active. Second,
|
|
Packit Service |
50ad14 |
with non-ISO-8859 compliant character sets one cannot easily figure out
|
|
Packit Service |
50ad14 |
if a certain character is a "lowercase letter" and should therefore be
|
|
Packit Service |
50ad14 |
affected by CapsLock. A plus sign ('+') in front of the character
|
|
Packit Service |
50ad14 |
definition in the keymapping table is used to identify this character
|
|
Packit Service |
50ad14 |
as "affectable by CapsLock". Loadkeys utility treats lowercase latin
|
|
Packit Service |
50ad14 |
characters ('a'-'z') as affectable in any case. Effect of CapsLock is
|
|
Packit Service |
50ad14 |
to invert the "shift" state (unlike the original driver, where it always
|
|
Packit Service |
50ad14 |
"shifts up").
|
|
Packit Service |
50ad14 |
|
|
Packit Service |
50ad14 |
Note that if you need to make custom screen mapping default, you will
|
|
Packit Service |
50ad14 |
have to output the magic escape sequence ("\033(K" or "\033)K") to every
|
|
Packit Service |
50ad14 |
virtual screen in use. That can be done from /etc/profile.
|