Uninitialized vector entry?
[minix3.git] / man / man8 / boot.8
blob6512d10a2ab406339bf2849c893814c66cf283a7
1 .TH BOOT 8
2 .SH NAME
3 boot \- from power on to the login prompt
4 .SH DESCRIPTION
5 .de SP
6 .if t .sp 0.4
7 .if n .sp
8 ..
9 At power on the machine reads the first sector of the boot device into memory
10 and executes it.  This bootstrap code loads
11 .BR /boot/boot ,
12 the MINIX 3 Boot Monitor.  The monitor loads the kernel binaries from
13 .BR /boot/image ,
14 or the newest file in
15 .B /boot/image
16 if it is a directory.
17 .PP
18 The MINIX 3 system is now running, the different tasks initialize themselves
19 and control is transferred to the last one,
20 .BR init .
21 .PP
22 .B Init
23 is the grandparent of all MINIX 3 processes, it is responsible for starting
24 login processes on each terminal, but first it runs
25 .BR /etc/rc .
26 .PP
27 .B /etc/rc
28 checks the state of the system and starts daemons.  First it sets the
29 keyboard translation to the mapping in
30 .B /etc/keymap
31 if present, followed by a call to
32 .BR readclock (8)
33 to set MINIX 3 time from the hardware clock.  Next the file systems are checked
34 if necessary and the
35 .B /usr
36 file system is mounted.
37 .PP
38 The system is now ready for multiuser startup,
39 .B /etc/rc
40 calls
41 .B /usr/etc/rc
42 that cleans out /tmp, /usr/tmp, and resets or cycles log files by running
43 .BR /usr/etc/daily ,
44 starts the
45 .BR update (8)
46 and
47 .BR cron (8)
48 daemons, and initializes the network services.
49 .B /etc/rc
50 finally runs
51 .BR /usr/local/etc
52 to initialize the system in a site or host dependent way.
53 .PP
54 .B Init
55 reads
56 .B /etc/ttytab
57 and starts a
58 .BR getty (8)
59 for each enabled terminal line to allow a user to log in.
60 .SH OPTIONS
61 .TP
62 .B bootopts=\-s
63 The value of the boot variable
64 .B bootopts
65 is passed to
66 .BR /etc/rc .
67 If it contains
68 .B \-s
69 then the system will run a single user shell before continuing with multiuser
70 startup.  (Note that one normally uses
71 .B boot \-s
72 instead of setting
73 .BR bootopts .)
74 .TP
75 .B bootopts=\-a
76 This flag tells that
77 .B /etc/fstab
78 must be ignored.  The system asks for a device to use as /usr instead.  This
79 will also be done if the root device is not as mentioned in
80 .BR /etc/fstab .
81 .TP
82 .B bootopts=\-f
83 Force a file system check, even if the system was shut down properly.  (Do
84 this once in a while to be sure about the state of the file systems.)
85 .TP
86 .BI servers= program\fR[,\fIprogram\fR...]
87 Names the special servers that must be started in /usr/etc/rc.  The setting
88 .BR "servers=inet"
89 will start the TCP/IP server.
90 .SH "BOOT ENVIRONMENT"
91 Many features of the drivers inside the kernel are controlled by settings in
92 the boot environmenti, like
93 .B bootopts
94 above does for
95 .BR /etc/rc .
96 The values of these variables are usually colon or comma separated
97 numbers configuring the driver.
98 .B "DPETH0 = 300:10"
99 tells the DP ethernet driver to use I/O address 0x300, interrupt request
100 10, and the default memory address (0xD0000, values may be omitted) for the
101 first ethernet board.  (Note that IRQ 2 is redirected to IRQ 9 on AT's and
102 PS/2's, so use 9 if a device is jumpered for 2.)
104 Variables that are special to both the monitor and the kernel are described
106 .BR monitor (8).
107 This section lists extra variables or variable settings:
109 \fBc\fIn\fR = \fBat\fR | \fBbios\fR | \fBesdi\fR | \fBxt\fR | \fBaha1540\fR | \fBdosfile\fR | \fBfatfile\fR
110 Choose the driver that is to be used as controller
111 .IR n ,
112 in order: IBM/AT (classic AT or newer IDE), BIOS (any disk), ESDI
113 (some PS/2s), IBM/XT, Adaptec 154x, MINIX 3 under DOS "file as disk",
114 FAT file system "file as disk".
115 By default
116 .B at
117 is used on AT bus systems,
118 .B bios
119 on PS/2s and XTs, and
120 .B dosfile
121 when running under DOS.
122 Most drivers are present in the kernel as distributed, but may be taken out
123 by modifying
124 .BR /usr/include/minix/config.h .
126 .BR controller (4).
127 (An XT should always use the BIOS driver, not the XT driver, because BIOS
128 calls are cheap on an XT.  The XT driver can be used on AT machines with an
129 old XT controller.)
131 \fBDPETH\fIn\fR = \fBon\fR | \fBoff\fR
132 Turn an ethernet board on or off.  The driver is by default in "sink" mode
133 for all boards.  The sink mode allows one to use the driver without an
134 ethernet board installed.  The driver will play /dev/null for that device,
135 i.e. nothing comes in, and anything send out is dropped on the floor.  If
136 the board is turned on then the driver will use it to send out packets, if
137 it is turned off then the driver will fail for that board.
139 .if n .ta \w'DPETHn = I/O-addr:irq:mem_addr:mem_size'u+2m
140 .if t .ta \w'\fBDPETH\fIn\fR = \fII/O-addr\fR:\fIirq\fR:\fImem_addr\fR:\fImem_size\fR'u+2m
141 \fBDPETH\fIn\fR = \fII/O-addr\fR:\fIirq\fR:\fImem_addr\fR:\fImem_size\fR        (WD80x3)
143 \fBDPETH\fIn\fR = \fII/O-addr\fR:\fIirq\fR:\fB0\fR      (NE2000)
145 \fBDPETH\fIn\fR = \fII/O-addr\fR:\fIirq\fR:\fIflags\fR  (3c503)
147 Set the I/O address (hex), IRQ (decimal), memory address (hex), memory
148 size (hex), or flags (hex) of the
149 .IR n -th
150 ethernet board and turn it on.  By default they are configured as
151 280:3:D0000 and 300:5:C8000 with the memory size set to 2000, 4000, or 8000
152 depending on the type of board found.
153 For the Western Digital cards the IRQ must be what the board expects,
154 but the memory address is programmed into the board by the driver.
155 The SMC EtherEZ board, a WD8013 successor, has only 8K
156 memory.  This confuses the driver, so you need to explicitly specify the
157 board size as being 2000.
158 The memory address and size have no meaning for the Novell ethernet boards,
159 but the address may be explicitly set to zero to indicate that the board
160 .B is
161 a Novell ethernet board.
162 For the 3Com 3c503 the third parameter are flags, with the low bit indicates
163 that the on-board tranceiver must be used if 0 (thin ethernet), or that an
164 external tranceiver is used on the AUI port if set to 1.
165 The IRQ is software settable, and must be specified as 2 (XT), 3, 4, 5,
166 or 9 (AT).  The memory address is set on the board by jumpers.  The driver
167 does not support I/O mode for the 3c503.
168 (Note the little differences between board types.  For the 8003/8013 and
169 NE1000/NE2000 the IRQ is fixed and the memory address variable, for the
170 3c503 the IRQ is variable and the memory address is fixed, but need not be
171 specified.  Messy.)
174 \fBDPETH\fIn\fB_EA\fR = \fIe0\fR:\fIe1\fR:\fIe2\fR:\fIe3\fR:\fIe4\fR:\fIe5\fR
175 Set the ethernet address of the
176 .IR n -th
177 ethernet board.  The address is normally obtained from the ethernet board,
178 so only in exceptional circumstances is this setting ever needed.  (Use the
179 address of the main server if you want a career change.)
181 \fBAHA0\fR = \fII/O-addr\fR:\fIbus-on\fR:\fIbus-off\fR:\fItr-speed\fR
182 Configure the Adaptec 154xA SCSI host adapter to use the given I/O address
183 (hex), Bus-on time (decimal), Bus-off time (decimal) and transfer speed
184 (hex).  The default is 330:15:1:00.  The default transfer speed is always
185 5.0 Mb/s (code 00) ignoring the jumper settings.
187 \fBaha1540-d\fIn\fR = \fIsleep-time\fR:\fItarget\fR,\fIlun\fR
188 Program SCSI disk
189 .I n
190 to have the given target and logical unit number.  The target and lun
191 of a tape or other SCSI device may be changed by setting the
192 .BI aha1540-d n
193 variable that would be used had it been a disk.  So tape device c0t7 can be
194 set to target 4, lun 1 with aha1540-d7=:4,1.
195 (The
196 .I sleep-time
197 parameter is present but ignored to be compatible with Minix-vmd.)
199 \fBdosfile-d\fIn\fR = \fIfile\fR
200 Tells the DOS virtual disk driver for disk
201 .I n
202 to use a given file as a disk.  The file is a DOS file name that the
203 boot monitor must be able to open.
205 \fBfatfile-d\fIn\fR = \fIdriver:minor:file\fR
206 Tells the FAT virtual disk driver for disk
207 .I n
208 to use a given file as a disk.  The
209 .I driver
210 parameter is the name of driver that handles the disk, and
211 .I minor
212 is the device number of the partition where the file is found.  See
213 .BR controller (4)
214 for names and numbers.
216 .I file
217 argument is the path to the file from the root directory down.  The driver
218 named must also be tied to a controller with a
219 .BI c n
220 variable, so that the FAT file driver can find it.
221 A handy way to find the proper minor number is to run
222 .B "ls\ \-l"
223 on the device where the file is found.  As a example, we assume the most
224 common situation of a disk file on the first partition of the first drive
225 on an ATA (IDE) controller:
227 .in +5
228 .ft B
230 c0 = fatfile
231 c1 = at
232 fatfile-d0 = at:1:/minix/minix.mnx
234 .ft P
235 .in -5
237 .BR TZ " = " GMT0
238 This sets the time zone the hardware clock is running in.
239 .B Readclock
240 uses this to correctly obtain the time of the clock.  The timezone of the
241 system is set in
242 .BR /etc/profile .
243 This boot variable is normally not set, only a few UNIX die-hards who
244 don't care about the time Windows sees and don't want to change the clock
245 twice a year for daylight savings use this option.  (Set Windows time to the
246 time zone of Casablanca to match.)
247 .SH "TCP/IP CONFIGURATION"
248 To use TCP/IP you need to run the
249 .B inet
250 server, and unless you are running standalone you have to enable the
251 ethernet driver.  See the
252 .B servers
254 .BI DPETH n
255 boot variables above.  The driver supports these ethernet cards:  Western
256 Digital 8003, Western Digital 8013, SMC Elite Ultra 16,
257 Novell NE1000 and NE2000, 3Com Etherlink II (3c503).  Many newer
258 variants of the WD8013, now under the SMC brand, may also work.
259 A common PCI reimplementation of the NE2000 using the Realtek 80 chipset is
260 also supported.  Make sure it's just a 10 mbit device and that it has a
261 chip marked "RTL 8029".
263 You are likely to use TCP/IP in one of three situations:
266 Standalone with no connection to a network.
268 In a small network with no support from a "big" host.
270 Connected to a large network with address and name servers.
273 In each situation you need a different set of configuration files.
274 .SS Standalone
275 All you need is a name and an IP address.  Suppose the name is "flotsam"
276 and the IP address is 192.168.0.1 from the private IP space, then this is
277 put in
278 .BR /etc/hosts :
281 .ta +\w'192.168.0.1'u+3n
282 192.168.0.1     flotsam
285 And this in
286 .BR /etc/dhcp.conf :
290 host 192.168.0.0/24 {};
291 interface ip0 flotsam;
294 .SS "Small Network"
295 A network requires an ethernet driver.  You need to enable one in
296 <minix/config.h> and you need to tell
297 .B inet
298 that it should use that driver by making
299 .B /etc/inet.conf
300 look like this:
304 eth0 DP8390 0 { default; };
308 The second word (DP8390) must the name of the ethernet driver you've enabled.
309 It can also be seen among the drivers in the output of
310 .BR "ps ax" .
311 See also
312 .BR inet (8).
314 In a small network there may not be a DHCP server for MINIX 3 to obtain its IP
315 address and name from, so you need specify the ethernet address of your machine
316 and host names of all machines in the hosts and DHCP configuration files.
317 Suppose your machine is to be named "flotsam", and another machine in the
318 network is named "jetsam", and let's use network 192.168.0.0/24 again.  The
319 file
320 .B /etc/hosts
321 now looks like this:
324 .ta +\w'192.168.0.1'u+3n
326 192.168.0.1     flotsam
327 192.168.0.2     jetsam
332 .B /etc/dhcp.conf
333 like this:
337 host 192.168.0.0/24 {};
338 client 0:1:1b:a:68:ce flotsam;
343 .B hostaddr \-e
344 to find out what the ethernet address of your network card is.  (The address
345 above is an example.)
347 A host needs to have all hostnames used on your little network in its
348 host file.  In the DHCP configuration you only need the client entry of the
349 system itself, but it may be useful to add all client entries to make them all
350 the same.
352 If one of the machines is always on when any of the others is, then you can let
353 it be a DHCP server.  The other machines don't need a hosts or DHCP file
354 anymore.  If flotsam is the server then its
355 .BR /etc/dhcp.conf
356 looks like this:
360 .ta +4m
361 host 192.168.0.0/24 {
362         DNSserver flotsam;
364 client 0:1:1b:a:68:ce flotsam { option server; };
365 client 0:0:c0:3a:12:10 jetsam;
368 .SS "Large Network"
369 In a network with a central network administration your machine's IP address
370 and name are given by the DHCP server.  You don't need any configuration
371 files.  If you want your machine to do more, like being a router or
372 something, then see
373 .BR inet (8)
374 on setting up more than one network interface.
376 .SS "Simpler configuration tools"
378 .BR dhcpd
380 .BR nonamed
381 daemons are complex little programs that try to obtain information about
382 their surroundings automatically to tell the machine what its place in the
383 network is.  It should come as no surprise that there are simpler utilities
384 to configure a machine.  On a memory starved machine it may even be wise to
385 configure a machine statically to get rid of the daemons.  The first daemon,
386 .BR dhcpd ,
387 can be replaced by:
390 .B ifconfig \-h
391 .I host-IP-address
392 .B \-n
393 .I netmask
395 .B add_route \-g
396 .I gateway-IP-address
399 to set the IP address and netmask of the machine.  Note that you can only
400 do this if the machine has a static IP address, or chaos will follow.  Remove
401 .BR /usr/adm/dhcp.cache
402 if the DHCP daemon has run before.
404 The name daemon,
405 .BR nonamed ,
406 can be replaced by an entry in
407 .B /etc/resolv.conf
408 that specifies an external name daemon:
411 .B nameserver
412 .I nameserver-IP-address
416 .B ifconfig
418 .B add_route
419 calls can be placed in the file
420 .BR /etc/rc.net .
421 Check
422 .B /usr/etc/rc
423 to see how
424 .BR /etc/rc.net
425 can be used to override running the normal series of network deamons.
426 Note that
427 .BR /etc/rc.net
428 is sourced, so you can use the same variables and functions that
429 .BR /usr/etc/rc
430 uses.
431 These changes undo all the efforts to make MINIX 3 TCP/IP
432 autoconfigurable.  Make very sure that all the IP addresses are correct, and
433 that the IP address of your machine is unique.  (Mistakenly using the
434 address of a main server will make all other machines look at your machine,
435 and will make all the users of all other machines look at you.)
436 .SH FILES
437 .TP 20n
438 /boot
439 MINIX 3 Boot Monitor.
441 /minix
442 Kernel image, or directory containing them.
444 /etc/rc
445 Basic system initialization.
447 /usr/etc/rc
448 Complete system initialization.
450 /etc/rc.net
451 Specialized network initialization.
453 /usr/local/etc/rc
454 Per site initialization.
456 /etc/hosts
457 Name to IP address mapping.
459 /etc/dhcp.conf
460 Network initialization.
462 /etc/resolv.conf
463 Name resolver configuration.
464 .SH "SEE ALSO"
465 .BR monitor (8),
466 .BR init (8),
467 .BR inet (8),
468 .BR loadkeys (8),
469 .BR readclock (8),
470 .BR fsck (1),
471 .BR fstab (5),
472 .BR update (8),
473 .BR cron (8),
474 .BR ttytab (5),
475 .BR getty (8),
476 .BR hostaddr (1),
477 .BR ifconfig (8),
478 .BR dhcpd (8),
479 .BR nonamed (8),
480 .BR tcpd (8),
481 .BR hosts (5),
482 .BR ethers (5),
483 .BR resolv.conf (5),
484 .BR inet (8).
485 .SH DIAGNOSTICS
486 .TP 5n
487 Checking File Systems.
488 If the system has crashed then
489 .B fsck
490 is called for the root and /usr file systems.  It is wise to reboot if the
491 root file system must be fixed.
493 Finish the name of device to mount as /usr: /dev/
494 The prompt for the
495 .B \-a
496 option, or if the name of the /usr file system has not been set in /etc/fstab.
497 You can type a device name, say
498 .BR fd0 .
500 Unable to obtain an IP address after 10 seconds.
501 TCP/IP misconfiguration.  The DHCP daemon may have failed because the ethernet
502 address of the machine is not known to the DHCP server, the DHCP
503 configuration is not filled in properly, or the DHCP server can not be reached.
504 Either talk to your Network Administrator, or make a dhcp.conf
505 and a hosts file.
507 1.2.3.4 login:
508 If you see an IP address instead of a host name then the system failed to
509 translate the IP address.  Either talk to your Network Administrator to
510 have the reverse address translation tables fixed, or make a hosts file.
511 .SH NOTES
512 The 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16 networks can be used for
513 private networks.  (This so-called CIDR notation names an IP address and
514 the number of bits in the network number.  So 172.16.0.0/12 includes all
515 addresses from 172.16.0.0 to 172.31.255.255.)
516 RFC-1597 will tell you why private networks are good, and RFC-1627 why
517 they are bad.
518 .SH BUGS
519 Indefinite hangs are possible if I/O addresses or IRQ's are wrong.  A driver
520 may babble about addresses and IRQ's, but that does not mean that what it
521 says is true, it may just be configured that way.  It is very difficult to
522 find peripherals on a PC automatically, and MINIX 3 doesn't even try.
523 .SH AUTHOR
524 Kees J. Bot <kjb@cs.vu.nl>