aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06/kbd.xml
blob: adf4d678a6fcad058adf11d2c84942bb0cc46566 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>
<sect1 id="ch-system-kbd" xreflabel="Kbd">
<title>Kbd-&kbd-version;</title>
<?dbhtml filename="kbd.html"?>

<indexterm zone="ch-system-kbd"><primary sortas="a-Kbd">Kbd</primary></indexterm>

<para>The Kbd package contains key-table files and keyboard utilities.</para>

<screen>&buildtime; 0.1 SBU
&diskspace; 12 MB</screen>

<para>Kbd installation depends on: Bash, Binutils, Bison, Coreutils,
Diffutils, Flex, GCC, Gettext, Glibc, Grep, Gzip, M4, Make, Sed.</para>



<sect2>
<title>Installation of Kbd</title>

<para>By default some of Kbd's utilities (<command>setlogcons</command>,
<command>setvesablank</command> and <command>getunimap</command>) are
not installed. First enable the compilation of these utilities:</para>

<screen><userinput>patch -Np1 -i ../kbd-&kbd-version;-more-programs-1.patch</userinput></screen>

<para>Now prepare Kbd for compilation:</para>

<screen><userinput>./configure</userinput></screen>

<para>Compile the package:</para>

<screen><userinput>make</userinput></screen>

<para>Now install it:</para>

<screen><userinput>make install</userinput></screen>

</sect2>

<sect2 id="conf-kbd"><title>Configuring your keyboard</title>
<indexterm zone="conf-kbd">
<primary sortas="a-Kbd">Kbd</primary>
<secondary>configuring</secondary></indexterm>

<para>Few things are more annoying than using Linux while a wrong keymap
for your keyboard is loaded. If you have a standard US keyboard, however, you
can skip this section, as the US keymap is the default as long as you don't
change it.</para>

<para>To change the default keymap, create the
<filename class="symlink">/usr/share/kbd/keymaps/defkeymap.map.gz</filename>
symlink by running the following command:</para>

<screen><userinput>ln -s path/to/keymap /usr/share/kbd/keymaps/defkeymap.map.gz</userinput></screen>

<para>Of course, replace <filename>path/to/keymap</filename> with the path and
name of your keyboard's map file. For example, if you have a Dutch keyboard,
you would use <filename>/usr/share/kbd/keymaps/i386/qwerty/nl.map.gz</filename>.</para>

