/[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

Annotation of /trunk/doc/guestoses.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4 - (hide annotations)
Mon Oct 8 16:18:00 2007 UTC (16 years, 6 months ago) by dpavlin
File MIME type: text/html
File size: 45938 byte(s)
++ trunk/HISTORY	(local)
$Id: HISTORY,v 1.707 2005/04/27 16:37:33 debug Exp $
20050408	Some minor updates to the wdc. Linux now doesn't complain
		anymore if a disk is non-present.
20050409	Various minor fixes (a bintrans bug, and some other things).
		The wdc seems to work with Playstation2 emulation, but there
		is a _long_ annoying delay when disks are detected.
		Fixing a really important bintrans bug (when devices and RAM
		are mixed within 4KB pages), which was triggered with
		NetBSD/playstation2 kernels.
20050410	Adding a dummy dev_ps2_ether (just so that NetBSD doesn't
		complain as much during bootup).
		Symbols starting with '$' are now ignored.
		Renaming dev_ps2_ohci.c to dev_ohci.c, etc.
20050411	Moving the bintrans-cache-isolation check from cpu_mips.c to
		cpu_mips_coproc.c. (I thought this would give a speedup, but
		it's not noticable.)
		Better playstation2 sbus interrupt code.
		Skip ahead many ticks if the count register is read manually.
		(This increases the speed of delay-loops that simply read
		the count register.)
20050412	Updates to the playstation2 timer/interrupt code.
		Some other minor updates.
20050413	NetBSD/cobalt runs from a disk image :-) including userland;
		updating the documentation on how to install NetBSD/cobalt
		using NetBSD/pmax (!).
		Some minor bintrans updates (no real speed improvement) and
		other minor updates (playstation2 now uses the -o options).
20050414	Adding a dummy x86 (and AMD64) mode.
20050415	Adding some (32-bit and 16-bit) x86 instructions.
		Adding some initial support for non-SCSI, non-IDE floppy
		images. (The x86 mode can boot from these, more or less.)
		Moving the devices/ and include/ directories to src/devices/
		and src/include/, respectively.
20050416	Continuing on the x86 stuff. (Adding pc_bios.c and some simple
		support for software interrupts in 16-bit mode.)
20050417	Ripping out most of the x86 instruction decoding stuff, trying
		to rewrite it in a cleaner way.
		Disabling some of the least working CPU families in the
		configure script (sparc, x86, alpha, hppa), so that they are
		not enabled by default.
20050418	Trying to fix the bug which caused problems when turning on
		and off bintrans interactively, by flushing the bintrans cache
		whenever bintrans is manually (re)enabled.
20050419	Adding the 'lswi' ppc instruction.
		Minor updates to the x86 instruction decoding.
20050420	Renaming x86 register name indices from R_xx to X86_R_xx (this
		makes building on Tru64 nicer).
20050422	Adding a check for duplicate MIPS TLB entries on tlbwr/tlbwi.
20050427	Adding screenshots to guestoses.html.
		Some minor fixes and testing for the next release.

==============  RELEASE 0.3.2  ==============


1 dpavlin 2 <html>
2     <head><title>GXemul documentation: Installing and running "guest OSes"</title>
3     </head>
4 dpavlin 4 <body bgcolor="#f8f8f8" text="#000000" link="#4040f0" vlink="#404040" alink="#ff0000">
5     <table border=0 width=100% bgcolor="#d0d0d0"><tr>
6     <td width=100% align=center valign=center><table border=0 width=100%><tr>
7     <td align="left" valign=center bgcolor="#d0efff"><font color="#6060e0" size="6">
8     <b>GXemul documentation:</b></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
9     <font color="#000000" size="6"><b>Installing and running "guest OSes"</b>
10     </font></td></tr></table></td></tr></table><p>
11 dpavlin 2 <!-- The first 10 lines are cut away by the homepage updating script. -->
12    
13    
14     <!--
15    
16 dpavlin 4 $Id: guestoses.html,v 1.35 2005/04/27 15:32:40 debug Exp $
17 dpavlin 2
18     Copyright (C) 2003-2005 Anders Gavare. All rights reserved.
19    
20     Redistribution and use in source and binary forms, with or without
21     modification, are permitted provided that the following conditions are met:
22    
23     1. Redistributions of source code must retain the above copyright
24     notice, this list of conditions and the following disclaimer.
25     2. Redistributions in binary form must reproduce the above copyright
26     notice, this list of conditions and the following disclaimer in the
27     documentation and/or other materials provided with the distribution.
28     3. The name of the author may not be used to endorse or promote products
29     derived from this software without specific prior written permission.
30    
31     THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
32     ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
33     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
34     ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
35     FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36     DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37     OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
39     LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
40     OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
41     SUCH DAMAGE.
42    
43     -->
44    
45     <a href="./">Back to the index</a>
46    
47     <p><br>
48     <h2>Installing and running "guest OSes"</h2>
49    
50     <p>
51     <ul>
52     <li><a href="#generalnotes">General notes on running "guest OSes"</a>
53 dpavlin 4 <li><a href="#netbsdinstall">Installing NetBSD/pmax in GXemul</a>
54     <li><a href="#netbsdarcinstall">Installing NetBSD/arc in GXemul</a>
55     <li><a href="#netbsdhpcmipsinstall">Installing NetBSD/hpcmips in GXemul</a>
56     <li><a href="#netbsdcobaltinstall">Installing NetBSD/cobalt in GXemul</a>
57 dpavlin 2 <!--
58 dpavlin 4 <li><a href="#netbsdsgimips">Running NetBSD/sgimips in GXemul</a>
59 dpavlin 2 -->
60 dpavlin 4 <li><a href="#openbsdinstall">Installing OpenBSD/pmax in GXemul</a>
61     <li><a href="#openbsdarcinstall">Installing OpenBSD/arc in GXemul</a>
62 dpavlin 2 <!--
63 dpavlin 4 <li><a href="#openbsdsgiinstall">Running OpenBSD/sgi in GXemul</a>
64 dpavlin 2 -->
65 dpavlin 4 <li><a href="#ultrixinstall">Installing Ultrix/RISC in GXemul</a>
66     <li><a href="#sprite">Running Sprite for DECstation in GXemul</a>
67     <li><a href="#declinux">Installing Debian GNU/Linux for DECstation in GXemul</a>
68     <li><a href="#declinuxredhat">Running Redhat Linux for DECstation in GXemul</a>
69     <li><a href="#mach">Running Mach/PMAX in GXemul</a>
70 dpavlin 2 </ul>
71    
72    
73    
74    
75    
76    
77     <p><br>
78     <a name="generalnotes"></a>
79     <h3>General notes on running "guest OSes":</h3>
80    
81     The emulator works well enough to run complete operating systems. These
82     are often refered to as "guest" operating systems.
83    
84     <p>
85     Although it is possible to let a guest OS access real hardware, such as
86     harddisks, it is much more flexible and attractive to simulate harddisks
87     using files residing in the host's filesystem. On Unix-like systems, files
88     may contain holes, which makes this really simple. To the guest operating
89     system, the harddisk image looks and acts like a real disk.
90    
91    
92    
93    
94    
95    
96    
97    
98     <p><br>
99     <a name="netbsdinstall"></a>
100 dpavlin 4 <h3>Installing NetBSD/pmax in GXemul:</h3>
101 dpavlin 2
102 dpavlin 4 <p>
103     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
104     <a href="netbsd-pmax-20040630.png"><img src="netbsd-pmax-20040630_small.png"></a>
105    
106     <p>
107 dpavlin 2 To install NetBSD/pmax onto a harddisk image in the emulator, follow these
108     instructions:
109    
110     <p>
111     <ol start="1">
112     <li>Create an empty harddisk image, which will be the root disk
113     that NetBSD installs itself onto:<pre>
114 dpavlin 4 $ <b>dd if=/dev/zero of=nbsd_pmax.img bs=1 count=512 seek=1900000000</b>
115 dpavlin 2
116     </pre>
117     </ol>
118 dpavlin 4
119 dpavlin 2 <p>
120     From this point, there are two separate ways to continue the installation.
121     You can either download a CD-ROM iso image (and let the installation
122     program copy files from the CD-ROM image to the harddisk image), or you
123     can install via ftp. For an installation from a CD-ROM image, follow these
124     steps:
125     <p>
126     <ol start="2">
127    
128     <li>Download a NetBSD CD-ROM iso image:<pre>
129     <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>
130     or
131     <a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/2.0/pmaxcd.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/2.0/pmaxcd.iso</a>
132    
133     </pre>
134     <li>Start the emulator like this:<pre>
135 dpavlin 4 $ <b>gxemul -X -b -E dec -e 3max -d nbsd_pmax.img -d bc:pmaxcd.iso</b>
136 dpavlin 2 </pre>
137     </ol>
138     <p>
139     For an ftp install, substitute steps 2 and 3 above with these:
140     <p>
141     <ol start="2">
142    
143     <li>Download a NetBSD pmax INSTALL kernel, and gunzip it:<pre>
144     <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>
145     or
146     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/pmax/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/pmax/binary/kernel/netbsd-INSTALL.gz</a>
147    
148     $ <b>gunzip netbsd-INSTALL.gz</b>
149    
150     </pre>
151     <li>Start the emulator like this:<pre>
152 dpavlin 4 $ <b>gxemul -X -b -E dec -e 3max -d nbsd_pmax.img -O netbsd-INSTALL</b>
153 dpavlin 2 </pre>
154     </ol>
155    
156     <p>
157     (If you don't want to use a graphical framebuffer during the install,
158     you can remove <b>-X</b> from the command line, but then make sure you
159     choose 'vt100' when prompted with which terminal type to use, and not
160     'rcons'.)
161    
162     <p>
163     Then proceed like you would do if you were installing NetBSD on a real
164     DECstation. If you are installing from the network, then suitable networking
165     parameters are as follows:<pre>
166     Which device shall I use? [le0]: <b>le0</b>
167     ..
168     Your DNS domain: <b>mydomain.com</b>
169     Your host name: <b>foo</b>
170     Your IPv4 number: <b>10.0.0.1</b>
171     IPv4 Netmask [0xff000000]: <b>0xff000000</b>
172     IPv4 gateway: <b>10.0.0.254</b>
173     IPv4 name server: <b>10.0.0.254</b>
174     </pre>
175    
176     <p>
177     (If using 10.0.0.254 as the nameserver fails, then try entering the
178     IP number of a real-world nameserver instead.)
179    
180     <p>
181     When the installation is completed, the following command should start
182     NetBSD from the harddisk image:<pre>
183 dpavlin 4 $ <b>gxemul -X -b -M64 -E dec -e 3max -d nbsd_pmax.img</b>
184 dpavlin 2 </pre>
185    
186     <p>
187     Use <b>startx</b> to start X windows.
188    
189     <p>
190     <font color="#ff0000">NOTE:</font> For some reason, NetBSD 2.0 doesn't
191     work with X out-of-the-box on pmax. It seems that this has to do with a
192     switch to WSCONS. For now, if you want X, then try NetBSD 1.6.2.
193    
194     <p>
195     If you want to run without the X framebuffer, use this instead:<pre>
196 dpavlin 4 $ <b>gxemul -E dec -e 3max -b -d nbsd_pmax.img</b>
197 dpavlin 2 </pre>
198    
199    
200    
201    
202    
203    
204    
205     <p><br>
206     <a name="netbsdarcinstall"></a>
207 dpavlin 4 <h3>Installing NetBSD/arc in GXemul:</h3>
208 dpavlin 2
209 dpavlin 4 It is possible to run NetBSD/arc on an emulated Acer PICA-61 in the emulator.
210 dpavlin 2
211     <p>
212 dpavlin 4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
213     <a href="20041024-netbsd-arc-installed.gif"><img src="20041024-netbsd-arc-installed_small.gif"></a>
214    
215     <p>
216 dpavlin 2 To install NetBSD/arc from a CDROM image onto an emulated harddisk image,
217     follow these instructions:
218    
219     <p>
220     <ol start="1">
221     <li>Create an empty harddisk image, which will be the root disk
222     that NetBSD installs itself onto:<pre>
223     $ <b>dd if=/dev/zero of=nbsd_arc.img bs=1024 count=1 seek=900000</b>
224    
225     </pre>
226     <li>Download a NetBSD/arc CDROM image from ftp:<pre>
227     <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>
228    
229     </pre>
230     <li>Download a NetBSD/arc installation (ramdisk) kernel,
231     and gunzip it:<pre>
232     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/arc/binary/kernel/netbsd.RAMDISK.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/arc/binary/kernel/netbsd.RAMDISK.gz</a>
233    
234     </pre>
235     <li>Start the emulator using this command line:<pre>
236     $ <b>gxemul -E arc -e pica -b -d nbsd_arc.img -d arccd.iso netbsd.RAMDISK</b>
237    
238     </pre>
239     <li>From now on, you have to use your imagination, as there is no
240     automatic installation program for NetBSD/arc. Here are some tips
241     and hints on how you can proceed with the install:<pre>
242     $ <b>mount /dev/cd0a /mnt2</b>
243     $ <b>disklabel -i -I sd0</b> (for example 'a', '4.2BSD', '1c',
244     '700M', 'b', 'swap', '701M', '$', 'P', 'W', 'y', and 'Q')
245     $ <b>newfs /dev/sd0a</b>
246     $ <b>mount /dev/sd0a /mnt</b>
247     $ <b>cd /mnt</b>
248     $ <b>for a in /mnt2/arc/binary/sets/*.tgz; do tar xvzpf $a; done</b>
249     $ <b>cd dev; sh MAKEDEV all</b>
250     $ <b>cd ../etc; echo "rc_configured=YES" &gt;&gt; rc.conf</b>
251     $ <b>cat > /mnt/etc/fstab</b>
252     /dev/sd0a / ffs rw 1 1
253     /dev/sd0b none swap sw 0 0
254     (ctrl-d)
255     $ <b>cd /; umount /mnt; umount /mnt2</b>
256     $ <b>halt</b>
257    
258     </pre>
259     <li>Download a generic NetBSD/arc kernel,
260     and gunzip it:<pre>
261     <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>
262    
263     </pre>
264     </ol>
265    
266     <p>
267     You can now use the generic NetBSD/arc kernel to boot from the harddisk
268     image, using the following command:
269     <p>
270     <pre>
271     $ <b>gxemul -E arc -e pica -b -d nbsd_arc.img netbsd-GENERIC</b>
272    
273     </pre>
274    
275     <p>
276     Using <b>-b</b> (enabling dynamic binary translation), as in the instructions
277     above, is not 100% stable. If you experiment weird crashes, try removing that
278     option and try again.
279    
280    
281    
282    
283    
284    
285    
286     <p><br>
287     <a name="netbsdhpcmipsinstall"></a>
288 dpavlin 4 <h3>Installing NetBSD/hpcmips in GXemul:</h3>
289 dpavlin 2
290     It is possible to install NetBSD/hpcmips onto a disk image, on an an
291     emulated MobilePro 770, 780, 800, or 880. The emulator treats the
292     different machine models as being almost identical; the most important
293     difference is regarding the framebuffer.
294    
295     <p>
296     <table border="0">
297     <tr>
298     <td width="80">&nbsp;</td>
299     <td><u>Model:</u></td>
300     <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
301     <td><u>Framebuffer size/depth:</u></td>
302     <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
303     <td><u>Framebuffer address:</u></td>
304     </tr>
305     <tr>
306     <td></td>
307     <td>MobilePro 770 (<super>*2</super>)</td>
308     <td></td>
309     <td>640 x 240, 16 bits</td>
310     <td></td>
311     <td>0xa000000</td>
312     </tr>
313     <tr>
314     <td></td>
315     <td>MobilePro 780</td>
316     <td></td>
317     <td>640 x 240, 16 bits</td>
318     <td></td>
319     <td>0xa180100 (<super>*</super>)</td>
320     </tr>
321     <tr>
322     <td></td>
323     <td>MobilePro 800</td>
324     <td></td>
325     <td>800 x 600, 16 bits</td>
326     <td></td>
327     <td>0xa000000</td>
328     </tr>
329     <tr>
330     <td></td>
331     <td>MobilePro 880</td>
332     <td></td>
333     <td>800 x 600, 16 bits</td>
334     <td></td>
335     <td>0xa0ea600 (<super>*</super>)</td>
336     </tr>
337     </table>
338    
339     <p>
340     (<super>*</super>) = not aligned at a 4 KB boundary, so it will not work
341     efficiently with the current bintrans system. Using this mode will still
342     work, but each load and store will be emulated much more slowly than is
343     possible with an aligned framebuffer.
344    
345     <p>
346     (<super>*2</super>) = The MobilePro 770's cursor keys work differently
347     than the other models, for some reason. (This is a known bug.)
348    
349     <p>
350 dpavlin 4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
351     <a href="20050427-netbsd-hpcmips-1.png"><img src="20050427-netbsd-hpcmips-1_small.png"></a>
352     &nbsp;&nbsp;&nbsp;
353     <a href="20050427-netbsd-hpcmips-2.png"><img src="20050427-netbsd-hpcmips-2_small.png"></a>
354    
355     <p>
356 dpavlin 2 These instructions show an example of how to install
357     NetBSD/hpcmips on an emulated MobilePro 800:
358    
359     <p>
360     <ol start="1">
361     <li>Create an empty harddisk image, which will be the root disk
362     that you will install NetBSD/hpcmips onto:<pre>
363     $ <b>dd if=/dev/zero of=nbsd_hpcmips.img bs=1024 count=1 seek=1990000</b>
364    
365     </pre>
366     <li>Download the installation kernel (and gunzip it) and an ISO
367     image of NetBSD 2.0 for hpcmips:<pre>
368     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/installation/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/installation</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/installation/netbsd.gz">netbsd.gz</a>
369     <a href="ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0/">ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0</a>/<a href="ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0/hpcmipscd.iso">hpcmipscd.iso</a>
370    
371     </pre>(You may want to choose a mirror closer to you, if .se is slow.)
372     <p>
373     <li>Start the installation like this:<pre>
374     $ <b>gxemul -E hpc -e mobilepro800 -b -X -d nbsd_hpcmips.img -d hpcmipscd.iso netbsd</b>
375    
376     </pre>
377     and proceed like you would do if you were installing NetBSD on a real
378     MobilePro 800. (Install onto wd0, choose "Use entire disk" when
379     doing the MBR partitioning, and choose wd1d (not cd0c) as the
380     CDROM device to install from.)
381     </ol>
382    
383     <p>
384     If everything worked, NetBSD should now be installed on the disk image.
385     GXemul does not (yet) support reading the kernel directly from the
386     disk image, so you need to download a generic kernel separately:<pre>
387     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/binary/kernel/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/binary/kernel</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/binary/kernel/netbsd-GENERIC.gz">netbsd-GENERIC.gz</a>
388    
389     </pre>
390    
391     <p>
392     Once you have gunziped the generic kernel, you can now use it to boot from
393     the harddisk image, using the following command:<pre>
394     $ <b>gxemul -E hpc -e mobilepro800 -b -X -d nbsd_hpcmips.img netbsd-GENERIC</b>
395    
396     </pre>
397    
398     <p>
399     When you have logged in as root, you can use <b>startx</b> to start X
400     Windows. (Note: There is no mouse support yet; you can only use
401     keyboard input.)
402    
403    
404    
405    
406    
407    
408 dpavlin 4
409    
410     <p><br>
411     <a name="netbsdcobaltinstall"></a>
412     <h3>Installing NetBSD/cobalt in GXemul:</h3>
413    
414     <a href="http://www.netbsd.org/Ports/cobalt/">NetBSD/cobalt</a> is tricky
415     to install, because the Cobalt machines were designed for Linux, and not
416     very flexible. There is no INSTALL kernel for NetBSD/cobalt. One way to
417     install the NetBSD/cobalt distribution onto a disk image is to do it from
418     another (emulated) machine.
419    
420     <p>
421     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
422     <a href="20050413-netbsd-cobalt.png"><img src="20050413-netbsd-cobalt_small.png"></a>
423    
424     <p>
425     The following instructions will let you install NetBSD/cobalt onto a disk
426     image, from an emulated DECstation 3MAX machine:
427    
428     <p>
429     <ol>
430     <li>Create an empty harddisk image, which will be the disk image
431     that you will install NetBSD/cobalt onto:<pre>
432     $ <b>dd if=/dev/zero of=nbsd_cobalt.img bs=1024 count=1 seek=1999000</b>
433    
434     </pre>
435     <li>Install NetBSD/pmax 2.0 according to instructions further up
436     on this page.
437     <p>
438     <li>Download the generic kernel for Cobalt (and gunzip it) and
439     the 2.0 ISO image:<pre>
440     <a href="ftp://ftp.se.netbsd.org/pub/NetBSD/NetBSD-2.0/cobalt/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.se.netbsd.org/pub/NetBSD/NetBSD-2.0/cobalt/binary/kernel/netbsd-GENERIC.gz</a>
441     <a href="ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0/cobaltcd.iso">ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0/cobaltcd.iso</a>
442    
443     </pre>(You may want to choose a mirror closer to you, if .se is slow.)
444     <p>
445     <li>Start NetBSD/pmax like this:<pre>
446     $ <b>gxemul -b -Edec -e3max -d nbsd_pmax.img -d cobaltcd.iso -d nbsd_cobalt.img</b>
447    
448     </pre>
449     <li>Log in as root (on the emulated 3MAX machine), and execute the
450     following commands: (adjust according to taste)<pre>
451     # <b>newfs /dev/sd1c</b>
452     # <b>mount /dev/cd0c /mnt</b>
453     # <b>mkdir /mnt2; mount /dev/sd1c /mnt2</b>
454     # <b>cd /mnt2; sh</b>
455     # <b>for a in /mnt/cobalt/binary/sets/*.tgz; do echo $a; tar zxfp $a; done</b>
456     # <b>exit</b>
457     # <b>cd dev; sh ./MAKEDEV all; cd ../etc</b>
458     # <b>echo rc_configured=YES >> rc.conf</b>
459     # <b>echo "/dev/wd0d / ffs rw 1 1" > fstab</b>
460     # <b>cd /; umount /mnt; umount /mnt2; halt</b>
461     </pre>
462     </ol>
463    
464     <p>
465     You should now be able to boot NetBSD/cobalt like this:<pre>
466     $ <b>gxemul -b -M128 -E cobalt -d nbsd_cobalt.img netbsd-GENERIC</b>
467     </pre>
468    
469     Note that the installation instructions above create a filesystem
470     <i>without</i> a disklabel, so there is only one ffs partition and no
471     swap. You will need to enter the following things when booting with the
472     generic kernel:<pre>
473     root device (default wd0a): <b>wd0d</b>
474     dump device (default wd0b): <b>none</b>
475     file system (default generic): <b>ffs</b>
476     </pre>
477    
478    
479    
480    
481    
482    
483    
484 dpavlin 2 <!--
485    
486     <p><br>
487     <a name="netbsdsgimips"></a>
488 dpavlin 4 <h3>Running NetBSD/sgimips in GXemul:</h3>
489 dpavlin 2
490     <a href="http://www.netbsd.org/Ports/sgimips/">NetBSD/sgimips</a>
491     can theoretically run in GXemul on an emulated O2 (SGI-IP32) with root on nfs.
492    
493     <p>
494     <font color="#ff0000">NOTE: I haven't succeeded with this yet.</font>
495    
496     <p>
497     See the section on <a href="#openbsdsgiinstall">how to run OpenBSD/sgi</a>
498     for more information.
499    
500     <p>
501     TODO...
502    
503     <pre>
504     cd /x; ftp -i ftp.se.netbsd.org
505     ..
506     cd pub/NetBSD/NetBSD-2.0/sgimips/binary/sets
507     mget *.tgz
508     exit
509     sh
510     for a in etc.tgz base.tgz comp.tgz; do tar zxvfp $a; done
511    
512     </pre>
513    
514     -->
515    
516    
517    
518    
519    
520    
521    
522     <p><br>
523     <a name="openbsdinstall"></a>
524 dpavlin 4 <h3>Installing OpenBSD/pmax in GXemul:</h3>
525 dpavlin 2
526     Installing OpenBSD/pmax is a bit harder than installing NetBSD/pmax.
527     You should first read the section above on how to install NetBSD/pmax,
528     before continuing here. If you have never installed OpenBSD on any
529     architecture, then you need a great deal of patience to do this.
530     If, on the other hand you are used to installing OpenBSD, then
531     this should be no problem for you.
532    
533     <p>
534 dpavlin 4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
535     <a href="20040710-openbsd-pmax.png"><img src="20040710-openbsd-pmax_small.png"></a>
536     &nbsp;&nbsp;&nbsp;
537     <a href="openbsd-pmax-20040710.png"><img src="openbsd-pmax-20040710_small.png"></a>
538    
539     <p>
540 dpavlin 2 OpenBSD/pmax died at release 2.8 of OpenBSD, so you should be
541     aware of the fact that this will not give you an up-to-date OpenBSD
542     system.
543    
544     <p>
545     Following these instructions <i>might</i> work. If not, then use
546     common sense and imagination to modify them as you see fit.
547    
548     <p>
549     <ol>
550     <li>Create an empty harddisk image, which will be the root disk
551     that OpenBSD installs itself onto:<pre>
552 dpavlin 4 $ <b>dd if=/dev/zero of=obsd_pmax.img bs=1 count=512 seek=900000000</b>
553 dpavlin 2
554     </pre>
555     <li>Download the entire pmax directory from the ftp server: (approx. 99 MB)<pre>
556     $ <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>
557    
558     </pre>
559    
560     <li>Execute the following commands:<pre>
561     $ <b>mv ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/simpleroot28.fs.gz .</b>
562     $ <b>gunzip simpleroot28.fs.gz</b>
563     $ <b>chmod +w simpleroot28.fs</b> &lt;--- make sure
564    
565     </pre>
566     <li>You now need to make an ISO image of the entire directory you downloaded.
567     I recommend using <b>mkisofs</b> for that purpose. If you don't already
568     have mkisofs installed on your system, you need to install that in
569     order to do this.<pre>
570     $ <b>mkisofs -o openbsd_pmax_2.8.iso ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax</b>
571    
572     </pre>
573     <li>Start the emulator with all three (!) disk images:<pre>
574 dpavlin 4 $ <b>gxemul -E dec -e 3max -b -d obsd_pmax.img -d b:simpleroot28.fs -j bsd -d c:openbsd_pmax_2.8.iso</b>
575 dpavlin 2
576     </pre>
577     (If you add -X, you will run with the graphical framebuffer. This is <i>REALLY</i> slow
578     because the console has to scroll a lot during the install. I don't recommend it.)
579     <p>
580     <li>Go on with the installation as you would do if you were installing on a real machine.
581     If you are not used to the OpenBSD installer, then this will most likely
582     be a very uncomfortable experience. Some important things to keep in mind are:
583     <ul>
584     <li>rz0 is the rootdisk you wish to install onto.
585     <li>rz1 is the simpleroot image.
586     <li>rz2 is the CDROM containing the "install sets".
587     <li>When asked for the "<b>root device?</b>", enter <b>rz1</b>.
588     <li>At "<b>Enter pathname of shell or RETURN for sh:</b>", press enter.
589     <li>At the # prompt, do the following:<pre>
590     $ <b>fsck /dev/rz1a</b> (and mark the filesystem as clean)
591     $ <b>mount /dev/rz1a /</b>
592     $ <b>mount -t kernfs kern kern</b>
593     $ <b>./install</b>
594    
595     </pre>
596     and proceed with the install. Good luck. :-)
597     <li>Answer "<b>y</b>" when asked if you wish to configure the network.
598     (See the section about installing NetBSD/pmax for suitable
599     network settings.)
600     <li>Install from "<b>c</b>" (cdrom), choose "<b>rz2</b>" as the cdrom device, and "<b>/</b>" as
601     the directory containing the install sets.
602     </ul>
603     <p>
604     <li>
605     For some unknown reason, the install script does not set the root
606     password! The first time you boot up OpenBSD after the install, you
607     need to go into single user mode and run <b>passwd root</b> to set
608     the root password, or you will not be able to log in at all!
609     <pre>
610 dpavlin 4 $ <b>gxemul -E dec -e 3max -b -d obsd_pmax.img -d 2c:openbsd_pmax_2.8.iso -j bsd -o '-s'</b>
611 dpavlin 2 </pre>
612     While you are at it, you might want to extract the X11 install sets
613     as well, as the installer seems to ignore them too. (Perhaps due to a bug
614     in the installer, perhaps because of the way I used mkisofs.)
615     <p>
616     Execute the following commands in the emulator:
617     <pre>
618     # <b>fsck /dev/rz0a</b>
619     # <b>mount /</b>
620     # <b>passwd root</b>
621    
622     # <b>cd /</b>
623     # <b>mount -t cd9660 /dev/rz2c /mnt</b>
624     # <b>sh</b>
625     # <b>for a in /mnt/[xX]*; do tar zxvf $a; done</b>
626     # <b>ln -s /usr/X11R6/bin/Xcfbpmax /usr/X11R6/bin/X</b>
627     # <b>ln -s /dev/fb0 /dev/mouse</b>
628     # <b>echo /usr/X11R6/lib >> /etc/ld.so.conf</b>
629     # <b>ldconfig</b>
630    
631     # <b>sync</b>
632     # <b>halt</b>
633     </pre>
634     </ol>
635    
636     <p>
637     NOTE: It is also possible to install via ftp instead of using a CDROM image.
638     This is not much less awkward, you still need the simpleroot filesystem
639     image, and you still have to manually add the X11 install sets and set the
640     root password, and so on.
641    
642     <p>
643     Once you have completed the installation procedure, the following command
644     will let you boot from the new rootdisk image:
645     <pre>
646 dpavlin 4 $ <b>gxemul -E dec -e 3max -b -X -M64 -o '-aN' -d obsd_pmax.img -j bsd</b>
647 dpavlin 2 </pre>
648    
649     <p>
650     OpenBSD/pmax seems to work fine with dynamic binary translation (enabled
651     by the <b>-b</b> command line option).
652    
653     <p>
654     (Normally, you would be asked about which root device to use (rz0), but
655     using -o '-aN' supresses that.)
656     <p>
657     When asked for which terminal type to use, when logging in as root,
658     enter <b>rcons</b> if you are using the graphical framebuffer,
659     <b>vt100</b> for text-mode.
660     <br>Use <b>startx</b> to start X windows.
661    
662    
663    
664    
665    
666    
667     <p><br>
668     <a name="openbsdarcinstall"></a>
669 dpavlin 4 <h3>Installing OpenBSD/arc in GXemul:</h3>
670 dpavlin 2
671     It is possible to run OpenBSD/arc on an emulated Acer PICA-61 in the
672     emulator.
673    
674     <p>
675 dpavlin 4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
676     <a href="20041024-openbsd-arc-installed.gif"><img src="20041024-openbsd-arc-installed_small.gif"></a>
677    
678     <p>
679 dpavlin 2 (You should be aware of the fact that OpenBSD for the ARC platform died at
680     release 2.3, so this will not give you an up-to-date OpenBSD system.
681     See
682     <a href="http://www.openbsd.org/arc.html">http://www.openbsd.org/arc.html</a>
683     for more information.)
684    
685     <p>
686     To install OpenBSD/arc onto an emulated harddisk image, follow these
687     instructions:
688    
689     <p>
690     <ol>
691     <li>Create an empty harddisk image, which will be the root disk
692     that OpenBSD installs itself onto:<pre>
693     $ <b>dd if=/dev/zero of=obsd_arc.img bs=1024 count=1 seek=700000</b>
694    
695     </pre>
696     <li>Download the entire arc directory from the ftp server: (approx. 75 MB)<pre>
697     $ <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>
698    
699     </pre>
700    
701     <li>You now need to make an ISO image of the entire directory you downloaded.
702     I recommend using <b>mkisofs</b> for that purpose. If you don't already
703     have mkisofs installed on your system, you need to install that in
704     order to do this.<pre>
705     $ <b>mkisofs -o openbsd_arc_2.3.iso ftp.se.openbsd.org/pub/OpenBSD/</b>
706    
707     </pre>
708     <li>Start the emulator using this command line:<pre>
709     $ <b>gxemul -X -b -E arc -e pica -d obsd_arc.img -d openbsd_arc_2.3.iso \
710     ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd.rd.elf</b>
711    
712     </pre>
713     and proceed like you would do if you were installing OpenBSD
714     on a real Acer PICA-61. (Answer 'no' when asked if you want to
715     configure networking, and then install from CD-ROM.)
716     </ol>
717    
718     <p>
719     Once the install has finished, the following command should let you
720     boot from the harddisk image:
721     <p>
722     <pre>
723     $ <b>gxemul -X -b -E arc -e pica -d obsd_arc.img ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd</b>
724    
725     </pre>
726    
727     <p>
728     (The <b>-b</b> command line option enables dynamic binary translation,
729     which isn't always 100% stable, so if things seem buggy you might want
730     to try to remove that from the command line.)
731    
732    
733    
734    
735    
736     <!--
737    
738     <p><br>
739     <a name="openbsdsgiinstall"></a>
740 dpavlin 4 <h3>Running OpenBSD/sgi in GXemul:</h3>
741 dpavlin 2
742     <a href="http://www.openbsd.org/sgi.html">OpenBSD/sgi</a>
743     can theoretically run in GXemul on an emulated O2 (SGI-IP32) with root on nfs.
744    
745     <p>
746     <font color="#ff0000">NOTE: I haven't succeeded with this yet.</font>
747    
748     <p>
749     <font color="#0000f0">
750     [&nbsp;2005-02-09: There is no stable release yet of OpenBSD/sgi, but there
751     are -current snapshots available on ftp sites.&nbsp;]</font>
752    
753     <p>
754     GXemul does not yet emulate the AHC PCI SCSI controller in the O2, so
755     another emulated machine must be used as the nfs root server, and the
756     emulated O2 machine must boot as a
757     <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=diskless&manpath=OpenBSD+Current&format=html">diskless</a>
758     client. Performing this setup is very time consuming, but necessary.
759    
760     <p>
761     <ol>
762     <li><a href="#netbsdinstall">Install NetBSD/pmax 1.6.2</a> or some other
763     similar OS inside the emulator. This will be the "nfs server" machine.
764     <p>
765     <li>Configure the nfs server machine to act as an nfs server.<pre>
766     # <b>echo hostname=blahblah &gt;&gt; /etc/rc.conf</b>
767     # <b>echo ifconfig_le0="inet 10.0.0.2" &gt;&gt; /etc/rc.conf</b>
768     # <b>echo nameserver 10.0.0.254 &gt;&gt; /etc/rc.conf</b>
769     # <b>echo 10.0.0.254 &gt; /etc/mygate</b>
770     # <b>mkdir /x; echo /x -maproot=root 10.0.0.1 &gt; /etc/exports</b>
771     # <b>echo rpcbind=YES &gt;&gt; /etc/rc.conf</b>
772     # <b>echo nfs_server=YES &gt;&gt; /etc/rc.conf</b>
773     # <b>echo mountd=YES &gt;&gt; /etc/rc.conf</b>
774     # <b>echo bootparamd=YES &gt;&gt; /etc/rc.conf</b>
775     # <b>printf "client root=10.0.0.2:/x \\\n swap=10.0.0.2:/x/swap\n" &gt; /etc/bootparams</b>
776     # <b>echo 10.0.0.1 client &gt; /etc/hosts</b>
777    
778     Reboot. Then download the OpenBSD/sgi distribution:
779    
780     # <b>cd /x; ftp -i ftp.se.openbsd.org</b>
781     ...
782     <b>cd pub/OpenBSD/snapshots/sgi</b>
783     <b>mget *</b>
784    
785     # <b>sh</b>
786     # <b>for a in base* etc* misc*; do tar vzxfp $a; done</b>
787     # <b>dd if=/dev/zero of=swap bs=1024 count=16384</b>
788    
789     </pre>
790     <p>
791     <li>Create a configuration file along these lines:<pre>
792     <font color="#2020cf">!!gxemul
793     !
794     ! Configuration file for running OpenBSD/sgi diskless with
795     ! a NetBSD/pmax machine as the nfs server.
796     !
797     ! Change the filenames to suit your setup.</font>
798    
799     <b>emul(
800     net()
801    
802     machine(
803     name("client machine")
804     type("sgi")
805     subtype("ip32")
806     bintrans(yes)
807     load("openbsd-sgi-20050202-bsd")
808     start_paused(yes)
809     )
810    
811     machine(
812     name("nfs server")
813     type("dec")
814     subtype("5000/200")
815     bintrans(yes)
816     disk("nbsd_pmax.img")
817     )
818     )</b>
819    
820     </pre>
821     <li>Boot the nfs server and the OpenBSD/sgi client machine like this:<pre>
822     $ <b>gxemul @myconf</b>
823    
824     </pre>
825     You might want to log in as root on the server machine, and
826     run <b>tcpdump -lnvv</b> or similar, to see that what the client
827     machine actually does on the network.
828     <p>
829     The OpenBSD box ("client machine") will be paused, so when you
830     are ready to unpause it, press CTRL-C in the main GXemul
831     window and use the <b>focus</b> and <b>pause</b> commands to
832     unpause the main CPU in that machine, and then <b>continue</b>
833     to resume execution.
834     <p>
835     When asked for "root device :", enter <b>mec0</b>.
836     </ol>
837    
838     <p>
839     TODO...
840    
841     -->
842    
843    
844    
845    
846    
847    
848     <p><br>
849     <a name="ultrixinstall"></a>
850 dpavlin 4 <h3>Installing Ultrix/RISC in GXemul:</h3>
851 dpavlin 2
852 dpavlin 4 Ultrix 4.x can run in GXemul on an emulated DECstation 5000/200.
853 dpavlin 2
854 dpavlin 4 <p>
855     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
856     <a href="20040504-ultrix45-boot1.png"><img src="20040504-ultrix45-boot1_small.gif"></a>
857     &nbsp;&nbsp;&nbsp;
858     <a href="ultrix4.5-20040706.png"><img src="ultrix4.5-20040706_small.gif"></a>
859    
860     <p>
861     The following instructions should let you install Ultrix onto a disk image:
862    
863 dpavlin 2 <ol>
864     <li>Create an empty harddisk image, which will be the root disk
865     that Ultrix installs itself onto:<pre>
866     $ <b>dd if=/dev/zero of=rootdisk.img bs=1024 count=1 seek=800000</b>
867    
868     </pre>
869     <li>Place your Ultrix installation media in your CDROM drive. (I'm assuming
870     it is called /dev/cd0c here, replace that with the name of your
871     CDROM drive, or the name of a .iso image file.)
872     Then, start the emulator like this:<pre>
873     $ <b>gxemul -X -b -M64 -E dec -e 3max -d rootdisk.img -d bc:/dev/cd0c -j vmunix</b>
874    
875     </pre>
876     <li>Once the first stage of the installation is done (restoring the root
877     filesystem), you need to restart the emulator, booting from the
878     new rootdisk, to continue the installation process.
879     This is done by removing the bootflag ('b') from the second
880     diskimage argument:<pre>
881     $ <b>gxemul -X -b -M64 -E dec -e 3max -d rootdisk.img -d c:/dev/cd0c -j vmunix</b>
882    
883     </pre>
884     </ol>
885    
886     <p>
887     When the installation is completed, the following command should start
888     Ultrix from the harddisk image:<pre>
889     $ <b>gxemul -X -b -M64 -E dec -e 3max -j vmunix -d rootdisk.img</b>
890     </pre>
891    
892     <p>
893     Ultrix mostly seems to work with dynamic binary translation (enabled by
894     the <b>-b</b> command line option). If you have a very fast
895     host machine, and use bintrans, you might experience a weird timer related
896     bug, which makes it impossible to logon to the system. It is triggered
897     when the emulation goes faster than any real DECstation machine was
898     capable of running. A temporary workaround is to add <b>-I33000000</b>
899     to fix the emulated clock speed to 33 million instructions per emulated
900     second. (When using -CR4400, -I16000000 should be used instead.)
901    
902     <p>
903     You can experiment with adding <b>-Z2</b> (for emulating a
904     dual-headed workstation) or even <b>-Z3</b> (tripple-headed), and also the
905     <b>-Y2</b> option for scaling down the framebuffer windows by a factor 2x2.
906     There is also a <b>-z</b> option for supplying names of X11 displays to
907     use. The following example starts Ultrix on an emulated tripple-headed
908     workstation, on three different displays (remote1:0.0, localhost:0.0, and
909     remote2:0.0), using no scaledown:<pre>
910     $ <b>gxemul -M64 -bN -E dec -e 3max -jgenvmunix -d rootdisk.img \
911     -XZ3 -z remote1:0.0 -z localhost -z remote2:0.0</b>
912     </pre>
913    
914     <p>
915     The X11 displays may differ in bit depth and endianness. Unfortunately,
916     there is no way yet to set the scaledown factor on a per-window basis, so
917     the scaledown factor affects all windows.
918    
919     <p>
920     (If you didn't use -Z<i>n</i> during the installation, and
921     compiled your own /vmunix, then it will not contain support for multiple
922     graphics cards. To overcome this problem, use the generic kernel, <b>-j
923     genvmunix</b>, whenever you are running the emulator with a different
924     setup than the one you used when Ultrix was installed.)
925    
926 dpavlin 4 <p>
927     A note for the historically interested: OSF/1 for MIPS was quite similar
928     to Ultrix, so that is possible to run as well. If you are unsuccessful
929     in installing Ultrix or OSF/1 directly in the emulator, you can always
930     install it on your real machine onto a real SCSI disk, and then copy the
931     contents of that SCSI disk into a file (using <b>dd(1)</b>), and use
932     that file as a disk image file in the emulator.
933 dpavlin 2
934    
935    
936    
937    
938    
939     <p><br>
940     <a name="sprite"></a>
941 dpavlin 4 <h3>Running Sprite for DECstation in GXemul:</h3>
942 dpavlin 2
943     Sprite was a research operating system at the University of Berkeley.
944     The Unix Heritage Society (TUHS, <a href="http://www.tuhs.org">www.tuhs.org</a>)
945     has made available a copy of a Sprite harddisk image for a DECstation 5000/200.
946     If you want to find out more about Sprite in general, read
947     <a href="http://www.cs.berkeley.edu/projects/sprite/retrospective.html">
948     http://www.cs.berkeley.edu/projects/sprite/retrospective.html</a>.
949    
950     <p>
951 dpavlin 4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
952     <a href="20040711-sprite-1.png"><img src="20040711-sprite-1_small.png"></a>
953     &nbsp;&nbsp;&nbsp;
954     <a href="sprite-20040711.png"><img src="sprite-20040711_small.png"></a>
955    
956     <p>
957 dpavlin 2 The following instructions should let you run Sprite in the emulator:
958    
959     <p>
960     <ol>
961     <li>Download the Sprite harddisk image using ftp or http:<pre>
962     <a href="http://www.es.embnet.org/Services/ftp/misc/TUHS/other_os/Sprite/">http://www.es.embnet.org/Services/ftp/misc/TUHS/other_os/Sprite</a>/<a href="http://www.es.embnet.org/Services/ftp/misc/TUHS/other_os/Sprite/ds5000.bt">ds5000.bt</a>
963     or <a href="ftp://ftp.es.embnet.org/misc/TUHS/other_os/Sprite/ds5000.bt">ftp://ftp.es.embnet.org/misc/TUHS/other_os/Sprite/ds5000.bt</a>
964     83973120 bytes, MD5 = ec84eeeb20fe77b758370d5e312e4a5e
965    
966     </pre>
967     <li>Start the emulator with the following command line:<pre>
968     $ <b>gxemul -X -b -E dec -e 3max -M128 -d ds5000.bt -j vmsprite -o ''</b>
969    
970     </pre>
971     </ol>
972    
973     <p>
974     The first time you boot up with the disk image, you will be asked a number
975     of questions regarding network settings. If you feel like entering correct
976     values, then you should use the following:
977     <p>
978    
979     <pre>
980     Your machine's Ethernet address: 10:20:30:40:50:60
981     Your machine's IP: 10.0.0.1
982     Subnet mask: 0xff000000
983     Gateway's Ethernet address: 60:50:40:30:20:10
984     Gateway's IP: 10.0.0.254
985     </pre>
986    
987     <p>
988     Unfortunately, at the end of <a href="http://www.es.embnet.org/Services/ftp/misc/TUHS/other_os/Sprite/boot.txt">
989     http://www.es.embnet.org/Services/ftp/misc/TUHS/other_os/Sprite/boot.txt</a>, the
990     following sad statement can be found:
991     <pre>
992     The bootable Sprite image is meant to be a demonstration of Sprite, not
993     a robust Sprite system. There are several missing things, such as
994     floating point and network support.
995     </pre>
996    
997     <p>
998     Once you are logged in as root, running <b>xinit</b> will start the X11
999     environment.
1000    
1001     <p>
1002     Sprite works fine with dynamic binary translation (enabled by
1003     adding <b>-b</b> to the command line options).
1004    
1005    
1006    
1007    
1008    
1009     <p><br>
1010     <a name="declinux"></a>
1011 dpavlin 4 <h3>Installing Debian GNU/Linux for DECstation in GXemul:</h3>
1012 dpavlin 2
1013 dpavlin 4 <font color="#ef0000">NOTE: This is experimental, and <i>extremely</i>
1014 dpavlin 2 unstable. During my tests, even pressing the wrong key during the install
1015     (for example the wrong cursor key) can cause a kernel Oops.
1016     I <i>think</i> this has to do with interrupts from the serial controller.
1017     Hopefully using the -U command line option will reduce the risk for such
1018     crashes. (I haven't had time to come up with a clean solution to this yet;
1019     it feels like a buffer overflow in Linux' serial driver for the 5000/200,
1020     but it is also likely that it is a bug in GXemul.)
1021     </font>
1022    
1023     <p>
1024 dpavlin 4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1025     <a href="20041212-debian_1.png"><img src="20041212-debian_1_small.gif"></a>
1026     &nbsp;&nbsp;&nbsp;
1027     <a href="20041212-debian_2.png"><img src="20041212-debian_2_small.gif"></a>
1028     &nbsp;&nbsp;&nbsp;
1029     <a href="20041213-debian_3.png"><img src="20041213-debian_3_small.gif"></a>
1030     &nbsp;&nbsp;&nbsp;
1031     <a href="20041213-debian_4.png"><img src="20041213-debian_4_small.gif"></a>
1032    
1033     <p>
1034 dpavlin 2 The following steps should let you install Debian GNU/Linux for DECstation
1035     onto a harddisk image:
1036    
1037     <p>
1038     <ol>
1039     <li>Create an empty harddisk image, which will be the root disk
1040     that Debian installs itself onto:<pre>
1041     $ <b>dd if=/dev/zero of=debian.img bs=1024 count=1 seek=2000000</b>
1042    
1043     </pre>
1044     <li>Download an install kernel:<pre>
1045     <a href="http://http.us.debian.org/debian/dists/testing/main/installer-mipsel/current/images/r3k-kn02/boot.img">http://http.us.debian.org/debian/dists/testing/main/</a>
1046     <a href="http://http.us.debian.org/debian/dists/testing/main/installer-mipsel/current/images/r3k-kn02/boot.img">installer-mipsel/current/images/r3k-kn02/boot.img</a>
1047     or
1048     <a href="http://http.us.debian.org/debian/dists/unstable/main/installer-mipsel/current/images/r3k-kn02/boot.img">http://http.us.debian.org/debian/dists/unstable/main/</a>
1049     <a href="http://http.us.debian.org/debian/dists/unstable/main/installer-mipsel/current/images/r3k-kn02/boot.img">installer-mipsel/current/images/r3k-kn02/boot.img</a>
1050    
1051     </pre>
1052     depending on whether you want to install Debian "Testing" or
1053     "Unstable".
1054     <p>
1055     <li>For a text-mode installation, start the emulator like this:<pre>
1056     $ <b>gxemul -E dec -e 3max -b -U -M64 -o 'console=ttyS3' -d debian.img -O boot.img</b>
1057    
1058     </pre>
1059     </ol>
1060    
1061     <p>
1062     Debian GNU/Linux on DECstation works reasonably fine with dynamic
1063     binary translation, enabled by the <b>-b</b> command line option. (Without
1064     this option, the emulator might be less buggy, but also too slow to be
1065     useful when running Linux as a guest OS.)
1066    
1067     <p>
1068     (If you want to, you can try <b>-X</b> instead of <b>-o 'console=ttyS3'</b> on
1069     the command line. This will cause Linux to use the graphical framebuffer.
1070     Unfortunately, Linux does not seem to have a driver for the DZ11 keyboard
1071     controller yet, so you cannot interact with the system. You will see the
1072     penguin in the upper lefthand corner while booting, and nicely rendered Unicode
1073     characters, but that's about it.)
1074    
1075     <p>
1076     You need to enter some values during the installation procedure, for example
1077     network settings. The following should work:
1078     <p>
1079     <pre>
1080     DHCP: No, choose "Configure network manually"
1081     IP address: 10.0.0.1
1082     Netmask: 255.0.0.0
1083     Gateway: 10.0.0.254
1084     Name server addresses: 10.0.0.254
1085     </pre>
1086    
1087     <p>
1088     <ol start="4">
1089     <li>Once the first phase of the install has finished, the following command
1090     should let you boot into Debian, and perform post-install
1091     configuration:<pre>
1092     $ <b>gxemul -E dec -e 3max -U -b -M64 -o 'console=ttyS3' -d debian.img</b>
1093    
1094     </pre>
1095     </ol>
1096    
1097     <p>
1098     It seems that there's a problem with getting a login prompt on serial
1099     console (at least when I've done test installs), so when the installation
1100     is finished and you're supposed to get a login prompt, you need to press
1101     CTRL-C and type <b>quit</b>, and then:
1102    
1103     <p>
1104     <ol start="5">
1105     <li>Download a normal kernel (<i>not</i> a RAMDISK kernel):<pre>
1106     <a href="http://http.us.debian.org/debian/dists/testing/main/installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02">http://http.us.debian.org/debian/dists/testing/main/</a>
1107     <a href="http://http.us.debian.org/debian/dists/testing/main/installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02">installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02</a>
1108    
1109     </pre>
1110     <li>Boot Debian using the following command line:<pre>
1111     $ <b>gxemul -E dec -e 3max -U -b -M64 -o \
1112     'console=ttyS3 root=/dev/sda1 rw init=/bin/sh' \
1113     -d debian.img vmlinux-2.4.27-r3k-kn02</b>
1114    
1115     </pre>
1116     You'll enter single-user mode. You need to add a line to
1117     /etc/inittab, to enable logins via serial console.<pre>
1118     sh-2.05b# <b>echo 'T3:23:respawn:/sbin/getty -L ttyS3 9600 vt100' >> /etc/inittab</b>
1119     sh-2.05b# <b>echo 'ttyS3' >> /etc/securetty</b>
1120     sh-2.05b# <b>sync; umount /</b>
1121     </pre>
1122     </ol>
1123    
1124     <p>
1125     The system should now be ready for everyday use.
1126    
1127     <p>
1128     Use this command to boot from the completely installed disk image:<pre>
1129     $ <b>gxemul -E dec -e 3max -U -b -M64 -o 'console=ttyS3' -d debian.img</b>
1130    
1131     </pre>
1132    
1133     <p>
1134     [&nbsp;<font color="#ff0000">UPDATE 2005-01-19:</font>&nbsp;
1135     Kaj-Michael Lang noticed that the current CVS-version of
1136     <a href="http://www.linux-mips.org/">linux-mips</a> has
1137     support for keyboards now, on DECstation 5000/200, so it is
1138     possible to run Debian GNU/Linux with framebuffer/keyboard.
1139     (Add -X (or -XY2) and remove the console=ttyS3 option.)
1140     He has made a kernel available here:
1141     <a href="http://home.tal.org/~milang/o2/patches/vmlinux-2.4.29-rc2-r3k-mipsel-decstation">
1142     http://home.tal.org/~milang/o2/patches/vmlinux-2.4.29-rc2-r3k-mipsel-decstation</a>
1143     It has other problems (ethernet doesn't seem to work, for
1144     example), but at least it doesn't Oops that often.&nbsp;]
1145    
1146    
1147    
1148    
1149    
1150    
1151     <p><br>
1152     <a name="declinuxredhat"></a>
1153 dpavlin 4 <h3>Running Redhat Linux for DECstation in GXemul:</h3>
1154 dpavlin 2
1155     <font color="#ff0000">NOTE: This is experimental, and <i>extremely</i>
1156     unstable. Read the note about '-U' in the section on how to install
1157     Debian.
1158     </font>
1159    
1160 dpavlin 4 <p>
1161     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1162     <a href="20041129-redhat_mips.png"><img src="20041129-redhat_mips_small.png"></a>
1163 dpavlin 2
1164     <p>
1165     The following steps should let you run Redhat Linux for DECstation in GXemul:
1166    
1167     <p>
1168     <ol>
1169     <li>Download a kernel. This is a Debian kernel, but it works fine:<pre>
1170     <a href="http://http.us.debian.org/debian/dists/testing/main/installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02">http://http.us.debian.org/debian/dists/testing/main/</a>
1171     <a href="http://http.us.debian.org/debian/dists/testing/main/installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02">installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02</a>
1172    
1173     </pre>
1174     <li>Download a root filesystem tree:<pre>
1175     <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>
1176     <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>
1177     19486676 bytes, md5 = 5bcb725c90209479cd7ead8ad0c4a414
1178    
1179     </pre>
1180     <li>This is the tricky part: Create an ext2 filesystem image called redhat.img using
1181     the filesystem tree you just downloaded. The disk image should have a MS-DOS
1182     partition table (!), and then one or more ext2 partitions.
1183     (Use loopback mount, or similar. This is probably easiest to do on a Linux host.)
1184     However, in order to actually boot the system you need to modify /etc/fstab.
1185     Change<pre>
1186     /dev/root / nfs defaults 1 1
1187     #/dev/sdc1 / ext2 defaults 1 1
1188     none /proc proc defaults 0 0
1189     none /dev/pts devpts mode=0622 0 0
1190    
1191     </pre>to<pre>
1192     #/dev/root / nfs defaults 1 1
1193     /dev/sda1 / ext2 defaults 1 1
1194     none /proc proc defaults 0 0
1195     none /dev/pts devpts mode=0622 0 0
1196    
1197     </pre>(Note sda1 instead of sdc1.)
1198     <p>
1199     <li>To boot Linux, start the emulator like this:<pre>
1200     $ <b>gxemul -E dec -e 3max -U -b -M128 -o \
1201     "console=ttyS3 root=/dev/sda1 ro" -d redhat.img vmlinux-2.4.27-r3k-kn02</b>
1202    
1203     </pre>
1204     </ol>
1205    
1206     <p>
1207     If you need to boot into single user mode, try the following:<pre>
1208     $ <b>gxemul -E dec -e 3max -U -b -o "console=ttyS3 root=/dev/sda1 rw init=/bin/sh" \
1209     -d redhat.img vmlinux-2.4.27-r3k-kn02</b>
1210    
1211     </pre>
1212    
1213     <p>
1214     Redhat Linux on DECstation in R3000 mode should work fine with dynamic binary
1215     translation (enabled by the <b>-b</b> command line option).
1216    
1217     <p>
1218     NOTE: You can add <b>-X</b> and remove <b>console=ttyS3</b> from the command
1219     line, if you want to use a graphical framebuffer. Unfortunately, Linux
1220     doesn't have support for keyboards on DECstation 5000/200 yet, so you cannot
1221     actually interact with the sytem. :-(
1222    
1223     <p>
1224     [&nbsp;<font color="#ff0000">UPDATE 2005-01-22:</font>&nbsp;
1225     Read the 2005-01-19 update in the Debian section above, and then, if
1226     you do not need ethernet support, try Kaj-Michael Lang's kernel compiled
1227     from <a href="http://www.linux-mips.org/">linux-mips</a>' CVS.
1228     <a href="http://home.tal.org/~milang/o2/patches/vmlinux-2.4.29-rc2-r3k-mipsel-decstation">
1229     http://home.tal.org/~milang/o2/patches/vmlinux-2.4.29-rc2-r3k-mipsel-decstation</a>
1230     It should work with framebuffer/keyboard.&nbsp;]
1231    
1232    
1233    
1234    
1235    
1236    
1237     <p><br>
1238     <a name="mach"></a>
1239 dpavlin 4 <h3>Running Mach/PMAX in GXemul:</h3>
1240 dpavlin 2
1241     Read the following link if you want to know more about Mach in general:
1242     <a href="http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html">
1243     http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html</a>
1244    
1245     <p>
1246     <font color="#ff0000">NOTE: Mach for DECstation requires some files
1247     (called 'startup' and 'emulator') which I haven't been able to find
1248     on the web. Without these, Mach will not get very far. These
1249     installation instructions are preliminary.
1250     </font>
1251    
1252     <p>
1253 dpavlin 4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1254     <a href="20041018-mach_pmax.png"><img src="20041018-mach_pmax_small.png"></a>
1255    
1256     <p>
1257 dpavlin 2 The following steps should let you experiment with running Mach
1258     for DECstation in the emulator:
1259    
1260     <p>
1261     <ol>
1262     <li>Compile gxemul with cache emulation: (<b>NOTE: --enable-caches</b>)<pre>
1263     $ <b>./configure --enable-caches; make</b>
1264    
1265     </pre>
1266     <li>Download the pmax binary distribution for Mach 3.0:<pre>
1267     <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/daveg/Info/Links/Mach/src/release/pmax.tar.Z</a>
1268     7263343 bytes, md5 = f9d76c240a6e169921a1df99ad560cc0
1269    
1270     </pre>
1271     <li>Extract the Mach kernel:<pre>
1272     $ <b>tar xfvz pmax.tar.Z pmax_mach/special/mach.boot.MK83.STD+ANY</b>
1273    
1274     </pre>
1275     <li>Create an empty disk image:<pre>
1276     $ <b>dd if=/dev/zero of=disk.img bs=1 count=512 seek=400000000</b>
1277    
1278     </pre>
1279     <li>Load the contents of pmax.tar.Z onto the disk image. This is
1280     complicated, and should be described in more detail some time.
1281     For now, use your imagination. (For example using OpenBSD/pmax:
1282     <i>disklabel -E rz1; newfs -O /dev/rz1a;
1283     mount /dev/rz1a /mnt; cd /mnt; download pmax.tar.Z using ftp;
1284     tar xzvf pmax.tar.Z; mv pmax_mach/* .; rmdir pmax_mach;
1285     mkdir mach_servers;
1286     cd mach_servers;
1287     cp ../etc/mach_init .;
1288     cp ../tests/test_service startup;
1289     dd if=/dev/zero of=paging_file bs=65536 count=400;
1290     cd /; sync; umount /mnt</i>)
1291     <p>
1292     <li>Start the emulator with the following command:<pre>
1293     $ <b>gxemul -E dec -e 3max -X -d disk.img \
1294     pmax_mach/special/mach.boot.MK83.STD+ANY</b>
1295    
1296     </pre>
1297     </ol>
1298    
1299    
1300    
1301    
1302    
1303    
1304    
1305    
1306     </p>
1307    
1308     </body>
1309     </html>

  ViewVC Help
Powered by ViewVC 1.1.26