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
|
dnl $OpenBSD: install,v 1.30 2013/05/12 12:15:59 miod Exp $
OpenBSDInstallPrelude
There are several ways to install OpenBSD onto a disk. The easiest way
in terms of preliminary setup is to use the OpenBSD ramdisk kernel that can
be booted from tape.
Alternatively, if the MACHINE is hooked up to a network, it is possible
to set up another machine as a server for diskless setup, which is a
convenient way to install on a machine whose disk does not currently
hold a usable operating system.
This is difficult to get set up correctly the first time, but easy to
use afterwards. (See ``Installing using a diskless setup'' below).
Boot device restrictions:
The BUG firmware will not necessarily be able to boot from any device in
the system.
Depending on the BUG firmware version, the following limitations may apply:
- bootable SCSI tapes must have device ID 4 or 5.
- bootable SCSI disks must have device ID 0, 1, 2 or 3.
- only the first two MVME328 cards in a system (CLUN 6 and 7) can be
used as the boot controller.
Booting from the Installation Media:
Prior to attempting an installation, everything of value on the target
system should be backed up. While installing OpenBSD does not necessarily
wipe out all the partitions on the hard disk, errors during the install
process can have unforeseen consequences and will probably leave the system
unbootable if the installation process is not completed. Availability
of the installation media for the prior installation, such as a Motorola
SystemV/MACHINE tape is always a good insurance, should it be necessary
to "go back" for some reason.
After taking care of all that, the system should be brought down gracefully
using the shutdown(8) and/or halt(8) commands, which will eventually go
back to the ``BUG>'' prompt (it may be necessary to send a break if the
system is completely halted).
Booting from SCSI tape:
Bootable tapes can be booted with the following command at the prompt:
187-Bug> BO xx yy
Where `xx' is the SCSI controller number (00 for the built-in SCSI
controller on MVME187 and MVME197), and `yy' is the encoding for the SCSI
device ID, which varies between controllers.
Recent BUG can list the available disk and tape controllers, using the
"IOT;H" command:
187-Bug>IOT;H
I/O Controllers Available:
CLUN CNTRL-TYPE CNTRL-Address N-Devices
0 VME187 $FFF47000 *
6 VME328 $FFFF9000 *
In this example, the built-in controller, as well as an external MVME328
controller, are available.
The encoding for the drive ID is as follows:
- MVME187 and MVME197 built-in controller and MVME327A SCSI controller:
'yy' is ten times the device ID.
- MVME328 SCSI controller:
'yy' is eight times the device ID, written in hexadecimal
- MVME350 tape controller:
'yy' is always zero, as this controller only supports one tape drive.
For example, booting from a tape drive using SCSI ID #5 will be done with:
187-Bug> BO 00 50
using the MVME187 built-in controller, but with:
187-Bug> BO 06 28
using an MVME328 board.
Note that OpenBSD/MACHINE can boot off any controller supported by the BUG,
even if it is not supported by OpenBSD.
Booting from Network:
OpenBSD/MACHINE can boot off any network card supported by the BUG, even
if the card itself is not supported by OpenBSD. Two network boot loaders
are provided: one for Sun-compatible diskless setup (bootparams and NFS
root), and a simpler version limited to TFTP support.
The Sun-compatible network bootloader currently only supports the MVME187
and MVME197 on-board interface, as well as MVME376 boards. It will not be
able to boot from any other Ethernet controller (such as MVME374). On
systems lacking network support in the BUG, the Sun-compatible network
bootloader may be loaded as S-Records.
The tftp bootloader can only be used with a network boot capable BUG, and
will boot from any BUG-supported Ethernet controller.
If you plan to use the Sun-compatible bootloader, "netboot", it will be
necessary to set up a complete diskless client configuration on a server. If
the boot server is an OpenBSD system, the diskless(8) manual page will
provide detailed information on the process.
If the server runs another operating system, the setup instructions will
likely be available as part of the documentation that came with it (on
SunOS systems, add_client(8) and the Sun System/Networks administrators
guide constitute a good start; on Solaris systems, share(1M) is a good
starting point as well).
Using the TFTP-compatible bootloader, "tftpboot", only requires a TFTP
server to be installed on the network, with both the tftpboot file and
the kernel image (usually bsd.rd) available from it.
The list of BUG-supported Ethernet controllers is available with the
"NIOT;A" command. For example:
187-Bug> NIOT;A
Network Controllers/Nodes Supported
CLUN DLUN Name Address
0 0 VME187 $FFF46000
2 0 VME376 $FFFF1200
3 0 VME376 $FFFF1400
4 0 VME376 $FFFF1600
5 0 VME376 $FFFF5400
6 0 VME376 $FFFF5600
7 0 VME376 $FFFFA400
10 0 VME374 $FF000000
11 0 VME374 $FF100000
12 0 VME374 $FF200000
13 0 VME374 $FF300000
14 0 VME374 $FF400000
15 0 VME374 $FF500000
The "NIOT;H" lists only the available controllers in the machine. For
example, on an MVME187 system with no external network card:
187-Bug> NIOT;H
Network Controllers/Nodes Available
CLUN DLUN Name Address
0 0 VME187 $FFF46000
If the BUG does not support the NIOT command (MVME187 BUG prior to version
1.3 doesn't), then it has no support for netbooting, and you'll have to
use the S-Records bootloader, described later in this document.
If you know the IP address for the MACHINE and the TFTP server,
you can directly provide the boot loader's filename and the kernel name
on the commandline:
187-Bug> NBO 00 00 192.168.0.68 192.168.0.1 netboot.mvme88k bsd.rd
or
187-Bug> NBO 00 00 192.168.0.68 192.168.0.1 tftpboot.mvme88k bsd.rd
where, in this example, 192.168.0.68 is the address of the MACHINE computer,
and 192.168.0.1 the address of the diskless server.
Specifying both IP addresses as 0.0.0.0 will cause them to be obtained
with reverse ARP (for the MACHINE address) and bootp or dhcp (for the
server address):
187-Bug> NBO 00 00 0.0.0.0 0.0.0.0 netboot.mvme88k bsd.rd
or
187-Bug> NBO 00 00 0.0.0.0 0.0.0.0 tftpboot.mvme88k bsd.rd
If you intend to netboot very often, these parameters can be made permanent
by filling the "NIOT" parameters and save them to NVRAM.
Be sure to provide the correct values for Controller LUN and Device LUN (as
listed in the "NIOT;H" output); also the "Boot File Load Address" and
"Boot File Execution Address" need to match (there is no reason to change
the default value of 001F0000). The "Boot File Name" must match the name
of the netboot file on the server (copying it as "netboot.mvme88k" or
"tftpboot.mvme88k" is usually a wise choice). Finally, "Argument File Name"
needs to be set to the kernel name: "bsd.rd" in order to boot the
installation kernel, or "bsd" for the regular kernel.
Here are acceptable values for a 187 card using the built-in controller:
187-Bug> NIOT
Controller LUN =00?
Device LUN =00?
Node Control Memory Address =01FF0000?
Client IP Address =0.0.0.0?
Server IP Address =0.0.0.0?
Subnet IP Address Mask =255.255.255.0?
Broadcast IP Address =255.255.255.255?
Gateway IP Address =0.0.0.0?
Boot File Name ("NULL" for None) =? netboot.mvme88k
Argument File Name ("NULL" for None) =? bsd.rd
Boot File Load Address =001F0000?
Boot File Execution Address =001F0000?
Boot File Execution Delay =00000000?
Boot File Length =00000000?
Boot File Byte Offset =00000000?
BOOTP/RARP Request Retry =00?
TFTP/ARP Request Retry =00?
Trace Character Buffer Address =00000000?
BOOTP/RARP Request Control: Always/When-Needed (A/W)=W?
BOOTP/RARP Reply Update Control: Yes/No (Y/N) =Y?
If you change the NIOT configuration, you will be asked whether you want to
make these changes permanent. Do not answer Y unless you plan to netboot
this board very often; be sure to have the ENV settings use a correct
address for the NIOT parameters block in this case. A valid setting is:
Network Auto Boot Configuration Parameters Pointer (NVRAM) =
00000000? FFFC0080
for example.
Once the NIOT parameters are set, it should be possible to boot the machine
from the server with a shortened NBO command:
187-Bug> NBO 00 00
Booting from S-Records:
If you plan to use the S-Records bootloader, "sboot", it will be
necessary to set up a complete diskless client configuration on a server.
Refer to the short description above for details.
Using a terminal emulator able to read files from the local machine and
send their contents over the serial link, such as cu(1) and tip(1) - both
being available on OpenBSD - the MACHINE workstation should be put in
S-Records receive mode, with the LO command followed by the serial port
where S-Records are to be received (usually 0 for the console port) at the
BUG prompt:
188-Bug> LO 0
Then, then contents of the ``sboot'' file should be sent from the terminal
emulator (using tip(1) or cu(1), this is done by entering ``~$'', and then,
at the ``Local command?'' prompt, ``cat sboot''). This operation will take
a significant time: at the default 9600 bps speed, sending the S-Records
take almost three minutes.
If a prompt does not come back after a few minutes, it is likely that the
S-Records download is hosed. In this case, the MACHINE board should be reset
before a further attempt to download the S-Records is made.
Once the transfer is finished, entering `GO' at the BUG prompt will start
the S-Records boot loader. It will list the available network interfaces
and will prompt for a filename to boot:
188-Bug>GO
Effective address: 00680000
>> OpenBSD/mvme88k sboot [1.1]
Network Controllers/Nodes Supported
Driver CLUN DLUN Name Address Ethernet Address
le0 2 0 VME376 $ffff1200 00:00:77:83:ac:56
le1 3 0 VME376 $ffff1400 00:00:77:83:83:ce
boot:
By default, the first interface listed will be used. To boot off a different
interface, simply prefix the filename with the interface driver name (first
column in the interface display), followed by a colon. For example, to boot
`bsd.rd' from the second interface, one should enter:
boot: le1:bsd.rd
This will cause the usual Sun-compatible netboot processing to use the `le1'
interface:
boot: client IP address: 10.0.1.138
boot: client name: bourbouillou
root addr=10.0.1.1 path=/netboot/bourbouillou/root
3262752+389824 [52+70512+58011]=0x39b394
Start @ 0x10000
Controller Address 0xffff1400
...
Installing using the tape or netboot procedure:
OpenBSDInstallPart2
Boot your machine from the installation media as described above.
It will take a while to load the kernel especially from a slow
network connection, most likely more than a minute. If some action
doesn't eventually happen, or the spinning cursor has stopped and
nothing further has happened, either your boot media is bad, your
diskless setup isn't correct, or you may have a hardware or
configuration problem.
OpenBSDInstallPart3(,"sd0")
OpenBSDInstallPart4
OpenBSDInstallPart5
OpenBSDInstallPart6({:-CD-ROM, tape, NFS, -:})
OpenBSDURLInstall
OpenBSDCDROMInstall
OpenBSDNFSInstall
OpenBSDDISKInstall(,{:-only -:})
OpenBSDTAPEInstall(3)
OpenBSDCommonInstall
OpenBSDInstallWrapup
OpenBSDCongratulations
Net Boot or Diskless Setup Information:
The set up is similar to SunOS diskless setup, but not identical, because
the Sun setup assumes that the bootblocks load a kernel image, which then
uses NFS to access the exported root partition, while the OpenBSD bootblocks
use internal NFS routines to load the kernel image directly from the
exported root partition.
Please understand that no one gets this right the first try, since
there is a lot of setup and all the host daemons must be running and
configured correctly. If you have problems, extract the diskless(8)
manpage, find someone who's been through it before and use the host
syslog and tcpdump(8) to get visibility of what's happening (or not).
Your MACHINE expects to be able to download a second stage bootstrap
program via TFTP after having acquired its IP address through RevARP when
instructed to boot "over the net". It will look for the filename specified
on the NBO commandline, or via the NIOT parameters.
Normally, this file is a symbolic link to an appropriate second-stage
boot program, which should be located in a place where the TFTP daemon
can find it (remember, many TFTP daemons run in a chroot'ed environment).
You can find the boot program in `/usr/mdec/netboot' in the OpenBSD/MACHINE
distribution.
After the boot program has been loaded into memory and given control by
the BUG, it starts locating the machine's remote root directory through
the BOOTPARAM protocol. First a BOOTPARAM WHOAMI request is broadcast
on the local net. The answer to this request (if it comes in) contains
the client's name. This name is used in the next step, a BOOTPARAM GETFILE
request -- sent to the server that responded to the WHOAMI request --
requesting the name and address of the machine that will serve the client's
root directory, as well as the path of the client's root on that server.
Finally, this information (if it comes in) is used to issue a REMOTE MOUNT
request to the client's root filesystem server, asking for an NFS file
handle corresponding to the root filesystem. If successful, the boot
program starts reading from the remote root filesystem in search of the
kernel which is then read into memory.
Unpack `base{:--:}OSrev.tgz' and `etc{:--:}OSrev.tgz' on the server in the root directory
for your target machine. If you elect to use a separately NFS-mounted
filesystem for `/usr' with your diskless setup, make sure the "./usr" base
files in base{:--:}OSrev.tgz end up in the correct location. One way to do this is
to temporarily use a loopback mount on the server, re-routing <root>/usr to
your server's exported OpenBSD "/usr" directory. Also put the kernel and
the install/upgrade scripts into the root directory.
A few configuration files need to be edited:
<root>/etc/hosts
Add the IP addresses of both server and client.
<root>/etc/myname
This files contains the client's hostname; use the same
name as in <root>/etc/hosts.
<root>/etc/fstab
Enter the entries for the remotely mounted filesystems.
For example:
server:/export/root/client / nfs rw 0 0
server:/export/exec/MACHINE.OpenBSD /usr nfs rw 0 0
OpenBSDInstNFS
|