/[gxemul]/trunk/doc/guestoses.html
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/doc/guestoses.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 18 - (show annotations)
Mon Oct 8 16:19:11 2007 UTC (16 years, 5 months ago) by dpavlin
File MIME type: text/html
File size: 65345 byte(s)
++ trunk/HISTORY	(local)
$Id: HISTORY,v 1.1004 2005/10/27 14:01:10 debug Exp $
20051011        Passing -A as the default boot arg for CATS (works fine with
                OpenBSD/cats).
20051012	Fixing the VGA cursor offset bug, and speeding up framebuffer
		redraws if character cells contain the same thing as during
		the last redraw.
20051013	Adding a slow strd ARM instruction hack.
20051017	Minor updates: Adding a dummy i80321 Verde controller (for
		XScale emulation), fixing the disassembly of the ARM "ldrd"
		instruction, adding "support" for less-than-4KB pages for ARM
		(by not adding them to translation tables).
20051020	Continuing on some HPCarm stuff. A NetBSD/hpcarm kernel prints
		some boot messages on an emulated Jornada 720.
		Making dev_ram work better with dyntrans (speeds up some things
		quite a bit).
20051021	Automatically generating some of the most common ARM load/store
		multiple instructions.
20051022	Better statistics gathering for the ARM load/store multiple.
		Various other dyntrans and device updates.
20051023	Various minor updates.
20051024	Continuing; minor device and dyntrans fine-tuning. Adding the
		first "reasonable" instruction combination hacks for ARM (the
		cores of NetBSD/cats' memset and memcpy).
20051025	Fixing a dyntrans-related bug in dev_vga. Also changing the
		dyntrans low/high access notification to only be updated on
		writes, not reads. Hopefully it will be enough. (dev_vga in
		charcell mode now seems to work correctly with both reads and
		writes.)
		Experimenting with gathering dyntrans statistics (which parts
		of emulated RAM that are actually executed), and adding
		instruction combination hacks for cache cleaning and a part of
		NetBSD's scanc() function.
20051026	Adding a bitmap for ARM emulation which indicates if a page is
		(specifically) user accessible; loads and stores with the t-
		flag set can now use the translation arrays, which results in
		a measurable speedup.
20051027	Dyntrans updates; adding an extra bitmap array for 32-bit
		emulation modes, speeding up the check whether a physical page
		has any code translations or not (O(n) -> O(1)). Doing a
		similar reduction of O(n) to O(1) by avoiding the scan through
		the translation entries on a translation update (32-bit mode
		only).
		Various other minor hacks.
20051029	Quick release, without any testing at all.

==============  RELEASE 0.3.6.2  ==============


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

  ViewVC Help
Powered by ViewVC 1.1.26