<para>Another way to set your keyboard's layout is to compile the keymap
into the kernel. This ensures that your keyboard will always work as expected,
even when you boot into maintenance mode (by passing `init=/bin/sh' to the
kernel), as then the bootscript that normally sets up your keymap isn't run.</para>

<para>When in <xref linkend="chapter-bootable"/> you're ready to compile the
kernel, run the following command to patch the current default keymap into the
source (you will have to repeat this command whenever you unpack a new
kernel):</para>

<screen><userinput>loadkeys -m /usr/share/kbd/keymaps/defkeymap.map.gz &gt; \
    <replaceable>[unpacked sources dir]</replaceable>/linux-&linux-version;/drivers/char/defkeymap.c</userinput></screen>

</sect2>


<sect2 id="contents-kbd"><title>Contents of Kbd</title>

<para><emphasis>Installed programs</emphasis>: chvt, deallocvt, dumpkeys,
fgconsole, getkeycodes, getunimap, kbd_mode, kbdrate, loadkeys, loadunimap,
mapscrn, openvt, psfaddtable (link to psfxtable), psfgettable (link to
psfxtable), psfstriptable (link to psfxtable), psfxtable, resizecons,
setfont, setkeycodes, setleds, setlogcons, setmetamode, setvesablank,
showconsolefont, showkey, unicode_start and unicode_stop</para>

</sect2>


<sect2><title>Short descriptions</title>

<indexterm zone="ch-system-kbd chvt"><primary sortas="b-chvt">chvt</primary></indexterm>
<para id="chvt"><command>chvt</command> changes the foreground virtual terminal.</para>

<indexterm zone="ch-system-kbd deallocvt"><primary sortas="b-deallocvt">deallocvt</primary></indexterm>
<para id="deallocvt"><command>deallocvt</command> deallocates unused virtual terminals.</para>

<indexterm zone="ch-system-kbd dumpkeys"><primary sortas="b-dumpkeys">dumpkeys</primary></indexterm>
<para id="dumpkeys"><command>dumpkeys</command> dumps the keyboard translation tables.</para>

<indexterm zone="ch-system-kbd fgconsole"><primary sortas="b-fgconsole">fgconsole</primary></indexterm>
<para id="fgconsole"><command>fgconsole</command> prints the number of the active virtual terminal.</para>

<indexterm zone="ch-system-kbd getkeycodes"><primary sortas="b-getkeycodes">getkeycodes</primary></indexterm>
<para id="getkeycodes"><command>getkeycodes</command> prints the kernel scancode-to-keycode
mapping table.</para>

<indexterm zone="ch-system-kbd getunimap"><primary sortas="b-getunimap">getunimap</primary></indexterm>
<para id="getunimap"><command>getunimap</command> prints the currently used unimap.</para>

<indexterm zone="ch-system-kbd kbd_mode"><primary sortas="b-kbd_mode">kbd_mode</primary></indexterm>
<para id="kbd_mode"><command>kbd_mode</command> reports or sets the keyboard mode.</para>

<indexterm zone="ch-system-kbd kbdrate"><primary sortas="b-kbdrate">kbdrate</primary></indexterm>
<para id="kbdrate"><command>kbdrate</command> sets the keyboard repeat and delay rates.</para>

<indexterm zone="ch-system-kbd loadkeys"><primary sortas="b-loadkeys">loadkeys</primary></indexterm>
<para id="loadkeys"><command>loadkeys</command> loads the keyboard translation tables.</para>

<indexterm zone="ch-system-kbd loadunimap"><primary sortas="b-loadunimap">loadunimap</primary></indexterm>
<para id="loadunimap"><command>loadunimap</command> loads the kernel unicode-to-font mapping table.</para>

<indexterm zone="ch-system-kbd mapscrn"><primary sortas="b-mapscrn">mapscrn</primary></indexterm>
<para id="mapscrn"><command>mapscrn</command> is an obsolete program that used to load
a user-defined output character mapping table into the console driver. This is
now done by setfont.</para>

<indexterm zone="ch-system-kbd openvt"><primary sortas="b-openvt">openvt</primary></indexterm>
<para id="openvt"><command>openvt</command> starts a program on a new virtual terminal (VT).</para>

<indexterm zone="ch-system-kbd psf"><primary sortas="b-psf*">psf*</primary></indexterm>
<para id="psf"><command>psf*</command> are a set of tools for handling Unicode
character tables for console fonts.</para>

<indexterm zone="ch-system-kbd resizecons"><primary sortas="b-resizecons">resizecons</primary></indexterm>
<para id="resizecons"><command>resizecons</command> changes the kernel idea of the console size.</para>

<indexterm zone="ch-system-kbd setfont"><primary sortas="b-setfont">setfont</primary></indexterm>
<para id="setfont"><command>setfont</command> lets you change the EGA/VGA fonts on the console.</para>

<indexterm zone="ch-system-kbd setkeycodes"><primary sortas="b-setkeycodes">setkeycodes</primary></indexterm>
<para id="setkeycodes"><command>setkeycodes</command> loads kernel scancode-to-keycode
mapping table entries, useful if you have some unusual keys on your keyboard.</para>

<indexterm zone="ch-system-kbd setleds"><primary sortas="b-setleds">setleds</primary></indexterm>
<para id="setleds"><command>setleds</command> sets the keyboard flags and LEDs. Many
people find it useful to have "Num Lock" on by default, setleds +num achieves this.</para>

<indexterm zone="ch-system-kbd setlogcons"><primary sortas="b-setlogcons">setlogcons</primary></indexterm>
<para id="setlogcons"><command>setlogcons</command> sends kernel messages to the console.</para>

<indexterm zone="ch-system-kbd setmetamode"><primary sortas="b-setmetamode">setmetamode</primary></indexterm>
<para id="setmetamode"><command>setmetamode</command> defines the keyboard meta-key handling.</para>

<indexterm zone="ch-system-kbd setvesablank"><primary sortas="b-setvesablank">setvesablank</primary></indexterm>
<para id="setvesablank"><command>setvesablank</command> lets you fiddle with the built-in
hardware screensaver (no toasters, just a blank screen).</para>

<indexterm zone="ch-system-kbd showconsolefont"><primary sortas="b-showconsolefont">showconsolefont</primary></indexterm>
<para id="showconsolefont"><command>showconsolefont</command> shows the current EGA/VGA console
screen font.</para>

<indexterm zone="ch-system-kbd showkey"><primary sortas="b-showkey">showkey</primary></indexterm>
<para id="showkey"><command>showkey</command> reports the scancodes and keycodes and
ASCII codes of the keys pressed on the keyboard.</para>

<indexterm zone="ch-system-kbd unicode_start"><primary sortas="b-unicode_start">unicode_start</primary></indexterm>
<para id="unicode_start"><command>unicode_start</command> puts the keyboard and console in
unicode mode.</para>

<indexterm zone="ch-system-kbd unicode_stop"><primary sortas="b-unicode_stop">unicode_stop</primary></indexterm>
<para id="unicode_stop"><command>unicode_stop</command> reverts keyboard and console from
unicode mode.</para>

</sect2>



</sect1>