Add externs to avoid multiple definitions, and then add missing definitions.
[rrq/maintain_lilo.git] / readme / README.nokeyboard
1         Notes for use of LILO on systems with NO keyboard
2                 (Version 22.7.2 and later)
3
4
5 INTRODUCTION
6 ============
7
8 It is possible on some systems to run without a keyboard.   This may be
9 desirable on certain servers, if permitted by the BIOS.  Not all systems
10 will permit this mode of operation.
11
12 Without a keyboard, it may be desirable to alter the default descriptor
13 booted, rather than boot the default descriptor all the time.  That is
14 to say, if no keyboard is present on the system, then a different default
15 descriptor may be selected for booting.
16
17
18 LIMITATIONS
19 ===========
20
21 The keyboard detection code accesses the ports used by the original IBM
22 PC/AT or PC/XT keyboard.  No attempt is made to check for the presence of
23 one of the newer USB keyboards.  The phase "no keyboard", therefore, means
24 "no IBM PC keyboard" throughout this document.
25
26 If anyone has any idea how to detect the presence/absence of a USB keyboard,
27 please contact the LILO maintainer at the e-mail address below.
28
29
30 USAGE
31 =====
32
33 After LILO has been reconfigured, two new keywords are available for use
34 in the configuration file (e.g., /etc/lilo.conf).  The global option:
35
36 nokbdefault = <descriptor>
37
38 specifies the label or alias of the descriptor which is to be booted instead
39 of the "default=<descr>" default, or the first descriptor (no usage of 
40 "default=").
41
42 Additionally, individual descriptors may be marked unavailable for booting
43 if no keyboard is present.  Note that with a serial console present (see
44 "serial=" in the "lilo.conf" man page or user manual) it is possible to 
45 select other boot descriptors.  If this is not desirable, then certain 
46 descriptors may be marked unbootable on an individual basis; viz.,
47
48         ...
49         boot = /dev/hda
50         default = linux
51         nokbdefault = linux-nokbd
52         read-only
53         ...
54         image=/boot/vmlinuz
55                 label=linux             # default descriptor
56                 root=/dev/hda1
57                 initrd=/boot/initrd
58                 append=" ... standard options ..."
59         image=/boot/vmlinuz2
60                 label=linux-nokbd
61                 root=/dev/hda1
62                 initrd=/boot/initrd2
63                 append=" ... no keyboard options, e.g, console=ttS0..."
64         other=/dev/hda2
65                 label=DOS
66                 nokbdisable
67                 table=/dev/hda
68
69 In the example above, "linux", the first descriptor, is the default boot
70 selection (which may be overridden at the system console at boot time).
71 However, if no keyboard is plugged into the system, "linux-nokbd" will
72 be the default descriptor booted.  And further, with no keyboard, "DOS"
73 will not be a boot option.
74
75 Note that if the "nokbdefault=" line is omitted from the above configur-
76 ation file, then when no keyboard is present, the default boot will be
77 "linux", and "DOS" will still not be a boot option.
78
79 With no keyboard and no serial interface in use (see "serial=" in the
80 "lilo.conf" man pages), the "prompt" and "timeout=" options will be
81 ignored, and booting of the "nokbdefault=" (or "default=") image will
82 occur after the appropriate "delay=".  If either the keyboard or serial
83 interface is present, then "prompt" and "timeout=" will be honored
84 as documented.
85
86
87 RECONFIGURING
88 =============
89
90 The "NOKEYBOARD" compilation option and associated keywords "nokbdefault"
91 and "nokbdisable" are new with LILO version 22.7.2 of 25-Nov-2005.
92
93 Since the keyboard detection code accesses the hardware I/O ports directly,
94 this code is not included in the standard LILO distribution.  If the added
95 capability is desired, then LILO must be recompiled with an additional
96 compile-time option:  NOKEYBOARD.
97
98 The options used for compilation are described at the top of the LILO
99 "Makefile", and specified on the line which begins, "CONFIG=..."  To enable
100 the NOKEYBOARD option, simply append:  " -DNOKEYBOARD" to the final line
101 of the "CONFIG=" setting.  Now recompile LILO by executint the shell 
102 commands:
103
104         > make clean            # set up for a clean compile
105         > make all              # recompile all source codes
106         > make install          # install the new boot loader
107
108 At this point you have added support for the configuration file 
109 "nokbdefault=" global option, and the "nokbdisable" local option.  Now
110 edit "/etc/lilo.conf", the default configuration file, and re-install
111 the boot loader by running:
112
113         > lilo -t               # test installation
114         > lilo                  # actual installation
115
116
117 (end)
118 written 11/25/05 -- John Coffman <johninsd@san.rr.com>
119 updated 11/26/05 -- John Coffman