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