/[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 6 - (hide annotations)
Mon Oct 8 16:18:11 2007 UTC (16 years, 5 months ago) by dpavlin
File MIME type: text/html
File size: 45738 byte(s)
++ trunk/HISTORY	(local)
$Id: HISTORY,v 1.772 2005/06/04 12:02:16 debug Exp $
20050428	Disabling the "-fmove-all-movables" option in the configure
		script, because it causes the compile to fail on OpenBSD/sgi.
20050502	Minor updates.
20050503	Removing the WRT54G mode (it was bogus anyway), and adding a
		comment about Windows NT for MIPS in doc/experiments.html.
		Minor updates to the x86 instruction decoding.
20050504	Adding some more x86 instructions.
		Adding support for reading files from ISO9660 CDROMs (including
		gzipped files). It's an ugly hack, but it seems to work.
		Various other minor updates (dev_vga.c, pc_bios.c etc).
20050505	Some more x86-related updates.
		Beginning (what I hope will be) a major code cleanup phase.
		"bootris" (an x86 bootsector) runs :-)
20050506	Adding some more x86 instructions.
20050507	tmpnam => mkstemp.
		Working on a hack to allow VGA charcells to be shown even when
		not running with X11.
		Adding more x86 instructions.
20050508	x86 32-bit SIB addressing fix, and more instructions.
20050509	Adding more x86 instructions.
20050510	Minor documentation updates, and other updates (x86 stuff etc.)
20050511	More x86-related updates.
20050513	Various updates, mostly x86-related. (Trying to fix flag 
		calculation, factoring out the ugly shift/rotate code, and
		some other things.)
20050514	Adding support for loading some old i386 a.out executables.
		Finally beginning the cleanup of machine/PROM/bios dependant
		info.
		Some minor documentation updates.
		Trying to clean up ARCBIOS stuff a little.
20050515	Trying to make it possible to actually use more than one disk
		type per machine (floppy, ide, scsi).
		Trying to clean up the kbd vs PROM console stuff. (For PC and
		ARC emulation modes, mostly.)
		Beginning to add an 8259 interrupt controller, and connecting
		it to the x86 emulation.
20050516	The first x86 interrupts seem to work (keyboard stuff).
		Adding a 8253/8254 programmable interval timer skeleton.
		FreeDOS now reaches a command prompt and can be interacted
		with.
20050517	After some bugfixes, MS-DOS also (sometimes) reaches a
		command prompt now.
		Trying to fix the pckbc to work with MS-DOS' keyb.com, but no
		success yet.
20050518	Adding a simple 32-bit x86 MMU skeleton.
20050519	Some more work on the x86 stuff. (Beginning the work on paging,
		and various other fixes).
20050520	More updates. Working on dev_vga (4-bit graphics modes), adding
		40 columns support to the PC bios emulation.
		Trying to add support for resizing windows when switching
		between graphics modes.
20050521	Many more x86-related updates.
20050522	Correcting the initial stack pointer's sign-extension for
		ARCBIOS emulation (thanks to Alec Voropay for noticing the
		error).
		Continuing on the cleanup (ARCBIOS etc).
		dev_vga updates.
20050523	More x86 updates: trying to add some support for protected mode
		interrupts (via gate descriptors) and many other fixes.
		More ARCBIOS cleanup.
		Adding a device flag which indicates that reads cause no
		side-effects. (Useful for the "dump" command in the debugger,
		and other things.)
		Adding support for directly starting up x86 ELFs, skipping the
		bootloader stage. (Most ELFs, however, are not suitable for
		this.)
20050524	Adding simple 32-bit x86 TSS task switching, but no privilege
		level support yet.
		More work on dev_vga. A small "Copper bars" demo works. :-)
		Adding support for Trap Flag (single-step exceptions), at least
		in real mode, and various other x86-related fixes.
20050525	Adding a new disk image prefix (gH;S;) which can be used to
		override the default nr of heads and sectors per track.
20050527	Various bug fixes, more work on the x86 mode (stack change on
		interrupts between different priv.levels), and some minor
		documentation updates.
20050528	Various fixes (x86 stuff).
20050529	More x86 fixes. An OpenBSD/i386 bootfloppy reaches userland
		and can be interacted with (although there are problems with
		key repetition). NetBSD/i386 triggers a serious CISC-related
		problem: instruction fetches across page boundaries, where
		the later part isn't actually part of the instruction.
20050530	Various minor updates. (Documentation updates, etc.)
20050531	Adding some experimental code (experiments/new_test_*) which
		could be useful for dynamic (but not binary) translation in
		the future.
20050602	Adding a dummy ARM skeleton.
		Fixing the pckbc key repetition problem (by adding release
		scancodes for all keypresses).
20050603	Minor updates for the next release.
20050604	Release testing. Minor updates.

==============  RELEASE 0.3.3  ==============

20050604	There'll probably be a 0.3.3.1 release soon, with some very
		very tiny updates.


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

  ViewVC Help
Powered by ViewVC 1.1.26