1 |
<html><head><title>Gavare's eXperimental Emulator: Installing and running "guest OSes"</title> |
2 |
<meta name="robots" content="noarchive,nofollow,noindex"></head> |
3 |
<body bgcolor="#f8f8f8" text="#000000" link="#4040f0" vlink="#404040" alink="#ff0000"> |
4 |
<table border=0 width=100% bgcolor="#d0d0d0"><tr> |
5 |
<td width=100% align=center valign=center><table border=0 width=100%><tr> |
6 |
<td align="left" valign=center bgcolor="#d0efff"><font color="#6060e0" size="6"> |
7 |
<b>Gavare's eXperimental Emulator:</b></font><br> |
8 |
<font color="#000000" size="6"><b>Installing and running "guest OSes"</b> |
9 |
</font></td></tr></table></td></tr></table><p> |
10 |
|
11 |
<!-- |
12 |
|
13 |
$Id: guestoses.html,v 1.124 2006/02/18 21:03:10 debug Exp $ |
14 |
|
15 |
Copyright (C) 2003-2006 Anders Gavare. All rights reserved. |
16 |
|
17 |
Redistribution and use in source and binary forms, with or without |
18 |
modification, are permitted provided that the following conditions are met: |
19 |
|
20 |
1. Redistributions of source code must retain the above copyright |
21 |
notice, this list of conditions and the following disclaimer. |
22 |
2. Redistributions in binary form must reproduce the above copyright |
23 |
notice, this list of conditions and the following disclaimer in the |
24 |
documentation and/or other materials provided with the distribution. |
25 |
3. The name of the author may not be used to endorse or promote products |
26 |
derived from this software without specific prior written permission. |
27 |
|
28 |
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND |
29 |
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
30 |
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
31 |
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |
32 |
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
33 |
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
34 |
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
35 |
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
36 |
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
37 |
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
38 |
SUCH DAMAGE. |
39 |
|
40 |
--> |
41 |
|
42 |
|
43 |
<a href="./">Back to the index</a> |
44 |
|
45 |
<p><br> |
46 |
<h2>Installing and running "guest OSes"</h2> |
47 |
|
48 |
<p> |
49 |
<ul> |
50 |
<li><a href="#generalnotes">General notes on running "guest OSes"</a> |
51 |
<li><a href="#netbsdpmaxinstall">NetBSD/pmax</a> |
52 |
<li><a href="#netbsdarcinstall">NetBSD/arc</a> |
53 |
<li><a href="#netbsdhpcmipsinstall">NetBSD/hpcmips</a> |
54 |
<li><a href="#netbsdcobaltinstall">NetBSD/cobalt</a> |
55 |
<li><a href="#netbsdevbmipsinstall">NetBSD/evbmips</a> |
56 |
<li><a href="#netbsdsgimips">NetBSD/sgimips</a> |
57 |
<li><a href="#netbsdcatsinstall">NetBSD/cats</a> |
58 |
<li><a href="#netbsdevbarminstall">NetBSD/evbarm</a> |
59 |
<li><a href="#netbsdprepinstall">NetBSD/prep</a> |
60 |
<li><a href="#openbsdpmaxinstall">OpenBSD/pmax</a> |
61 |
<li><a href="#openbsdcatsinstall">OpenBSD/cats</a> |
62 |
<li><a href="#ultrixinstall">Ultrix/RISC</a> |
63 |
<li><a href="#sprite">Sprite for DECstation</a> |
64 |
<li><a href="#declinux">Debian GNU/Linux for DECstation</a> |
65 |
<li><a href="#declinuxredhat">Redhat Linux for DECstation</a> |
66 |
</ul> |
67 |
|
68 |
<p>In addition to the "working" guest operating systems listed above, |
69 |
you might find the following information interesting: |
70 |
<ul> |
71 |
<li><a href="#mach">Mach/PMAX</a> |
72 |
<li><a href="#openbsdsgiinstall">OpenBSD/sgi</a> |
73 |
<li><a href="#openbsdarcinstall">OpenBSD/arc</a> |
74 |
<li><a href="#debiancats">Debian GNU/Linux for CATS</a> |
75 |
<li><a href="#netbsdnetwinderinstall">NetBSD/netwinder</a> |
76 |
</ul> |
77 |
|
78 |
|
79 |
|
80 |
|
81 |
|
82 |
|
83 |
<p><br> |
84 |
<a name="generalnotes"></a> |
85 |
<h3>General notes on running "guest OSes":</h3> |
86 |
|
87 |
The emulator works well enough to run complete operating systems. These |
88 |
are often refered to as "guest" operating systems. |
89 |
|
90 |
<p> |
91 |
Although it is possible to let a guest OS access real hardware, such as |
92 |
harddisks, it is much more flexible and attractive to simulate harddisks |
93 |
using files residing in the host's filesystem. On Unix-like systems, files |
94 |
may contain holes, which makes this really simple. To the guest operating |
95 |
system, the harddisk image looks and acts like a real disk. |
96 |
|
97 |
|
98 |
|
99 |
|
100 |
|
101 |
|
102 |
|
103 |
|
104 |
<p><br> |
105 |
<a name="netbsdpmaxinstall"></a> |
106 |
<h3>NetBSD/pmax:</h3> |
107 |
|
108 |
<p> |
109 |
|
110 |
<a href="20050317-example.png"><img src="20050317-example_small.png"></a> |
111 |
|
112 |
<p>To install <a href="http://www.netbsd.org/Ports/pmax/">NetBSD/pmax</a> |
113 |
onto a harddisk image in the emulator, follow these instructions: |
114 |
|
115 |
<p><ol start="1"> |
116 |
<li>Create an empty harddisk image, which will be the root disk |
117 |
that NetBSD installs itself onto:<pre> |
118 |
<b>dd if=/dev/zero of=nbsd_pmax.img bs=1 count=512 seek=1900000000</b> |
119 |
|
120 |
</pre> |
121 |
</ol> |
122 |
|
123 |
<p> |
124 |
From this point, there are two separate ways to continue the installation. |
125 |
You can either download a CD-ROM iso image (and let the installation |
126 |
program copy files from the CD-ROM image to the harddisk image), or you |
127 |
can install via ftp. For an installation from a CD-ROM image, follow these |
128 |
steps: |
129 |
<p> |
130 |
<ol start="2"> |
131 |
|
132 |
<li>Download a NetBSD CD-ROM iso image:<pre> |
133 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/1.6.2/pmaxcd.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/1.6.2/pmaxcd.iso</a> |
134 |
or |
135 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/3.0/pmaxcd-3.0.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/3.0/pmaxcd-3.0.iso</a> |
136 |
|
137 |
</pre> |
138 |
<li>Start the emulator like this:<pre> |
139 |
<b>gxemul -e 3max -A -d nbsd_pmax.img -d bc:pmaxcd-3.0.iso</b> |
140 |
(or <b>pmaxcd.iso</b>) |
141 |
</pre> |
142 |
and proceed like you would do if you were installing NetBSD on a real |
143 |
DECstation. Remember to choose <tt>vt100</tt> as your terminal |
144 |
type, and not <tt>rcons</tt>. |
145 |
</ol> |
146 |
<p> |
147 |
For an ftp install, substitute steps 2 and 3 above with these: |
148 |
<p> |
149 |
<ol start="2"> |
150 |
|
151 |
<li>Download a NetBSD pmax INSTALL kernel:<pre> |
152 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/pmax/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/pmax/binary/kernel/netbsd-INSTALL.gz</a> |
153 |
or |
154 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.0/pmax/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.0/pmax/binary/kernel/netbsd-INSTALL.gz</a> |
155 |
|
156 |
</pre> |
157 |
<li>Start the emulator like this:<pre> |
158 |
<b>gxemul -e 3max -A -d nbsd_pmax.img -O netbsd-INSTALL.gz</b> |
159 |
</pre> |
160 |
and proceed like you would do if you were installing NetBSD on a real |
161 |
DECstation. Remember to choose <tt>vt100</tt> as your terminal |
162 |
type, and not <tt>rcons</tt>. Suitable networking parameters are as |
163 |
follows:<pre> |
164 |
Which device shall I use? [le0]: <b>le0</b> |
165 |
.. |
166 |
Your DNS domain: <b>mydomain.com</b> |
167 |
Your host name: <b>foo</b> |
168 |
Your IPv4 number: <b>10.0.0.1</b> |
169 |
IPv4 Netmask [0xff000000]: <b>0xff000000</b> |
170 |
IPv4 gateway: <b>10.0.0.254</b> |
171 |
IPv4 name server: <b>10.0.0.254</b> |
172 |
</pre> |
173 |
(If using 10.0.0.254 as the nameserver fails, then try entering the |
174 |
IP number of a real-world nameserver instead.) |
175 |
</ol> |
176 |
|
177 |
<p>If you want to use a graphical framebuffer during the install, you can |
178 |
add <b><tt>-X -Y2</tt></b> to the command line, and choose <tt>rcons</tt> |
179 |
instead of <tt>vt100</tt> when prompted with which terminal type to use. |
180 |
(By just using <tt><b>-X</b></tt>, you will get a full-size framebuffer |
181 |
window.) |
182 |
|
183 |
<p>When the installation is finished, the following command should start |
184 |
NetBSD from the harddisk image:<pre> |
185 |
<b>gxemul -e 3max -d nbsd_pmax.img</b> |
186 |
</pre> |
187 |
|
188 |
<p><font color="#ff0000">NOTE:</font> For some reason, NetBSD 2.x and 3.x |
189 |
do not work with X out-of-the-box on pmax. It seems that this has to do |
190 |
with NetBSD switching console system to "WSCONS" somewhere between 1.6.2 |
191 |
and 2.0. For now, if you want X, then try NetBSD 1.6.2. |
192 |
|
193 |
<p>With NetBSD/pmax 1.6.2, try the following to start with a framebuffer:<pre> |
194 |
<b>gxemul -X -e 3max -d nbsd_pmax.img</b> |
195 |
</pre> |
196 |
and log in as <tt>root</tt> and type <tt>startx</tt> to start X windows. |
197 |
|
198 |
|
199 |
|
200 |
|
201 |
|
202 |
|
203 |
|
204 |
|
205 |
<p><br> |
206 |
<a name="netbsdarcinstall"></a> |
207 |
<h3>NetBSD/arc:</h3> |
208 |
|
209 |
It is possible to install and run <a |
210 |
href="http://www.netbsd.org/Ports/arc/">NetBSD/arc</a> |
211 |
on an emulated Acer PICA-61 in the emulator. |
212 |
|
213 |
<p> |
214 |
|
215 |
<a href="20041024-netbsd-arc-installed.gif"><img src="20041024-netbsd-arc-installed_small.gif"></a> |
216 |
|
217 |
<p> |
218 |
To install NetBSD/arc from a CDROM image onto an emulated harddisk image, |
219 |
follow these instructions: |
220 |
|
221 |
<p> |
222 |
<ol start="1"> |
223 |
<li>Create an empty harddisk image, which will be the root disk |
224 |
that NetBSD installs itself onto:<pre> |
225 |
<b>dd if=/dev/zero of=nbsd_arc.img bs=1024 count=1 seek=900000</b> |
226 |
|
227 |
</pre> |
228 |
<li>Download a NetBSD/arc 1.6.2 CDROM image, and a generic NetBSD/arc |
229 |
kernel:<pre> |
230 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/1.6.2/arccd.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/1.6.2/arccd.iso</a> |
231 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/arc/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/arc/binary/kernel/netbsd-GENERIC.gz</a> |
232 |
|
233 |
</pre> |
234 |
<li>Start the emulator using this command line:<pre> |
235 |
<b>gxemul -e pica -x -d nbsd_arc.img -d bc:arccd.iso \ |
236 |
-j arc/binary/kernel/netbsd.RAMDISK.gz</b> |
237 |
|
238 |
</pre> |
239 |
(Try removing <tt>-x</tt> if you have problems with the xterm.) |
240 |
<p> |
241 |
<li>From now on, you have to use your imagination, as there is no |
242 |
automatic installation program for NetBSD/arc. Here are some tips |
243 |
and hints on how you can proceed with the install: |
244 |
<p><table border="0"><tr><td><tt> </tt></td><td><pre> |
245 |
<b>mount /dev/cd0a /mnt2 |
246 |
disklabel -i -I sd0</b> (for example 'a', '4.2BSD', '1c', |
247 |
'700M', 'b', 'swap', '701M', '$', 'P', 'W', 'y', and 'Q') |
248 |
<b>newfs /dev/sd0a |
249 |
mount /dev/sd0a /mnt |
250 |
cd /mnt |
251 |
for a in /mnt2/arc/binary/sets/*.tgz; do echo $a; tar xzpf $a; done |
252 |
cd dev; sh MAKEDEV all |
253 |
cd ../etc; echo "rc_configured=YES" >> rc.conf |
254 |
cat > /mnt/etc/fstab |
255 |
/dev/sd0a / ffs rw 1 1 |
256 |
/dev/sd0b none swap sw 0 0 |
257 |
</b>(press ctrl-d)<b> |
258 |
<b>cd /; umount /mnt; umount /mnt2 |
259 |
halt</b> |
260 |
</pre></td></tr></table> |
261 |
</ol> |
262 |
|
263 |
<p>You can now use the generic NetBSD/arc kernel to boot from the harddisk |
264 |
image, using the following command:<pre> |
265 |
<b>gxemul -e pica -x -d nbsd_arc.img netbsd-GENERIC.gz</b> |
266 |
|
267 |
</pre> |
268 |
|
269 |
<p>When asked for "<tt>root device: </tt>", enter <b><tt>sd0</tt></b>. |
270 |
|
271 |
|
272 |
|
273 |
|
274 |
|
275 |
|
276 |
|
277 |
<p><br> |
278 |
<a name="netbsdhpcmipsinstall"></a> |
279 |
<h3>NetBSD/hpcmips:</h3> |
280 |
|
281 |
It is possible to install <a |
282 |
href="http://www.netbsd.org/Ports/hpcmips/">NetBSD/hpcmips</a> onto a disk |
283 |
image, on an an emulated MobilePro 770, 780, 800, or 880. The emulator |
284 |
treats the different machine models as being almost identical; the most |
285 |
important difference is regarding the framebuffer. |
286 |
|
287 |
<p><table border="0"> |
288 |
<tr> |
289 |
<td width="80"> </td> |
290 |
<td><u>Model:</u></td> |
291 |
<td> </td> |
292 |
<td><u>Framebuffer size/depth:</u></td> |
293 |
<td> </td> |
294 |
<td><u>Framebuffer address:</u></td> |
295 |
</tr> |
296 |
<tr> |
297 |
<td></td> |
298 |
<td>MobilePro 770 (<super>*2</super>)</td> |
299 |
<td></td> |
300 |
<td>640 x 240, 16 bits</td> |
301 |
<td></td> |
302 |
<td>0xa000000</td> |
303 |
</tr> |
304 |
<tr> |
305 |
<td></td> |
306 |
<td>MobilePro 780</td> |
307 |
<td></td> |
308 |
<td>640 x 240, 16 bits</td> |
309 |
<td></td> |
310 |
<td>0xa180100 (<super>*</super>)</td> |
311 |
</tr> |
312 |
<tr> |
313 |
<td></td> |
314 |
<td>MobilePro 800</td> |
315 |
<td></td> |
316 |
<td>800 x 600, 16 bits</td> |
317 |
<td></td> |
318 |
<td>0xa000000</td> |
319 |
</tr> |
320 |
<tr> |
321 |
<td></td> |
322 |
<td>MobilePro 880</td> |
323 |
<td></td> |
324 |
<td>800 x 600, 16 bits</td> |
325 |
<td></td> |
326 |
<td>0xa0ea600 (<super>*</super>)</td> |
327 |
</tr> |
328 |
</table> |
329 |
|
330 |
<p> |
331 |
(<super>*</super>) = not aligned at a 4 KB boundary, so it will not work |
332 |
efficiently with the current bintrans system. Using this mode will still |
333 |
work, but each load and store will be emulated much more slowly than is |
334 |
possible with an aligned framebuffer. |
335 |
|
336 |
<p> |
337 |
(<super>*2</super>) = The MobilePro 770's cursor keys work differently |
338 |
than the other models, for some reason. (This is a known bug.) |
339 |
|
340 |
<p> |
341 |
|
342 |
<a href="20050427-netbsd-hpcmips-1.png"><img src="20050427-netbsd-hpcmips-1_small.png"></a> |
343 |
|
344 |
<a href="20050427-netbsd-hpcmips-2.png"><img src="20050427-netbsd-hpcmips-2_small.png"></a> |
345 |
|
346 |
<p> |
347 |
These instructions show an example of how to install |
348 |
NetBSD/hpcmips on an emulated MobilePro 770: |
349 |
|
350 |
<p> |
351 |
<ol start="1"> |
352 |
<li>Create an empty harddisk image, which will be the root disk |
353 |
that you will install NetBSD/hpcmips onto:<pre> |
354 |
<b>dd if=/dev/zero of=nbsd_hpcmips.img bs=1024 count=1 seek=1990000</b> |
355 |
|
356 |
</pre> |
357 |
<li>Download the NetBSD/hpcmips 3.0 ISO image, and a generic kernel:<pre> |
358 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/3.0/">ftp://ftp.netbsd.org/pub/NetBSD/iso/3.0</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/3.0/hpcmipscd-3.0.iso">hpcmipscd-3.0.iso</a> |
359 |
|
360 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.0/hpcmips/binary/kernel/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.0/hpcmips/binary/kernel</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.0/hpcmips/binary/kernel/netbsd-GENERIC.gz">netbsd-GENERIC.gz</a> |
361 |
|
362 |
</pre> |
363 |
<p> |
364 |
<li>Start the installation like this:<pre> |
365 |
<b>gxemul -e mobilepro770 -X -A -d nbsd_hpcmips.img \ |
366 |
-d b:hpcmipscd-3.0.iso -j hpcmips/installation/netbsd.gz</b> |
367 |
|
368 |
</pre> |
369 |
and proceed like you would do if you were installing NetBSD on a real |
370 |
MobilePro 770. (Install onto wd0, choose "Use entire disk" when |
371 |
doing the MBR partitioning, and choose to install from CD-ROM.) |
372 |
</ol> |
373 |
|
374 |
<p> |
375 |
If everything worked, NetBSD should now be installed on the disk image. |
376 |
Use the following command line to boot the emulated hpcmips machine:<pre> |
377 |
<b>gxemul -e mobilepro770 -X -d nbsd_hpcmips.img netbsd-GENERIC.gz</b> |
378 |
|
379 |
</pre> |
380 |
|
381 |
<p>If you change your mind at this point regarding which machine type to |
382 |
emulate, you might for example prefer a MobilePro 800, then you can change |
383 |
that at any time. NetBSD/hpcmips is designed to be able to boot on many |
384 |
types, without any need to change the kernel. |
385 |
|
386 |
<p>When you have logged in as <tt>root</tt>, you can use <tt>startx</tt> to |
387 |
start X Windows, but there is no mouse support yet so only keyboard input |
388 |
is available. This makes it a bit akward to use X. |
389 |
|
390 |
|
391 |
|
392 |
|
393 |
|
394 |
|
395 |
|
396 |
|
397 |
<p><br> |
398 |
<a name="netbsdcobaltinstall"></a> |
399 |
<h3>NetBSD/cobalt:</h3> |
400 |
|
401 |
<a href="http://www.netbsd.org/Ports/cobalt/">NetBSD/cobalt</a> is tricky |
402 |
to install, because the Cobalt machines were designed for Linux, and not |
403 |
very flexible. There is no INSTALL kernel for NetBSD/cobalt. One way to |
404 |
install the NetBSD/cobalt distribution onto a disk image is to do it from |
405 |
another (emulated) machine. |
406 |
|
407 |
<p> |
408 |
|
409 |
<a href="20050413-netbsd-cobalt.png"><img src="20050413-netbsd-cobalt_small.png"></a> |
410 |
|
411 |
<p> |
412 |
The following instructions will let you install NetBSD/cobalt onto a disk |
413 |
image, from an emulated DECstation 3MAX machine: |
414 |
|
415 |
<p> |
416 |
<ol> |
417 |
<li>Create an empty harddisk image, which will be the disk image |
418 |
that you will install NetBSD/cobalt onto:<pre> |
419 |
<b>dd if=/dev/zero of=nbsd_cobalt.img bs=1024 count=1 seek=1999000</b> |
420 |
|
421 |
</pre> |
422 |
<li>Download the generic kernel for Cobalt and the 2.1 ISO image:<pre> |
423 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/cobalt/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/cobalt/binary/kernel/netbsd-GENERIC.gz</a> |
424 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/2.1/cobaltcd.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/2.1/cobaltcd.iso</a> |
425 |
|
426 |
</pre> |
427 |
<p> |
428 |
<li>Install NetBSD/pmax 3.0 according to instructions |
429 |
<a href="#netbsdpmaxinstall">further up on this page</a>. |
430 |
<p> |
431 |
<li>Start NetBSD/pmax like this:<pre> |
432 |
<b>gxemul -e3max -A -d nbsd_pmax.img -d cobaltcd.iso -d nbsd_cobalt.img</b> |
433 |
|
434 |
</pre> |
435 |
<li>Log in as root (on the emulated 3MAX machine), and execute the |
436 |
following commands: (adjust according to taste) |
437 |
<p><table border="0"><tr><td><tt> </tt></td><td><pre> |
438 |
<b>newfs /dev/sd1c |
439 |
mount /dev/cd0c /mnt |
440 |
mkdir /mnt2; mount /dev/sd1c /mnt2 |
441 |
cd /mnt2; sh |
442 |
for a in /mnt/cobalt/binary/sets/*.tgz; do echo $a; tar zxfp $a; done |
443 |
exit |
444 |
cd dev; sh ./MAKEDEV all; cd ../etc |
445 |
echo rc_configured=YES >> rc.conf |
446 |
echo "/dev/wd0d / ffs rw 1 1" > fstab |
447 |
cd /; umount /mnt; umount /mnt2; halt</b> |
448 |
</pre></td></tr></table> |
449 |
</ol> |
450 |
|
451 |
<p> |
452 |
You should now be able to boot NetBSD/cobalt like this:<pre> |
453 |
<b>gxemul -M128 -E cobalt -d nbsd_cobalt.img netbsd-GENERIC.gz</b> |
454 |
</pre> |
455 |
|
456 |
Note that the installation instructions above create a filesystem |
457 |
<i>without</i> a disklabel, so there is only one ffs partition and no |
458 |
swap. You will need to enter the following things when booting with the |
459 |
generic kernel:<pre> |
460 |
root device (default wd0a): <b>wd0d</b> |
461 |
dump device (default wd0b): <b>none</b> |
462 |
file system (default generic): <b>ffs</b> |
463 |
init path (default /sbin/init): <i>(just press enter here)</i> |
464 |
</pre> |
465 |
|
466 |
|
467 |
|
468 |
|
469 |
|
470 |
|
471 |
|
472 |
<p><br> |
473 |
<a name="netbsdevbmipsinstall"></a> |
474 |
<h3>NetBSD/evbmips:</h3> |
475 |
|
476 |
<a href="http://www.netbsd.org/Ports/evbmips/">NetBSD/evbmips</a> can run |
477 |
in GXemul on an emulated Malta evaluation board (with a 5Kc or 4Kc CPU). |
478 |
|
479 |
<p> |
480 |
|
481 |
<a href="20050622-netbsd-evbmips-malta.png"><img src="20050622-netbsd-evbmips-malta_small.png"></a> |
482 |
|
483 |
<p>It is tricky to install, because there is (as far as I know) no INSTALL |
484 |
kernel. One way to install the NetBSD/evbmips distribution onto a disk |
485 |
image is to install the files using another (emulated) machine. |
486 |
|
487 |
<p> |
488 |
The following instructions will let you install NetBSD/evbmips onto a disk |
489 |
image, from an emulated DECstation 3MAX machine: |
490 |
|
491 |
<p> |
492 |
<ol> |
493 |
<li>Install NetBSD/pmax 3.0 according to instructions |
494 |
<a href="#netbsdpmaxinstall">further up on this page</a>. |
495 |
<p> |
496 |
<li>Create an empty harddisk image, which will be the disk image |
497 |
that you will install NetBSD onto:<pre> |
498 |
<b>dd if=/dev/zero of=nbsd_malta.img bs=1024 count=1 seek=999000</b> |
499 |
|
500 |
</pre> |
501 |
<li>Download the generic kernel and the 2.1 ISO image:<pre> |
502 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/evbmips-mipsel/binary/kernel/netbsd-MALTA.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/evbmips-mipsel/binary/kernel/netbsd-MALTA.gz</a> |
503 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/2.1/evbmips-mipselcd.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/2.1/evbmips-mipselcd.iso</a> |
504 |
|
505 |
</pre> |
506 |
<p> |
507 |
<li>Start NetBSD/pmax like this:<pre> |
508 |
<b>gxemul -e 3max -A -d nbsd_pmax.img -d nbsd_malta.img -d evbmips-mipselcd.iso</b> |
509 |
|
510 |
</pre>and execute the following commands as <tt>root</tt>: |
511 |
<p><table border="0"><tr><td><tt> </tt></td><td><pre> |
512 |
<b>newfs /dev/sd1c |
513 |
mount /dev/cd0c /mnt |
514 |
mkdir /mnt2; mount /dev/sd1c /mnt2 |
515 |
cd /mnt2; sh |
516 |
for a in /mnt/evbmips-mipsel/binary/sets/*.tgz; do echo $a; tar zxfp $a; done |
517 |
exit |
518 |
cd dev; sh ./MAKEDEV all; cd ../etc |
519 |
echo rc_configured=YES >> rc.conf |
520 |
echo "/dev/wd0c / ffs rw 1 1" > fstab |
521 |
cd /; umount /mnt; umount /mnt2; halt</b> |
522 |
</pre></td></tr></table> |
523 |
</ol> |
524 |
|
525 |
<p>You should now be able to boot NetBSD/evbmips using this command:<pre> |
526 |
<b>gxemul -e malta -d nbsd_malta.img netbsd-MALTA.gz</b> |
527 |
</pre> |
528 |
|
529 |
<p>NOTE: To select a 4Kc (MIPS32) CPU instead of the default 5Kc |
530 |
(MIPS64) CPU, add <tt><b>-C 4Kc</b></tt> to the command line. With NetBSD |
531 |
2.1, however, there will be little or no difference in functionality, as |
532 |
NetBSD still runs in 32-bit mode on 64-bit MIPS CPUs. There are two things |
533 |
that differ:<ol> |
534 |
<li>GXemul's binary translation subsystem might run a bit faster |
535 |
in 32-bit mode (because there are some optimizations that don't |
536 |
work with 64-bit emulation) |
537 |
<li>4Kc only has 16 TLB entries, whereas 5Kc has 48. This makes 4Kc |
538 |
slower. |
539 |
</ol> |
540 |
|
541 |
<p>The installation instructions above create a filesystem |
542 |
<i>without</i> a disklabel, so there is only one ffs partition and no |
543 |
swap. You will need to enter the following things when booting with the |
544 |
generic kernel:<pre> |
545 |
root device (default wd0a): <b>wd0c</b> |
546 |
dump device (default wd0b): <b>none</b> |
547 |
file system (default generic): <b>ffs</b> |
548 |
init path (default /sbin/init): <i>(just press enter here)</i> |
549 |
</pre> |
550 |
|
551 |
|
552 |
|
553 |
|
554 |
|
555 |
|
556 |
|
557 |
<p><br> |
558 |
<a name="netbsdsgimips"></a> |
559 |
<h3>NetBSD/sgimips:</h3> |
560 |
|
561 |
<p> |
562 |
|
563 |
<a href="20050626-netbsd-sgimips-netboot.png"><img src="20050626-netbsd-sgimips-netboot_small.png"></a> |
564 |
|
565 |
<p><a href="http://www.netbsd.org/Ports/sgimips/">NetBSD/sgimips</a> can run |
566 |
in GXemul on an emulated O2 (SGI-IP32). However, GXemul does not yet |
567 |
emulate the AHC PCI SCSI controller in the O2. (I have mailed Adaptec |
568 |
several times, asking for documentation, but never received any reply.) |
569 |
NetBSD can still run in the emulator, as long as it doesn't use SCSI. |
570 |
|
571 |
<p>For a simple test with the 2.1 ramdisk (install) kernel, try |
572 |
dowloading<pre> |
573 |
<a href="ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-2.1/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.gz">ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-2.1/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.gz</a> |
574 |
|
575 |
</pre>and run <b><tt>gxemul -e o2 netbsd-INSTALL32_IP3x.gz</tt></b>. |
576 |
|
577 |
<p>It is possible to set up an environment for netbooting the emulated SGI |
578 |
machine off of another emulated machine. Performing this setup is quite |
579 |
time consuming, but necessary: |
580 |
|
581 |
<p> |
582 |
<ol> |
583 |
<li>First of all, the "<tt>nfs server</tt>" machine must be set up. |
584 |
This needs to have a 750 MB <tt>/tftpboot</tt> partition. |
585 |
<a href="#netbsdpmaxinstall">Install NetBSD/pmax 3.0 from CDROM</a>. |
586 |
(Don't forget to add the extra partition!) |
587 |
<p> |
588 |
<li>Configure the nfs server machine to act as an nfs server. |
589 |
Start up the emulated DECstation:<pre> |
590 |
<b>gxemul -e 3max -A -d nbsd_pmax.img</b> |
591 |
</pre>and enter the following commands as <tt>root</tt> |
592 |
inside the emulator: |
593 |
<table border="0"><tr><td><tt> </tt></td><td><pre> |
594 |
<b>echo hostname=server >> /etc/rc.conf |
595 |
echo ifconfig_le0=\"inet 10.0.0.2\" >> /etc/rc.conf |
596 |
echo nameserver 10.0.0.254 >> /etc/resolv.conf |
597 |
echo 10.0.0.254 > /etc/mygate |
598 |
echo /tftpboot -maproot=root 10.0.0.1 > /etc/exports |
599 |
echo rpcbind=YES >> /etc/rc.conf |
600 |
echo nfs_server=YES >> /etc/rc.conf |
601 |
echo mountd=YES >> /etc/rc.conf |
602 |
echo bootparamd=YES >> /etc/rc.conf |
603 |
printf "client root=10.0.0.2:/tftpboot \\\n swap=10.0.0.2:/tftpboot/swap\n" > /etc/bootparams |
604 |
echo "bootps dgram udp wait root /usr/sbin/bootpd bootpd -d 4 -h 10.0.0.2" >> /etc/inetd.conf |
605 |
cat >> /etc/bootptab |
606 |
client:\ |
607 |
:ht=ether:\ |
608 |
:ha=102030000010:\ |
609 |
:sm=255.0.0.0:\ |
610 |
:lg=10.0.0.254:\ |
611 |
:ip=10.0.0.1:\ |
612 |
:rp=/tftpboot: |
613 |
</b>(press CTRL-D) |
614 |
<b>echo "10:20:30:00:00:10 client" > /etc/ethers |
615 |
echo 10.0.0.1 client > /etc/hosts |
616 |
reboot</b> |
617 |
</pre></td></tr></table> |
618 |
<li>Start the DECstation emulation again, and download the |
619 |
NetBSD/sgimips distribution sets:<br>(NOTE: This |
620 |
takes quite some time, even if you have a fast network connection.) |
621 |
<table border="0"><tr><td><tt> </tt></td><td><pre> |
622 |
<b>cd /tftpboot; ftp -i ftp.uk.netbsd.org</b> |
623 |
(log in as anonymous...) |
624 |
<b>cd /pub/NetBSD/NetBSD-2.1/sgimips/binary/sets |
625 |
mget base.tgz comp.tgz etc.tgz games.tgz man.tgz misc.tgz text.tgz |
626 |
quit |
627 |
sh |
628 |
for a in *.tgz; do echo $a; tar zxfp $a; rm -f $a; done |
629 |
echo 10.0.0.2:/tftpboot / nfs rw 0 0 > /tftpboot/etc/fstab |
630 |
echo rc_configured=YES >> /tftpboot/etc/rc.conf |
631 |
dd if=/dev/zero of=swap bs=1024 count=32768 |
632 |
halt</b> |
633 |
</pre></td></tr></table> |
634 |
<li>Download the NetBSD/sgimips GENERIC and INSTALL kernels:<pre> |
635 |
<a href="ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-2.1/sgimips/binary/kernel/netbsd-GENERIC32_IP3x.gz">ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-2.1/sgimips/binary/kernel/netbsd-GENERIC32_IP3x.gz</a> |
636 |
<a href="ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-2.1/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.gz">ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-2.1/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.gz</a> |
637 |
|
638 |
</pre> |
639 |
<li>Create a configuration file called <tt>config_client</tt>: |
640 |
<table border="0"><tr><td><tt> </tt></td><td><pre> |
641 |
<font color="#2020cf">!!gxemul |
642 |
! |
643 |
! Configuration file for running NetBSD/sgimips diskless with |
644 |
! a NetBSD/pmax machine as the nfs server.</font> |
645 |
|
646 |
<b>emul( |
647 |
net( |
648 |
add_remote("localhost:12444") </b>! the server<b> |
649 |
local_port(12445) </b>! the client<b> |
650 |
) |
651 |
|
652 |
machine( |
653 |
name("client machine") |
654 |
serial_nr(1) |
655 |
|
656 |
type("sgi") |
657 |
subtype("o2") |
658 |
|
659 |
load("netbsd-INSTALL32_IP3x.gz")</b> |
660 |
! load("netbsd-GENERIC32_IP3x.gz")<b> |
661 |
) |
662 |
)</b> |
663 |
</pre></td></tr></table> |
664 |
... and another configuration file for the server, |
665 |
<tt>config_server</tt>: |
666 |
<table border="0"><tr><td><tt> </tt></td><td><pre> |
667 |
<font color="#2020cf">!!gxemul</font> |
668 |
<b>emul( |
669 |
net( |
670 |
local_port(12444) </b>! the server<b> |
671 |
add_remote("localhost:12445") </b>! the client<b> |
672 |
) |
673 |
|
674 |
machine( |
675 |
name("nfs server") |
676 |
serial_nr(2) |
677 |
|
678 |
type("dec") |
679 |
subtype("5000/200") |
680 |
|
681 |
disk("nbsd_pmax.img") |
682 |
) |
683 |
)</b> |
684 |
</pre></td></tr></table> |
685 |
<li>Boot the "<tt>nfs server</tt>" and the NetBSD/sgimips |
686 |
"<tt>client machine</tt>" as two separate emulator instances:<pre> |
687 |
in one xterm: |
688 |
<b>gxemul @config_server</b> |
689 |
|
690 |
and then, in another xterm: |
691 |
<b>gxemul @config_client</b> |
692 |
|
693 |
</pre> |
694 |
<li>In the NetBSD/sgimips window, choose "<tt>x: Exit Install System</tt>" |
695 |
in the installer's main menu, and then type:<pre> |
696 |
<b>ifconfig mec0 10.0.0.1; route add default 10.0.0.254</b> |
697 |
<b>mount -v 10.0.0.2:/tftpboot /mnt</b> |
698 |
<b>cd /mnt/dev; ./MAKEDEV all; cd /; umount /mnt</b> |
699 |
<b>halt</b> |
700 |
</pre>Then, once the client machine has halted, log in as <tt>root</tt> |
701 |
on the server machine and type <tt><b>reboot</b></tt>. |
702 |
<p> |
703 |
<li>Once everything has been set up correctly, change |
704 |
<tt>netbsd-INSTALL32_IP3x.gz</tt> in <tt>config_client</tt> to |
705 |
<tt>netbsd-GENERIC32_IP3x.gz</tt> (the GENERIC kernel). |
706 |
</ol> |
707 |
|
708 |
<p>You might want to log in as <tt>root</tt> on the server machine, and |
709 |
run <tt>tcpdump -lnvv</tt> or similar, to see that what the client machine |
710 |
actually does on the network. |
711 |
|
712 |
<p>It should now be possible to boot NetBSD/sgimips using the NetBSD/pmax |
713 |
nfs server, using the following commands: (NOTE! Execute these two |
714 |
commands in separate xterms!)<pre> |
715 |
<b>gxemul @config_server</b> |
716 |
<b>gxemul @config_client</b> |
717 |
</pre> |
718 |
|
719 |
<p>When asked for "<tt>root device:</tt>" etc. on the client machine, enter |
720 |
the following values:<pre> |
721 |
root device: <b>mec0</b> |
722 |
dump device: <b>(leave blank)</b> |
723 |
file system (default generic): <b>(leave blank)</b> |
724 |
.. |
725 |
init path (default /sbin/init): <b>(leave blank)</b> |
726 |
Enter pathname of shell or RETURN for /bin/sh: <b>(leave blank)</b> |
727 |
Terminal type? [unknown] <b>xterm</b> |
728 |
.. |
729 |
# <b>exit</b> (to leave the single-user shell) |
730 |
</pre> |
731 |
|
732 |
<p>Note: Netbooting like this is very slow, so you need a lot of patience. |
733 |
For example, when NetBSD says "<tt>nfs_boot: trying DHCP/BOOTP</tt>", |
734 |
there will be a long pause, even on a very fast host machine. The reason |
735 |
for this is mostly because the emulator doesn't deal with timing issues |
736 |
very well, but also because NetBSD tries IPv6 first, before falling back |
737 |
to IPv4. |
738 |
|
739 |
|
740 |
|
741 |
|
742 |
|
743 |
|
744 |
<p><br> |
745 |
<a name="netbsdcatsinstall"></a> |
746 |
<h3>NetBSD/cats:</h3> |
747 |
|
748 |
It is possible to install and run |
749 |
<a href="http://www.netbsd.org/Ports/cats/">NetBSD/cats</a> in GXemul. |
750 |
|
751 |
<p> |
752 |
<a href="20051007-netbsd-cats-installed.png"><img src="20051007-netbsd-cats-installed_small.png"></a> |
753 |
|
754 |
<p> |
755 |
To install NetBSD/cats onto a disk image, follow these instructions: |
756 |
|
757 |
<p> |
758 |
<ol start="1"> |
759 |
<li>Create an empty harddisk image, which will be the root disk |
760 |
that you will install NetBSD/cats onto:<pre> |
761 |
<b>dd if=/dev/zero of=nbsd_cats.img bs=1024 count=1 seek=2000000</b> |
762 |
|
763 |
</pre> |
764 |
<li>Download the NetBSD/cats 3.0 ISO image and the generic and install kernels:<pre> |
765 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/3.0/catscd-3.0.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/3.0/catscd-3.0.iso</a> |
766 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.0/cats/binary/kernel/netbsd.aout-GENERIC.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.0/cats/binary/kernel/netbsd.aout-GENERIC.gz</a> |
767 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.0/cats/binary/kernel/netbsd.aout-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.0/cats/binary/kernel/netbsd.aout-INSTALL.gz</a> |
768 |
|
769 |
</pre> |
770 |
<p> |
771 |
<li>Start the installation like this:<pre> |
772 |
<b>gxemul -XEcats -d nbsd_cats.img -d catscd-3.0.iso netbsd.aout-INSTALL.gz</b> |
773 |
|
774 |
</pre> |
775 |
and proceed like you would do if you were installing NetBSD on a real |
776 |
CATS from CDROM. |
777 |
</ol> |
778 |
|
779 |
<p>Alternatively, to install from FTP, you can skip downloading the ISO, |
780 |
and start the install without <tt>-d catscd-3.0.iso</tt>. Suitable network |
781 |
settings are IP 10.0.0.1, gateway/default route 10.0.0.254, netmask |
782 |
255.0.0.0, nameserver 10.0.0.254. |
783 |
|
784 |
<p>If everything worked, NetBSD should now be installed on the disk image. |
785 |
Use the following command line to boot the emulated CATS machine:<pre> |
786 |
<b>gxemul -XEcats -d nbsd_cats.img netbsd.aout-GENERIC.gz</b> |
787 |
|
788 |
</pre> |
789 |
|
790 |
|
791 |
|
792 |
|
793 |
|
794 |
|
795 |
|
796 |
<p><br> |
797 |
<a name="netbsdevbarminstall"></a> |
798 |
<h3>NetBSD/evbarm:</h3> |
799 |
|
800 |
<a href="http://www.netbsd.org/Ports/evbarm/">NetBSD/evbarm</a> can |
801 |
run in GXemul on an emulated IQ80321 evaluation board. |
802 |
|
803 |
<p> |
804 |
<a href="20060218-netbsd-evbarm.png"><img src="20060218-netbsd-evbarm_small.png"></a> |
805 |
|
806 |
<p>It is tricky to install, because there is (as far as I know) no INSTALL |
807 |
kernel. One way to install the NetBSD/evbarm distribution onto a disk |
808 |
image is to install the files using another (emulated) machine. |
809 |
|
810 |
<p>The following instructions will let you install NetBSD/evbarm onto a disk |
811 |
image, from an emulated CATS machine: |
812 |
|
813 |
<p> |
814 |
<ol> |
815 |
<li>Install NetBSD/cats 3.0 according to instructions |
816 |
<a href="#netbsdcatsinstall">further up on this page</a>. |
817 |
<p> |
818 |
<li>Create an empty harddisk image, which will be the disk image |
819 |
that you will install NetBSD onto:<pre> |
820 |
<b>dd if=/dev/zero of=nbsd_iq80321.img bs=1024 count=1 seek=999000</b> |
821 |
|
822 |
</pre> |
823 |
<li>Download an IQ80321 kernel with wdc support, and the 2.1 ISO image:<pre> |
824 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/evbarm/binary/kernel/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/evbarm/binary/kernel</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/evbarm/binary/kernel/netbsd-wd0-IQ80321.gz">netbsd-wd0-IQ80321.gz</a> |
825 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/2.1/evbarmcd.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/2.1/evbarmcd.iso</a> |
826 |
|
827 |
</pre> |
828 |
<p> |
829 |
<li>The first step is to copy the .tgz files we want onto the CATS |
830 |
machine's harddisk. Start the CATS machine like this:<pre> |
831 |
<b>gxemul -XEcats -d nbsd_cats.img -d evbarmcd.iso netbsd.aout-GENERIC.gz</b> |
832 |
|
833 |
</pre>and execute the following commands as <tt>root</tt>: |
834 |
<p><table border="0"><tr><td><tt> </tt></td><td><pre> |
835 |
<b>mount /dev/cd0a /mnt; cd /root; cp /mnt/evbarm/binary/sets/[bcegmt]* . |
836 |
sync; halt</b> |
837 |
</pre></td></tr></table> |
838 |
<p> |
839 |
<li>Now let's extract the files onto the IQ80321's disk image. Start the |
840 |
CATS machine again, with the following command line:<pre> |
841 |
<b>gxemul -XEcats -d nbsd_cats.img -d nbsd_iq80321.img netbsd.aout-GENERIC.gz</b> |
842 |
|
843 |
</pre>and execute the following commands as <tt>root</tt>: |
844 |
<p><table border="0"><tr><td><tt> </tt></td><td><pre> |
845 |
<b>disklabel -I -i wd1</b> |
846 |
(enter suitable commands, e.g. <i>a, 4.2BSD, 1c, 750M, b, |
847 |
swap, a, 200M, P, W, y, Q</i>) |
848 |
<b>newfs /dev/wd1a; mount /dev/wd1a /mnt; cd /mnt; sh |
849 |
for a in /root/[bcegmt]*.tgz; do echo $a; tar zxfp $a; done |
850 |
exit |
851 |
cd dev; sh ./MAKEDEV all; cd ../etc |
852 |
echo rc_configured=YES >> rc.conf |
853 |
echo "/dev/wd0a / ffs rw 1 1" > fstab |
854 |
echo "/dev/wd0b none swap sw 0 0" >> fstab |
855 |
cd /; umount /mnt; sync; halt</b> |
856 |
</pre></td></tr></table> |
857 |
</ol> |
858 |
|
859 |
<p>You should now be able to boot NetBSD/evbarm using this command:<pre> |
860 |
<b>gxemul -xEiq80321 -d nbsd_iq80321.img netbsd-wd0-IQ80321.gz</b> |
861 |
</pre> |
862 |
|
863 |
|
864 |
|
865 |
|
866 |
|
867 |
|
868 |
<p><br> |
869 |
<a name="netbsdprepinstall"></a> |
870 |
<h3>NetBSD/prep:</h3> |
871 |
|
872 |
It is possible to install and run |
873 |
<a href="http://www.netbsd.org/Ports/prep/">NetBSD/prep</a> in GXemul |
874 |
on an emulated IBM 6050 (PowerPC) machine. |
875 |
|
876 |
<p> |
877 |
<a href="20051123-netbsd-prep.png"><img src="20051123-netbsd-prep_small.png"></a> |
878 |
|
879 |
<p>To install NetBSD/prep onto a disk image, follow these instructions: |
880 |
|
881 |
<p> |
882 |
<ol start="1"> |
883 |
<li>Create an empty harddisk image, which will be the root disk |
884 |
that you will install NetBSD/prep onto:<pre> |
885 |
<b>dd if=/dev/zero of=nbsd_prep.img bs=1024 count=1 seek=1000000</b> |
886 |
|
887 |
</pre> |
888 |
<li>Download the NetBSD/prep 2.1 ISO image and the generic kernel:<pre> |
889 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/2.1/prepcd.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/2.1/prepcd.iso</a> |
890 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/prep/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/prep/binary/kernel/netbsd-GENERIC.gz</a> |
891 |
|
892 |
</pre> |
893 |
<p> |
894 |
<li>Start the installation like this:<pre> |
895 |
<b>gxemul -x -e ibm6050 -d nbsd_prep.img -d rdb:prepcd.iso -j prep/binary/kernel/netbsd-INSTALL.gz</b> |
896 |
|
897 |
</pre> |
898 |
<p> |
899 |
<li>Installation is a bit unsmooth, possibly due to bugs in GXemul, |
900 |
possibly due to bugs in NetBSD itself; others have been having |
901 |
problems on real hardware: <a href="http://mail-index.NetBSD.org/port-prep/2005/11/25/0004.html">http://mail-index.NetBSD.org/port-prep/2005/11/25/0004.html</a>. |
902 |
Creating an MBR slice and a disklabel with sysinst bugs out, so |
903 |
some things have to be done manually:<p> |
904 |
At "<tt>(I)nstall, (S)hell, or (H)alt</tt>", choose |
905 |
<tt><b><u>s</u></b></tt>. |
906 |
<br><tt># <b><u>fdisk -u wd0</u></b></tt> |
907 |
<br><tt>Do you want to change our idea of what BIOS thinks? [n]</tt> |
908 |
(just press <b>ENTER</b>) |
909 |
<br><tt>Which partition do you want to change?: [none] <b><u>0</u></b></tt> |
910 |
<br><tt>sysid: ... </tt> (just press <B>ENTER</b>) |
911 |
<br><tt>start: ... <b><u>1cyl</u></b></tt> |
912 |
<br><tt>size: ... </tt> (just press <B>ENTER</b>) |
913 |
<br><tt>Which partition do you want to change?: [none]</tt> (press <b>ENTER</b>) |
914 |
<br><tt>Should we write new partition table? [n] <b><u>y</u></b></tt> |
915 |
<br><tt># <b><u>disklabel -I -i wd0</u></b></tt> |
916 |
<br><tt>partition> <b><u>a</u></b></tt> |
917 |
<br><tt>Filesystem type [?] [unused]: <b><u>4.2BSD</u></b></tt> |
918 |
<br><tt>Start offset ('x' to start after partition 'x') [0c, 0s, 0M]: <b><u>1c</u></b></tt> |
919 |
<br><tt>Partition size ('$' for all remaining) [0c, 0s, 0M]: <b><u>900M</u></b></tt> |
920 |
<br><tt>partition> <b><u>b</u></b></tt> |
921 |
<br><tt>Filesystem type [?] [unused]: <b><u>swap</u></b></tt> |
922 |
<br><tt>Start offset ('x' to start after partition 'x') [0c, 0s, 0M]: <b><u>a</u></b></tt> |
923 |
<br><tt>Partition size ('$' for all remaining) [0c, 0s, 0M]: <b><u>$</u></b></tt> |
924 |
<br><tt>partition> <b><u>W</u></b></tt> |
925 |
<br><tt>Label disk [n]? <b><u>y</u></b></tt> |
926 |
<br><tt>partition> <b><u>Q</u></b></tt> |
927 |
<br><tt># <b><u>newfs wd0a</u></b></tt> |
928 |
<br><tt># <b><u>sysinst</u></b></tt> |
929 |
<br>Choose to install onto <b>wd0</b>. Choose |
930 |
"<tt>a: Edit the MBR partition table</tt>" |
931 |
when presented with that option. |
932 |
<br>Choose the 'a' partition/slice, |
933 |
set the 'e' ("active") and 'f' ("install") fields to <b>Yes</b>, |
934 |
and then choose "<tt>x: Partition table OK</tt>". |
935 |
<br>Choose "<tt>b: Use existing partition sizes</tt>" in the next |
936 |
menu. |
937 |
<br>Select partition 'a' and press ENTER. Set field 'k' (mount point) |
938 |
to '<tt><b>/</b></tt>'. |
939 |
<br>Get out of the partitioner by selecting |
940 |
"<tt>x: Partition sizes ok</tt>" twice. |
941 |
<br>At "<tt>Write outside MBR partition? [n]:</tt>", just press |
942 |
<b>ENTER</b>. |
943 |
<br>Install from CD-ROM, device <b>wd1c</b>. |
944 |
</ol> |
945 |
|
946 |
<p>If everything worked, NetBSD should now be installed on the disk image. |
947 |
Use the following command line to boot the emulated machine:<pre> |
948 |
<b>gxemul -x -e ibm6050 -d nbsd_prep.img netbsd-GENERIC.gz</b> |
949 |
|
950 |
</pre> |
951 |
|
952 |
<p>When asked which the root device is, type <tt><b>wd0</b></tt> and |
953 |
just press ENTER to select the default values for dump device, file |
954 |
system type, and init path. |
955 |
|
956 |
|
957 |
|
958 |
|
959 |
|
960 |
|
961 |
<p><br> |
962 |
<a name="openbsdpmaxinstall"></a> |
963 |
<h3>OpenBSD/pmax:</h3> |
964 |
|
965 |
Installing <a href="http://www.openbsd.org/pmax.html">OpenBSD/pmax</a> is |
966 |
a bit harder than installing NetBSD/pmax. You should first read the <a |
967 |
href="#netbsdpmaxinstall">section above</a> on how to install NetBSD/pmax, |
968 |
before continuing here. If you have never installed OpenBSD on any |
969 |
architecture, then you need a great deal of patience to do this. If, on |
970 |
the other hand you are used to installing OpenBSD, then this should be no |
971 |
problem for you. |
972 |
|
973 |
<p> |
974 |
|
975 |
<a href="20040710-openbsd-pmax.png"><img src="20040710-openbsd-pmax_small.png"></a> |
976 |
|
977 |
<a href="openbsd-pmax-20040710.png"><img src="openbsd-pmax-20040710_small.png"></a> |
978 |
|
979 |
<p> |
980 |
OpenBSD/pmax died at release 2.8 of OpenBSD, so you should be |
981 |
aware of the fact that this will not give you an up-to-date OpenBSD |
982 |
system. |
983 |
|
984 |
<p> |
985 |
Following these instructions <i>might</i> work. If not, then use |
986 |
common sense and imagination to modify them as you see fit. |
987 |
|
988 |
<p> |
989 |
<ol> |
990 |
<li>Create an empty harddisk image, which will be the root disk |
991 |
that OpenBSD installs itself onto:<pre> |
992 |
<b>dd if=/dev/zero of=obsd_pmax.img bs=1 count=512 seek=900000000</b> |
993 |
|
994 |
</pre> |
995 |
<li>Download the entire pmax directory from the ftp server: (approx. 99 MB)<pre> |
996 |
<b>wget -r <a href="ftp://ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/">ftp://ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/</a></b> |
997 |
|
998 |
</pre> |
999 |
|
1000 |
<li>Execute the following commands: |
1001 |
<p><table border="0"><tr><td><tt> </tt></td><td><pre> |
1002 |
<b>mv ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/simpleroot28.fs.gz . |
1003 |
gunzip simpleroot28.fs.gz |
1004 |
chmod +w simpleroot28.fs</b> <--- make sure |
1005 |
</pre></td></tr></table> |
1006 |
<li>You now need to make an ISO image of the entire directory you downloaded. |
1007 |
(I recommend using <tt>mkisofs</tt> for that purpose. If you don't |
1008 |
already have <tt>mkisofs</tt> installed on your system, you need |
1009 |
to install it in order to do this.)<pre> |
1010 |
<b>mkisofs -o openbsd_pmax_2.8.iso ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax</b> |
1011 |
|
1012 |
</pre> |
1013 |
<li>Start the emulator with all three (!) disk images:<pre> |
1014 |
<b>gxemul -e 3max -A -d obsd_pmax.img -d b:simpleroot28.fs -j bsd -d c:openbsd_pmax_2.8.iso</b> |
1015 |
|
1016 |
</pre> |
1017 |
(If you add <tt>-X</tt>, you will run with the graphical |
1018 |
framebuffer. This is <i>REALLY</i> slow because the console has to |
1019 |
scroll a lot during the install. I don't recommend it.) |
1020 |
<p> |
1021 |
<li>Go on with the installation as you would do if you were installing on a real machine. |
1022 |
If you are not used to the OpenBSD installer, then this will most likely |
1023 |
be a very uncomfortable experience. Some important things to keep in mind are: |
1024 |
<ul> |
1025 |
<li>rz0 is the rootdisk you wish to install onto. |
1026 |
<li>rz1 is the simpleroot image. |
1027 |
<li>rz2 is the CDROM containing the "install sets". |
1028 |
<li>When asked for the "<b>root device?</b>", enter <b>rz1</b>. |
1029 |
<li>At "<b>Enter pathname of shell or RETURN for sh:</b>", press enter. |
1030 |
<li>At the # prompt, do the following:<pre> |
1031 |
<b>fsck /dev/rz1a</b> (and mark the filesystem as clean) |
1032 |
<b>mount /dev/rz1a /</b> |
1033 |
<b>mount -t kernfs kern kern</b> |
1034 |
<b>./install</b> |
1035 |
|
1036 |
</pre> |
1037 |
and proceed with the install. Good luck. :-) |
1038 |
<li>Answer "<b>y</b>" when asked if you wish to configure the network. |
1039 |
(See the section about installing NetBSD/pmax for suitable |
1040 |
network settings.) |
1041 |
<li>Install from "<b>c</b>" (cdrom), choose "<b>rz2</b>" as the cdrom device, and "<b>/</b>" as |
1042 |
the directory containing the install sets. |
1043 |
</ul> |
1044 |
<p> |
1045 |
<li>For some unknown reason, the install script does not set the root |
1046 |
password! The first time you boot up OpenBSD after the install, you |
1047 |
need to go into single user mode and run <b>passwd root</b> to set |
1048 |
the root password, or you will not be able to log in at all!<pre> |
1049 |
<b>gxemul -e 3max -A -d obsd_pmax.img -d 2c:openbsd_pmax_2.8.iso -j bsd -o '-s'</b> |
1050 |
</pre> |
1051 |
While you are at it, you might want to extract the X11 install sets |
1052 |
as well, as the installer seems to ignore them too. (Perhaps due to a bug |
1053 |
in the installer, perhaps because of the way I used mkisofs.) |
1054 |
<p> |
1055 |
Execute the following commands in the emulator: |
1056 |
<p><table border="0"><tr><td><tt> </tt></td><td><pre> |
1057 |
<b>fsck /dev/rz0a |
1058 |
mount / |
1059 |
passwd root |
1060 |
|
1061 |
cd /; mount -t cd9660 /dev/rz2c /mnt; sh |
1062 |
for a in /mnt/[xX]*; do tar zxvf $a; done |
1063 |
ln -s /usr/X11R6/bin/Xcfbpmax /usr/X11R6/bin/X |
1064 |
ln -s /dev/fb0 /dev/mouse |
1065 |
echo /usr/X11R6/lib >> /etc/ld.so.conf |
1066 |
ldconfig |
1067 |
|
1068 |
sync |
1069 |
halt</b> |
1070 |
</pre></td></tr></table> |
1071 |
</ol> |
1072 |
|
1073 |
<p> |
1074 |
NOTE: It is also possible to install via ftp instead of using a CDROM image. |
1075 |
This is not much less awkward, you still need the simpleroot filesystem |
1076 |
image, and you still have to manually add the X11 install sets and set the |
1077 |
root password, and so on. |
1078 |
|
1079 |
<p> |
1080 |
Once you have completed the installation procedure, the following command |
1081 |
will let you boot from the new rootdisk image: |
1082 |
<pre> |
1083 |
<b>gxemul -e 3max -X -o '-aN' -d obsd_pmax.img -j bsd</b> |
1084 |
</pre> |
1085 |
|
1086 |
<p> |
1087 |
(Normally, you would be asked about which root device to use (<tt>rz0</tt>), |
1088 |
but using <b><tt>-o '-aN'</tt></b> supresses that.) |
1089 |
|
1090 |
<p> |
1091 |
When asked for which terminal type to use, when logging in as root, |
1092 |
enter <b><tt>rcons</tt></b> if you are using the graphical framebuffer, |
1093 |
<b><tt>vt100</tt></b> for text-mode. |
1094 |
<br>Use <b><tt>startx</tt></b> to start X windows. |
1095 |
|
1096 |
|
1097 |
|
1098 |
|
1099 |
|
1100 |
|
1101 |
|
1102 |
|
1103 |
|
1104 |
<p><br> |
1105 |
<a name="openbsdcatsinstall"></a> |
1106 |
<h3>OpenBSD/cats:</h3> |
1107 |
|
1108 |
It is possible to install and run |
1109 |
<a href="http://www.openbsd.org/cats.html">OpenBSD/cats</a> |
1110 |
in GXemul. |
1111 |
|
1112 |
<p> |
1113 |
<a href="20051007-openbsd-cats-installed.png"><img src="20051007-openbsd-cats-installed_small.png"></a> |
1114 |
|
1115 |
<p>To install OpenBSD/cats onto an emulated harddisk image, |
1116 |
follow these instructions: |
1117 |
|
1118 |
<p> |
1119 |
<ol> |
1120 |
<li>Create an empty harddisk image, which will be the root disk |
1121 |
that OpenBSD installs itself onto:<pre> |
1122 |
<b>dd if=/dev/zero of=obsd_cats.img bs=1024 count=1 seek=1900000</b> |
1123 |
|
1124 |
</pre> |
1125 |
<li>Download the entire cats directory from the ftp server:<pre> |
1126 |
<b>wget -np -l 0 -r <a href="ftp://ftp.openbsd.org/pub/OpenBSD/3.8/cats/">ftp://ftp.openbsd.org/pub/OpenBSD/3.8/cats/</a></b> |
1127 |
<b>cp ftp.openbsd.org/pub/OpenBSD/3.8/cats/bsd .</b> |
1128 |
<b>cp ftp.openbsd.org/pub/OpenBSD/3.8/cats/bsd.rd .</b> |
1129 |
|
1130 |
</pre> |
1131 |
|
1132 |
<li>You now need to make an ISO image of the entire directory you downloaded. |
1133 |
(I recommend using <tt>mkisofs</tt> for that purpose. If you don't |
1134 |
already have <tt>mkisofs</tt> installed on your system, you need |
1135 |
to install it in order to do this.)<pre> |
1136 |
<b>mkisofs -allow-lowercase -o openbsd_cats_3.8.iso ftp.openbsd.org/pub/OpenBSD/</b> |
1137 |
|
1138 |
</pre> |
1139 |
<li>Start the emulator using this command line:<pre> |
1140 |
<b>gxemul -XEcats -d obsd_cats.img -d openbsd_cats_3.8.iso bsd.rd</b> |
1141 |
|
1142 |
</pre> |
1143 |
and proceed like you would do if you were installing OpenBSD |
1144 |
on a real CATS. (Install onto <tt>wd0</tt>, don't configure the |
1145 |
network, install from CD.) |
1146 |
</ol> |
1147 |
|
1148 |
<p>(Although it <i>is</i> possible to configure the network, IPv4 address |
1149 |
10.0.0.1, netmask 255.0.0.0, gateway/default route 10.0.0.254, and |
1150 |
nameserver 10.0.0.254, the userland NAT-like networking layer is not |
1151 |
stable enough yet to support a full install via ftp.) |
1152 |
|
1153 |
<p><b>NOTE:</b> Make sure that you <tt>sync</tt> and <tt>reboot</tt> |
1154 |
correctly once the installation is finished, or the <tt>/dev</tt> nodes |
1155 |
may not have been written correctly to disk. |
1156 |
|
1157 |
<p>Once the install has finished, the following command should let you |
1158 |
boot from the harddisk image: |
1159 |
|
1160 |
<p><pre> |
1161 |
<b>gxemul -XEcats -d obsd_cats.img bsd</b> |
1162 |
|
1163 |
</pre> |
1164 |
|
1165 |
|
1166 |
|
1167 |
|
1168 |
|
1169 |
|
1170 |
|
1171 |
<p><br> |
1172 |
<a name="ultrixinstall"></a> |
1173 |
<h3>Ultrix/RISC:</h3> |
1174 |
|
1175 |
Ultrix 4.x can run in GXemul on an emulated DECstation 5000/200. |
1176 |
(Ultrix was the native OS for these machines, but NetBSD/pmax is |
1177 |
also usable.) |
1178 |
|
1179 |
<p> |
1180 |
|
1181 |
<a href="20040504-ultrix45-boot1.png"><img src="20040504-ultrix45-boot1_small.gif"></a> |
1182 |
|
1183 |
<a href="ultrix4.5-20040706.png"><img src="ultrix4.5-20040706_small.gif"></a> |
1184 |
|
1185 |
<p> |
1186 |
The following instructions should let you install Ultrix onto a disk image: |
1187 |
|
1188 |
<ol> |
1189 |
<li>Create an empty harddisk image, which will be the root disk |
1190 |
that Ultrix installs itself onto:<pre> |
1191 |
<b>dd if=/dev/zero of=rootdisk.img bs=1024 count=1 seek=800000</b> |
1192 |
|
1193 |
</pre> |
1194 |
<li>Place your Ultrix installation media in your CDROM drive. |
1195 |
(On FreeBSD and similar systems, it is called <tt>/dev/cd0c</tt>. |
1196 |
Replace that with the name of your CDROM drive, or the name of a |
1197 |
.iso image file.) Then, start the emulator like this:<pre> |
1198 |
<b>gxemul -X -A -e 3max -d rootdisk.img -d bc:/dev/cd0c -j vmunix</b> |
1199 |
|
1200 |
</pre> |
1201 |
<li>Once the first stage of the installation is done (restoring the root |
1202 |
filesystem), you need to restart the emulator, booting from the |
1203 |
new rootdisk, to continue the installation process. |
1204 |
This is done by removing the bootflag ('<tt>b</tt>') from the second |
1205 |
diskimage argument:<pre> |
1206 |
<b>gxemul -X -A -e 3max -d rootdisk.img -d c:/dev/cd0c -j vmunix</b> |
1207 |
|
1208 |
</pre> |
1209 |
</ol> |
1210 |
|
1211 |
<p> |
1212 |
When the installation is completed, the following command should start |
1213 |
Ultrix from the harddisk image:<pre> |
1214 |
<b>gxemul -X -A -e 3max -j vmunix -d rootdisk.img</b> |
1215 |
</pre> |
1216 |
|
1217 |
<p>Ultrix mostly seems to work with dynamic binary translation (which can |
1218 |
be disabled by the <b><tt>-B</tt></b> command line option). If you have a |
1219 |
very fast host machine, and use bintrans, you might experience a weird |
1220 |
timer related bug, which makes it impossible to logon to the system. It is |
1221 |
triggered when the emulation goes faster than any real DECstation machine |
1222 |
was capable of running. A temporary workaround is to add |
1223 |
<b><tt>-I33000000</tt></b> to fix the emulated clock speed to 33 million |
1224 |
instructions per emulated second. (When using <tt><b>-CR4400</b></tt>, |
1225 |
<b><tt>-I16000000</tt></b> should be used instead.) |
1226 |
|
1227 |
<p> |
1228 |
You can experiment with adding <b><tt>-Z2</tt></b> (for emulating a |
1229 |
dual-headed workstation) or even <b><tt>-Z3</tt></b> (tripple-headed), and |
1230 |
also the <b><tt>-Y2</tt></b> option for scaling down the framebuffer |
1231 |
windows by a factor 2x2. |
1232 |
There is also a <b><tt>-z</tt></b> option for supplying names of X11 |
1233 |
displays to use. The following example starts Ultrix on an emulated |
1234 |
tripple-headed workstation, on three different displays (<tt>remote1:0.0</tt>, |
1235 |
<tt>localhost:0.0</tt>, and <tt>remote2:0.0</tt>), using no scaledown:<pre> |
1236 |
<b>gxemul -A -N -e 3max -jgenvmunix -d rootdisk.img \ |
1237 |
-XZ3 -z remote1:0.0 -z localhost:0.0 -z remote2:0.0</b> |
1238 |
</pre> |
1239 |
|
1240 |
<p> |
1241 |
The photo below shows a single Ultrix session running tripple-headed in |
1242 |
GXemul on an Alpha 21164PC, with displays on a Sun Ultra1 (to the left), |
1243 |
on the Alpha itself (in the middle), and on an HP700/RX X-terminal (8-bit |
1244 |
color depth, running off the Alpha) to the right. |
1245 |
|
1246 |
<p> |
1247 |
|
1248 |
<a href="20041209-ultrix-tripplehead.jpg"><img src="20041209-ultrix-tripplehead_small.jpg"></a> |
1249 |
|
1250 |
<p> |
1251 |
The X11 displays may differ in bit depth and endianness. Unfortunately, |
1252 |
there is no way yet to set the scaledown factor on a per-window basis, so |
1253 |
the scaledown factor affects all windows. |
1254 |
|
1255 |
<p> |
1256 |
(If you didn't use <tt><b>-Z<i>n</i></b></tt> during the installation, and |
1257 |
compiled your own <tt>/vmunix</tt>, then it will not contain support for |
1258 |
multiple graphics cards. To overcome this problem, use the generic kernel, |
1259 |
<tt><b>-j genvmunix</b></tt>, whenever you are running the emulator with a |
1260 |
different setup than the one you used when Ultrix was installed.) |
1261 |
|
1262 |
<p> |
1263 |
A note for the historically interested: OSF/1 for MIPS was quite similar |
1264 |
to Ultrix, so that is possible to run as well. If you are unsuccessful |
1265 |
in installing Ultrix or OSF/1 directly in the emulator, you can always |
1266 |
install it on your real machine onto a real SCSI disk, and then copy the |
1267 |
contents of that SCSI disk into a file (using <b><tt>dd(1)</tt></b>), and use |
1268 |
that file as a disk image file in the emulator. |
1269 |
|
1270 |
|
1271 |
|
1272 |
|
1273 |
|
1274 |
|
1275 |
<p><br> |
1276 |
<a name="sprite"></a> |
1277 |
<h3>Sprite for DECstation:</h3> |
1278 |
|
1279 |
Sprite was a research operating system at the University of Berkeley. |
1280 |
The Unix Heritage Society (TUHS, <a href="http://www.tuhs.org">www.tuhs.org</a>) |
1281 |
has made available a copy of a Sprite harddisk image for a DECstation 5000/200. |
1282 |
If you want to find out more about Sprite in general, read |
1283 |
<a href="http://www.cs.berkeley.edu/projects/sprite/retrospective.html"> |
1284 |
http://www.cs.berkeley.edu/projects/sprite/retrospective.html</a>. |
1285 |
|
1286 |
<p> |
1287 |
|
1288 |
<a href="20040711-sprite-1.png"><img src="20040711-sprite-1_small.png"></a> |
1289 |
|
1290 |
<a href="sprite-20040711.png"><img src="sprite-20040711_small.png"></a> |
1291 |
|
1292 |
<p> |
1293 |
The following instructions should let you run Sprite in the emulator: |
1294 |
|
1295 |
<p> |
1296 |
<ol> |
1297 |
<li>Download the Sprite harddisk image:<pre> |
1298 |
<a href="ftp://ftp.es.embnet.org/pub/misc/TUHS/other_os/Sprite/ds5000.bt">ftp://ftp.es.embnet.org/pub/misc/TUHS/other_os/Sprite/ds5000.bt</a> |
1299 |
83973120 bytes, MD5 = ec84eeeb20fe77b758370d5e312e4a5e |
1300 |
|
1301 |
</pre> |
1302 |
<li>Start the emulator with the following command line:<pre> |
1303 |
<b>gxemul -X -e 3max -M128 -d ds5000.bt -j vmsprite -o ''</b> |
1304 |
|
1305 |
</pre> |
1306 |
</ol> |
1307 |
|
1308 |
<p> |
1309 |
The first time you boot up with the disk image, you will be asked a number |
1310 |
of questions regarding network settings. If you feel like entering correct |
1311 |
values, then you should use the following: |
1312 |
<p> |
1313 |
|
1314 |
<pre> |
1315 |
Your machine's Ethernet address: 10:20:30:00:00:10 |
1316 |
Your machine's IP: 10.0.0.1 |
1317 |
Subnet mask: 0xff000000 |
1318 |
Gateway's Ethernet address: 60:50:40:30:20:10 |
1319 |
Gateway's IP: 10.0.0.254 |
1320 |
</pre> |
1321 |
|
1322 |
<p> |
1323 |
Unfortunately, at the end of <a href="ftp://ftp.es.embnet.org/pub/misc/TUHS/other_os/Sprite/boot.txt">ftp://ftp.es.embnet.org/pub/misc/TUHS/other_os/Sprite/boot.txt</a>, |
1324 |
the following sad statement can be found: |
1325 |
<pre> |
1326 |
The bootable Sprite image is meant to be a demonstration of Sprite, not |
1327 |
a robust Sprite system. There are several missing things, such as |
1328 |
floating point and network support. |
1329 |
</pre> |
1330 |
|
1331 |
<p>Once you are logged in as root, running <b><tt>xinit</tt></b> will |
1332 |
start the X11 environment. |
1333 |
|
1334 |
|
1335 |
|
1336 |
|
1337 |
|
1338 |
|
1339 |
<p><br> |
1340 |
<a name="declinux"></a> |
1341 |
<h3>Debian GNU/Linux for DECstation:</h3> |
1342 |
|
1343 |
It is possible to run Debian GNU/Linux for DECstation in the emulator, |
1344 |
on an emulated 5000/200 ("3max"). Although the Debian project has released |
1345 |
install ramdisk kernels for this purpose, these do not always work: |
1346 |
<ul> |
1347 |
<li>Serial console output doesn't work too well in GXemul. There are |
1348 |
random oopses, which may be due to bugs in GXemul, but may |
1349 |
also be due to bugs in the serial controller code in Linux. |
1350 |
(The speed at which serial interrupts are generated can be |
1351 |
lowered with the <tt>-U</tt> command line option, but it only |
1352 |
reduces the risk, it doesn't take away the oopses completely.) |
1353 |
<li>Old install kernels supported the graphical framebuffer on the |
1354 |
3max, but not the keyboard. |
1355 |
<li>For quite some time, the MIPS linux cvs tree had support for the |
1356 |
keyboard, but it did <i>not</i> include Debian's patches for |
1357 |
networking. (Perhaps this has been fixed now, I don't know.) |
1358 |
</ul> |
1359 |
|
1360 |
<p>David Muse has made available a precompiled install kernel which |
1361 |
has support for framebuffer, keyboard, and networking, which works |
1362 |
pretty well. Thanks David. :-) |
1363 |
|
1364 |
<p> |
1365 |
The following steps should let you install Debian GNU/Linux for DECstation |
1366 |
onto a harddisk image: |
1367 |
|
1368 |
<p> |
1369 |
<ol> |
1370 |
<li>Create an empty harddisk image, which will be the root disk |
1371 |
that Debian installs itself onto:<pre> |
1372 |
<b>dd if=/dev/zero of=debian_pmax.img bs=1024 count=1 seek=3300000</b> |
1373 |
|
1374 |
</pre> |
1375 |
<li>Download David Muse' install kernel, and a Debian Netinstall CD-ROM:<pre> |
1376 |
<a href="http://www.firstworks.com/mips-linux-2.4.31/vmlinux-2.4.31">http://www.firstworks.com/mips-linux-2.4.31/vmlinux-2.4.31</a> |
1377 |
<a href="http://cdimage.debian.org/debian-cd/3.1_r0a/mipsel/iso-cd/debian-31r0a-mipsel-netinst.iso">http://cdimage.debian.org/debian-cd/3.1_r0a/mipsel/iso-cd/debian-31r0a-mipsel-netinst.iso</a> |
1378 |
|
1379 |
</pre> |
1380 |
<p> |
1381 |
<li>Start the installation like this:<pre> |
1382 |
<b>gxemul -XAe3max -d debian_pmax.img -d debian-31r0a-mipsel-netinst.iso vmlinux-2.4.31</b> |
1383 |
|
1384 |
</pre> |
1385 |
Everything is <i>really</i> slow, for several reasons (framebuffer is |
1386 |
always slower than serial console, and Debian's install seems to be |
1387 |
made up of scripts that run a lot slower in the emulator than pure |
1388 |
C code would). |
1389 |
<p> |
1390 |
There will be a <font color="#d00000">warning</font> about "Select |
1391 |
keyboard layout". Don't mind this. Continue by selecting "Detect and |
1392 |
mount CD-ROM". |
1393 |
<p> |
1394 |
There will also be a <font color="#d00000">warning</font> about lack |
1395 |
of loadable modules. Don't mind this, continue anyway. |
1396 |
<p> |
1397 |
You need to enter some values during the installation procedure, for |
1398 |
example network settings. The following should work:<pre> |
1399 |
DHCP: No, choose "<b>Configure network manually</b>" |
1400 |
IP address: <b>10.0.0.1</b> |
1401 |
Netmask: <b>255.0.0.0</b> |
1402 |
Gateway: <b>10.0.0.254</b> |
1403 |
Name server addresses: <b>10.0.0.254</b> |
1404 |
</pre> |
1405 |
<li>Once the first phase of the install has finished, the following command |
1406 |
should let you boot into Debian, and perform post-install |
1407 |
configuration:<pre> |
1408 |
<b>gxemul -XAe3max -o 'root=/dev/sda1' -d debian_pmax.img vmlinux-2.4.31</b> |
1409 |
|
1410 |
</pre>The post-install step takes quite some time. |
1411 |
</ol> |
1412 |
|
1413 |
<p>Debian GNU/Linux for DECstation should now be installed. Use this command |
1414 |
to boot from the installed disk image:<pre> |
1415 |
<b>gxemul -XAe3max -o 'root=/dev/sda1' -d debian_pmax.img vmlinux-2.4.31</b> |
1416 |
|
1417 |
</pre> |
1418 |
|
1419 |
|
1420 |
|
1421 |
|
1422 |
|
1423 |
|
1424 |
|
1425 |
<p><br> |
1426 |
<a name="declinuxredhat"></a> |
1427 |
<h3>Redhat Linux for DECstation:</h3> |
1428 |
|
1429 |
|
1430 |
<p> |
1431 |
|
1432 |
<a href="20041129-redhat_mips.png"><img src="20041129-redhat_mips_small.png"></a> |
1433 |
|
1434 |
<p> |
1435 |
The following steps should let you run Redhat Linux for DECstation in GXemul: |
1436 |
|
1437 |
<p> |
1438 |
<ol> |
1439 |
<li>Download a kernel. David Muse' Debian-install kernel works fine, also with Redhat:<pre> |
1440 |
<a href="http://www.firstworks.com/mips-linux-2.4.31/vmlinux-2.4.31">http://www.firstworks.com/mips-linux-2.4.31/vmlinux-2.4.31</a> |
1441 |
|
1442 |
</pre> |
1443 |
<li>Download a root filesystem tree:<pre> |
1444 |
<a href="ftp://ftp.uni-wuppertal.de/pub/linux/mips/mipsel-linux/root/mipsel-root-20011216.tgz">ftp://ftp.uni-wuppertal.de/pub/linux/mips/</a> |
1445 |
<a href="ftp://ftp.uni-wuppertal.de/pub/linux/mips/mipsel-linux/root/mipsel-root-20011216.tgz">mipsel-linux/root/mipsel-root-20011216.tgz</a> |
1446 |
19486676 bytes, md5 = 5bcb725c90209479cd7ead8ad0c4a414 |
1447 |
|
1448 |
</pre> |
1449 |
<li>Create a disk image which will contain the Redhat filesystem:<pre> |
1450 |
<b>dd if=/dev/zero of=redhat_mips.img bs=1024 count=1 seek=2000000</b> |
1451 |
|
1452 |
</pre> |
1453 |
<li>This is the tricky part: on redhat_mips.img, you need to create an MS-DOS |
1454 |
(!) partition table, and then an ext2 partition. This is what Linux |
1455 |
will then see as /dev/sda1. |
1456 |
<p>On a Linux host, you could use a loopback mount, or similar. Otherwise, |
1457 |
I recommend you run fdisk and mke2fs and untar the archive from within |
1458 |
Debian/DECstation or <a href="#debiancats">Debian/CATS</a> running |
1459 |
inside the emulator. Use your imagination. |
1460 |
<p> |
1461 |
In order to actually boot the system you need to modify /etc/fstab. |
1462 |
Change<pre> |
1463 |
/dev/root / nfs defaults 1 1 |
1464 |
#/dev/sdc1 / ext2 defaults 1 1 |
1465 |
none /proc proc defaults 0 0 |
1466 |
none /dev/pts devpts mode=0622 0 0 |
1467 |
|
1468 |
</pre>to<pre> |
1469 |
#/dev/root / nfs defaults 1 1 |
1470 |
/dev/sda1 / ext2 defaults 1 1 |
1471 |
none /proc proc defaults 0 0 |
1472 |
none /dev/pts devpts mode=0622 0 0 |
1473 |
|
1474 |
</pre>(Note sda1 instead of sdc1.) |
1475 |
</ol> |
1476 |
|
1477 |
<p>To boot Redhat linux from the disk image, use the following command line:<pre> |
1478 |
<b>gxemul -XAe3max -o "root=/dev/sda1 ro" -d redhat_mips.img vmlinux-2.4.31</b> |
1479 |
|
1480 |
</pre> |
1481 |
If you need to boot into single user mode, change options to |
1482 |
<tt><b>-o "root=/dev/sda1 rw init=/bin/sh"</b></tt>. |
1483 |
|
1484 |
|
1485 |
|
1486 |
|
1487 |
|
1488 |
|
1489 |
|
1490 |
<p><br> |
1491 |
<hr> |
1492 |
|
1493 |
|
1494 |
|
1495 |
|
1496 |
|
1497 |
|
1498 |
|
1499 |
<p><br> |
1500 |
<a name="mach"></a> |
1501 |
<h3>Mach/PMAX:</h3> |
1502 |
|
1503 |
Read the following link if you want to know more about Mach in general: |
1504 |
<a href="http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html"> |
1505 |
http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html</a> |
1506 |
|
1507 |
<p> |
1508 |
<font color="#ff0000">NOTE: Mach for DECstation requires some files |
1509 |
(called 'startup' and 'emulator') which I haven't been able to find |
1510 |
on the web. Without these, Mach will not get very far. These |
1511 |
installation instructions are preliminary. |
1512 |
</font> |
1513 |
|
1514 |
<p> |
1515 |
|
1516 |
<a href="20041018-mach_pmax.png"><img src="20041018-mach_pmax_small.png"></a> |
1517 |
|
1518 |
<p> |
1519 |
The following steps should let you experiment with running Mach |
1520 |
for DECstation in the emulator: |
1521 |
|
1522 |
<p> |
1523 |
<ol> |
1524 |
<li>Compile gxemul with cache emulation: (<b>NOTE: --enable-caches</b>)<pre> |
1525 |
<b>./configure --enable-caches; make</b> |
1526 |
|
1527 |
</pre> |
1528 |
<li>Download the pmax binary distribution for Mach 3.0:<pre> |
1529 |
<a href="http://lost-contact.mit.edu/afs/athena/user/d/a/daveg/Info/Links/Mach/src/release/pmax.tar.Z">http://lost-contact.mit.edu/afs/athena/user/d/a/</a> |
1530 |
<a href="http://lost-contact.mit.edu/afs/athena/user/d/a/daveg/Info/Links/Mach/src/release/pmax.tar.Z">daveg/Info/Links/Mach/src/release/pmax.tar.Z</a> |
1531 |
7263343 bytes, md5 = f9d76c240a6e169921a1df99ad560cc0 |
1532 |
|
1533 |
</pre> |
1534 |
<li>Extract the Mach kernel:<pre> |
1535 |
<b>tar xfvz pmax.tar.Z pmax_mach/special/mach.boot.MK83.STD+ANY</b> |
1536 |
|
1537 |
</pre> |
1538 |
<li>Create an empty disk image:<pre> |
1539 |
<b>dd if=/dev/zero of=disk.img bs=1 count=512 seek=400000000</b> |
1540 |
|
1541 |
</pre> |
1542 |
<li>Load the contents of pmax.tar.Z onto the disk image. This is |
1543 |
complicated, and should be described in more detail some time. |
1544 |
For now, use your imagination. (For example using OpenBSD/pmax: |
1545 |
<i>disklabel -E rz1; newfs -O /dev/rz1a; |
1546 |
mount /dev/rz1a /mnt; cd /mnt; download pmax.tar.Z using ftp; |
1547 |
tar xzvf pmax.tar.Z; mv pmax_mach/* .; rmdir pmax_mach; |
1548 |
mkdir mach_servers; |
1549 |
cd mach_servers; |
1550 |
cp ../etc/mach_init .; |
1551 |
cp ../tests/test_service startup; |
1552 |
dd if=/dev/zero of=paging_file bs=65536 count=400; |
1553 |
cd /; sync; umount /mnt</i>) |
1554 |
<p> |
1555 |
<li>Start the emulator with the following command:<pre> |
1556 |
<b>gxemul -e 3max -X -d disk.img \ |
1557 |
pmax_mach/special/mach.boot.MK83.STD+ANY</b> |
1558 |
|
1559 |
</pre> |
1560 |
</ol> |
1561 |
|
1562 |
|
1563 |
|
1564 |
|
1565 |
|
1566 |
|
1567 |
|
1568 |
<p><br> |
1569 |
<a name="openbsdsgiinstall"></a> |
1570 |
<h3>OpenBSD/sgi:</h3> |
1571 |
|
1572 |
<a href="http://www.openbsd.org/sgi.html">OpenBSD/sgi</a> |
1573 |
can (almost) run in GXemul on an emulated O2 (SGI-IP32) with root on nfs. |
1574 |
|
1575 |
<p> |
1576 |
|
1577 |
<a href="20050617-openbsd-sgi.png"><img src="20050617-openbsd-sgi_small.png"></a> |
1578 |
|
1579 |
<p><font color="#ff0000">NOTE: I haven't succeeded all the way with |
1580 |
this yet, and this shows/triggers many bugs in the emulator, but some of |
1581 |
it works.</font> |
1582 |
|
1583 |
<p>GXemul does not yet emulate the AHC PCI SCSI controller in the O2. (I have |
1584 |
mailed Adaptec several times, asking for documentation, but never received |
1585 |
any reply.) OpenBSD/sgi can still run in the emulator, as long as it doesn't |
1586 |
use SCSI. For a simple test with the ramdisk (install) kernel, try dowloading<pre> |
1587 |
<a href="ftp://ftp.se.openbsd.org/pub/OpenBSD/3.7/sgi/bsd.rd">ftp://ftp.se.openbsd.org/pub/OpenBSD/3.7/sgi/bsd.rd</a> |
1588 |
|
1589 |
</pre>and run <b><tt>gxemul -e o2 bsd.rd</tt></b>. |
1590 |
|
1591 |
<p>It might also be possible to netboot. Another emulated machine must |
1592 |
then be used as the nfs root server, and the emulated O2 machine must boot |
1593 |
as a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=diskless&manpath=OpenBSD+Current&format=html">diskless</a> |
1594 |
client. Performing this setup is quite time consuming, but necessary: |
1595 |
|
1596 |
<p> |
1597 |
<ol> |
1598 |
<li>First of all, the "<tt>nfs server</tt>" machine must be set up. |
1599 |
This needs to have a 800 MB <tt>/tftpboot</tt> partition. |
1600 |
<a href="#netbsdpmaxinstall">Install NetBSD/pmax 3.0 from CDROM</a>. |
1601 |
(Don't forget to add the extra partition!) |
1602 |
<p> |
1603 |
<li>Configure the nfs server machine to act as an nfs server. |
1604 |
Start up the emulated DECstation:<pre> |
1605 |
<b>gxemul -e 3max -A -d nbsd_pmax.img</b> |
1606 |
</pre>and enter the following commands as <tt>root</tt> |
1607 |
inside the emulator: |
1608 |
<table border="0"><tr><td><tt> </tt></td><td><pre> |
1609 |
<b>echo hostname=server >> /etc/rc.conf |
1610 |
echo ifconfig_le0=\"inet 10.0.0.2\" >> /etc/rc.conf |
1611 |
echo nameserver 10.0.0.254 >> /etc/resolv.conf |
1612 |
echo 10.0.0.254 > /etc/mygate |
1613 |
echo /tftpboot -maproot=root 10.0.0.1 > /etc/exports |
1614 |
echo rpcbind=YES >> /etc/rc.conf |
1615 |
echo nfs_server=YES >> /etc/rc.conf |
1616 |
echo mountd=YES >> /etc/rc.conf |
1617 |
echo bootparamd=YES >> /etc/rc.conf |
1618 |
printf "client root=10.0.0.2:/tftpboot \\\n swap=10.0.0.2:/tftpboot/swap\n" > /etc/bootparams |
1619 |
echo "10:20:30:00:00:10 client" > /etc/ethers |
1620 |
echo 10.0.0.1 client > /etc/hosts |
1621 |
reboot</b> |
1622 |
</pre></td></tr></table> |
1623 |
<li>Start the DECstation emulation again, and enter the following |
1624 |
commands to download the OpenBSD/sgi distribution:<br>(NOTE: This |
1625 |
takes quite some time, even if you have a fast network connection.) |
1626 |
<table border="0"><tr><td><tt> </tt></td><td><pre> |
1627 |
<b>cd /tftpboot; ftp -i ftp.se.openbsd.org</b> |
1628 |
(log in as anonymous...) |
1629 |
<b>cd pub/OpenBSD/3.7/sgi |
1630 |
mget b*tgz c* e* g* m* |
1631 |
quit |
1632 |
sh |
1633 |
for a in *.tgz; do echo $a; tar zxfp $a; done |
1634 |
echo 10.0.0.2:/tftpboot / nfs rw 0 0 > /tftpboot/etc/fstab |
1635 |
rm *.tgz |
1636 |
dd if=/dev/zero of=swap bs=1024 count=32768 |
1637 |
halt</b> |
1638 |
</pre></td></tr></table> |
1639 |
<li>Download the OpenBSD/sgi GENERIC and RAMDISK kernels:<pre> |
1640 |
<a href="ftp://ftp.se.openbsd.org/pub/OpenBSD/3.7/sgi/bsd">ftp://ftp.se.openbsd.org/pub/OpenBSD/3.7/sgi/bsd</a> |
1641 |
MD5 (bsd) = f16eaf3dcbd51876db7c25f70e6d8a08 |
1642 |
<a href="ftp://ftp.se.openbsd.org/pub/OpenBSD/3.7/sgi/bsd.rd">ftp://ftp.se.openbsd.org/pub/OpenBSD/3.7/sgi/bsd.rd</a> |
1643 |
MD5 (bsd.rd) = 4843e6139d8dd04b03d5f0e33e9a4f7b |
1644 |
|
1645 |
</pre> |
1646 |
<li>Create a configuration file called <tt>config_client</tt>: |
1647 |
<table border="0"><tr><td><tt> </tt></td><td><pre> |
1648 |
<font color="#2020cf">!!gxemul |
1649 |
! |
1650 |
! Configuration file for running OpenBSD/sgi diskless with |
1651 |
! a NetBSD/pmax machine as the nfs server. |
1652 |
! |
1653 |
! This config file is for the client.</font> |
1654 |
|
1655 |
<b>emul( |
1656 |
net( |
1657 |
add_remote("localhost:12444") </b>! the server<b> |
1658 |
local_port(12445) </b>! the client<b> |
1659 |
) |
1660 |
|
1661 |
machine( |
1662 |
name("client machine") |
1663 |
serial_nr(1) |
1664 |
|
1665 |
type("sgi") |
1666 |
subtype("o2") |
1667 |
|
1668 |
</b>! load("bsd")<b> |
1669 |
load("bsd.rd") |
1670 |
) |
1671 |
)</b> |
1672 |
</pre></td></tr></table> |
1673 |
... and another configuration file for the server, |
1674 |
<tt>config_server</tt>: |
1675 |
<table border="0"><tr><td><tt> </tt></td><td><pre> |
1676 |
<font color="#2020cf">!!gxemul</font> |
1677 |
<b>emul( |
1678 |
net( |
1679 |
local_port(12444) </b>! the server<b> |
1680 |
add_remote("localhost:12445") </b>! the client<b> |
1681 |
) |
1682 |
|
1683 |
machine( |
1684 |
name("nfs server") |
1685 |
serial_nr(2) |
1686 |
|
1687 |
type("dec") |
1688 |
subtype("5000/200") |
1689 |
|
1690 |
disk("nbsd_pmax.img") |
1691 |
) |
1692 |
)</b> |
1693 |
</pre></td></tr></table> |
1694 |
<li>Boot the "<tt>nfs server</tt>" and the OpenBSD/sgi |
1695 |
"<tt>client machine</tt>" as two separate emulator instances:<pre> |
1696 |
in one xterm: |
1697 |
<b>gxemul @config_server</b> |
1698 |
|
1699 |
and then, in another xterm: |
1700 |
<b>gxemul @config_client</b> |
1701 |
|
1702 |
</pre> |
1703 |
<li>In the OpenBSD/sgi window, choose "<tt>s</tt>" (for Shell), and type: |
1704 |
<table border="0"><tr><td><tt> </tt></td><td><pre> |
1705 |
<b>ifconfig mec0 10.0.0.1; route add default 10.0.0.254 |
1706 |
mount -v 10.0.0.2:/tftpboot /mnt |
1707 |
cd /mnt/dev; ./MAKEDEV all; cd /; umount /mnt |
1708 |
halt</b> |
1709 |
</pre></td></tr></table> |
1710 |
You might want to log in as <tt>root</tt> on the server machine, and |
1711 |
run <tt>tcpdump -lnvv</tt> or similar, to see that what the client |
1712 |
machine actually does on the network. The <tt>MAKEDEV</tt> script |
1713 |
takes almost forever, so be patient. |
1714 |
</ol> |
1715 |
|
1716 |
|
1717 |
<p><font color="#ff0000">NOTE: Everything up to this point should work. |
1718 |
However, the next step (in gray) doesn't actually work:</font> |
1719 |
|
1720 |
<p><font color="#888888">Once everything has been set up correctly, change |
1721 |
<tt>bsd.rd</tt> in <tt>config_client</tt> to just <tt>bsd</tt> (the GENERIC |
1722 |
kernel). It should now be possible to boot OpenBSD/sgi using the NetBSD/pmax |
1723 |
nfs server. (When asked for "<tt>root device :</tt>" on the OpenBSD machine, |
1724 |
enter <tt><b>mec0</b></tt>.)</font> |
1725 |
|
1726 |
<p><font color="#ff0000">But it doesn't work. Probably because GXemul's |
1727 |
implementation of the mec (ethernet card used in the O2) is too much of |
1728 |
a quick hack. For now, use the <tt>bsd.rd</tt> kernel, and (at every |
1729 |
boot) type:</font><pre> |
1730 |
<b>s</b> (for Shell) |
1731 |
<b>ifconfig mec0 10.0.0.1; route add default 10.0.0.254</b> |
1732 |
<b>mount -v 10.0.0.2:/tftpboot /mnt</b> |
1733 |
<b>cd /mnt; usr/sbin/chroot .</b> |
1734 |
<b>sh etc/rc</b> |
1735 |
</pre> |
1736 |
|
1737 |
<p><font color="#ff0000">This will not cause OpenBSD to be booted |
1738 |
normally, but at least a few basic things will work. |
1739 |
By the way, the emulator performs so poorly, that you will have time to |
1740 |
fetch several cups of coffee for each of the steps above.</font> |
1741 |
|
1742 |
|
1743 |
|
1744 |
|
1745 |
|
1746 |
|
1747 |
|
1748 |
|
1749 |
|
1750 |
<p><br> |
1751 |
<a name="openbsdarcinstall"></a> |
1752 |
<h3>OpenBSD/arc:</h3> |
1753 |
|
1754 |
It is (almost) possible to install and run OpenBSD/arc on an emulated Acer |
1755 |
PICA-61 in the emulator. |
1756 |
|
1757 |
<p><font color="#e00000">Earlier, I had this guest OS listed as |
1758 |
officially working in the emulator, but for several reasons, it has |
1759 |
been moved down here to the "informative-but-not-really-working" |
1760 |
section.</font> |
1761 |
|
1762 |
<p> |
1763 |
<ul> |
1764 |
<li>The last OpenBSD/arc release was 2.3. This means that it is very |
1765 |
old, it would not give a fair picture of what OpenBSD is (if you |
1766 |
are just looking to find out what it is like), and it is not |
1767 |
worth experimenting with it. See |
1768 |
<a href="http://www.openbsd.org/arc.html">http://www.openbsd.org/arc.html</a> |
1769 |
for more information. |
1770 |
<li>OpenBSD/arc was (if I understood things correctly) never really |
1771 |
stable, even on real hardare. Problems with too small an interrupt |
1772 |
stack. Bugs are triggered in the emulator that have to do with |
1773 |
issues such as this. |
1774 |
</ul> |
1775 |
|
1776 |
<p> |
1777 |
|
1778 |
<a href="20041024-openbsd-arc-installed.gif"><img src="20041024-openbsd-arc-installed_small.gif"></a> |
1779 |
|
1780 |
<p> |
1781 |
<font color="#e00000">Currently, I don't test for every release whether |
1782 |
or not OpenBSD/arc can be installed. Releases prior to 0.3.7 |
1783 |
(but probably <i>not</i> 0.3.7) should work. Anyway, here are the |
1784 |
old installation instructions:</font> |
1785 |
|
1786 |
<p>To install OpenBSD/arc onto an emulated harddisk image, follow these |
1787 |
instructions: |
1788 |
|
1789 |
<p> |
1790 |
<ol> |
1791 |
<li>Create an empty harddisk image, which will be the root disk |
1792 |
that OpenBSD installs itself onto:<pre> |
1793 |
<b>dd if=/dev/zero of=obsd_arc.img bs=1024 count=1 seek=700000</b> |
1794 |
|
1795 |
</pre> |
1796 |
<li>Download the entire arc directory from the ftp server: (approx. 75 MB)<pre> |
1797 |
<b>wget -np -l 0 -r <a href="ftp://ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/">ftp://ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/</a></b> |
1798 |
|
1799 |
</pre> |
1800 |
|
1801 |
<li>You now need to make an ISO image of the entire directory you downloaded. |
1802 |
(I recommend using <tt>mkisofs</tt> for that purpose. If you don't |
1803 |
already have <tt>mkisofs</tt> installed on your system, you need |
1804 |
to install it in order to do this.)<pre> |
1805 |
<b>mkisofs -o openbsd_arc_2.3.iso ftp.se.openbsd.org/pub/OpenBSD/</b> |
1806 |
|
1807 |
</pre> |
1808 |
<li>Start the emulator using this command line:<pre> |
1809 |
<b>gxemul -e pica -X -A -d obsd_arc.img -d b:openbsd_arc_2.3.iso -j 2.3/arc/bsd.rd</b> |
1810 |
|
1811 |
</pre> |
1812 |
and proceed like you would do if you were installing OpenBSD |
1813 |
on a real Acer PICA-61. (Answer 'no' when asked if you want to |
1814 |
configure networking, and then install from CD-ROM.) |
1815 |
</ol> |
1816 |
|
1817 |
<p> |
1818 |
Once the install has finished, the following command should let you |
1819 |
boot from the harddisk image: |
1820 |
<p> |
1821 |
<pre> |
1822 |
<b>gxemul -X -e pica -d obsd_arc.img ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd</b> |
1823 |
|
1824 |
</pre> |
1825 |
|
1826 |
The system is very sensitive to (I think) kernel stack overflow, so it |
1827 |
crashes easily. If I remember correctly from mailing lists, this also |
1828 |
happened on real hardware. |
1829 |
|
1830 |
|
1831 |
|
1832 |
|
1833 |
|
1834 |
|
1835 |
|
1836 |
|
1837 |
|
1838 |
|
1839 |
|
1840 |
<p><br> |
1841 |
<a name="debiancats"></a> |
1842 |
<h3>Debian GNU/Linux for CATS:</h3> |
1843 |
|
1844 |
Debian GNU/Linux for CATS (ARM) could <i>theoretically</i> run in GXemul, |
1845 |
however: |
1846 |
|
1847 |
<ul> |
1848 |
<li>The DEC 21143 NIC is not emulated well enough for Linux to accept it. |
1849 |
<li>Development of Debian for CATS seems to have died? The latest |
1850 |
install kernel is quite old. |
1851 |
</ul> |
1852 |
|
1853 |
<p><font color="#ff0000">IT DOES <b>NOT</b> WORK YET!</font> |
1854 |
|
1855 |
<p>The following installation instructions would theoretically work: |
1856 |
|
1857 |
<p> |
1858 |
<ol> |
1859 |
<li>Create an empty harddisk image, which will be the root disk |
1860 |
that Debian installs itself onto:<pre> |
1861 |
<b>dd if=/dev/zero of=debian_cats.img bs=1024 count=1 seek=3300000</b> |
1862 |
|
1863 |
</pre> |
1864 |
<li>Download the tftpboot install kernel:<pre> |
1865 |
<a href="http://ftp.debian.org/debian/dists/oldstable/main/disks-arm/current/cats/tftpboot.img">http://ftp.debian.org/debian/dists/oldstable/main/disks-arm/current/cats/tftpboot.img</a> |
1866 |
|
1867 |
</pre> |
1868 |
<li>Start the installation using the following command line:<pre> |
1869 |
<b>gxemul -XEcats -d debian_cats.img tftpboot.img</b> |
1870 |
|
1871 |
</pre> |
1872 |
</ol> |
1873 |
|
1874 |
<p>It doesn't work, though, because the NIC isn't working well enough. |
1875 |
|
1876 |
<p>The only use of Debian/CATS in the emulator right now is as a way to |
1877 |
manipulate Linux disk images, if you are on a non-Linux host. By choosing |
1878 |
"Execute a shell" in the installer's menu, you can have access to tools such as |
1879 |
fdisk and mke2fs, which are useful for creating Linux paritions on disk images. |
1880 |
|
1881 |
|
1882 |
|
1883 |
|
1884 |
|
1885 |
|
1886 |
|
1887 |
<p><br> |
1888 |
<a name="netbsdnetwinderinstall"></a> |
1889 |
<h3>NetBSD/netwinder:</h3> |
1890 |
|
1891 |
<a href="http://www.netbsd.org/Ports/netwinder/">NetBSD/netwinder</a> |
1892 |
could possibly run in GXemul. |
1893 |
<font color="#ff0000">IT DOES <b>NOT</b> WORK YET!</font> |
1894 |
|
1895 |
<p>It is tricky to install, because there is (as far as I know) no INSTALL |
1896 |
kernel. One way to install the NetBSD/netwinder distribution onto a disk |
1897 |
image is to install the files using another (emulated) machine. |
1898 |
|
1899 |
<p> |
1900 |
The following instructions will let you install the NetBSD/netwinder |
1901 |
distribution onto a disk image, from an emulated DECstation 3MAX machine: |
1902 |
|
1903 |
<p> |
1904 |
<ol> |
1905 |
<li>Install NetBSD/pmax 3.0 according to instructions |
1906 |
<a href="#netbsdpmaxinstall">further up on this page</a>. |
1907 |
<p> |
1908 |
<li>Create an empty harddisk image, which will be the disk image |
1909 |
that you will install NetBSD onto:<pre> |
1910 |
<b>dd if=/dev/zero of=nbsd_netwinder.img bs=1024 count=1 seek=999000</b> |
1911 |
|
1912 |
</pre> |
1913 |
<li>Download the generic kernel and the 2.1 ISO image:<pre> |
1914 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/netwinder/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/netwinder/binary/kernel/netbsd-GENERIC.gz</a> |
1915 |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/2.1/netwindercd.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/2.1/netwindercd.iso</a> |
1916 |
|
1917 |
</pre> |
1918 |
<p> |
1919 |
<li>Start NetBSD/pmax like this:<pre> |
1920 |
<b>gxemul -e 3max -A -d nbsd_pmax.img -d nbsd_netwinder.img -d netwinder.iso</b> |
1921 |
|
1922 |
</pre>and execute the following commands as <tt>root</tt>: |
1923 |
<p><table border="0"><tr><td><tt> </tt></td><td><pre> |
1924 |
<b>newfs /dev/sd1c |
1925 |
mount /dev/cd0c /mnt |
1926 |
mkdir /mnt2; mount /dev/sd1c /mnt2 |
1927 |
cd /mnt2; sh |
1928 |
for a in /mnt/netwinder/binary/sets/*.tgz; do echo $a; tar zxfp $a; done |
1929 |
exit |
1930 |
cd dev; sh ./MAKEDEV all; cd ../etc |
1931 |
echo rc_configured=YES >> rc.conf |
1932 |
echo "/dev/wd0c / ffs rw 1 1" > fstab |
1933 |
cd /; umount /mnt; umount /mnt2; halt</b> |
1934 |
</pre></td></tr></table> |
1935 |
</ol> |
1936 |
|
1937 |
<p>NetBSD/netwinder is now installed on the disk image. But actually |
1938 |
running it does <b>not work yet</b>. Sorry. |
1939 |
|
1940 |
<p>Something like the following command line would be used to start |
1941 |
NetBSD, if it worked:<pre> |
1942 |
<b>gxemul -E netwinder -d nbsd_netwinder.img netbsd-GENERIC.gz</b> |
1943 |
</pre> |
1944 |
|
1945 |
<p>Note: The installation instructions above create a filesystem |
1946 |
<i>without</i> a disklabel, so there is only one ffs partition and no |
1947 |
swap. You will need to enter the following things when booting with the |
1948 |
generic kernel:<pre> |
1949 |
root device (default wd0a): <b>wd0c</b> |
1950 |
dump device (default wd0b): <b>none</b> |
1951 |
file system (default generic): <i>(just press enter)</i> |
1952 |
init path (default /sbin/init): <i>(just press enter)</i> |
1953 |
</pre> |
1954 |
|
1955 |
|
1956 |
|
1957 |
|
1958 |
|
1959 |
|
1960 |
|
1961 |
|
1962 |
</p> |
1963 |
|
1964 |
</body> |
1965 |
</html> |