/[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 20 - (hide annotations)
Mon Oct 8 16:19:23 2007 UTC (13 years, 3 months ago) by dpavlin
File MIME type: text/html
File size: 69353 byte(s)
++ trunk/HISTORY	(local)
$Id: HISTORY,v 1.1055 2005/11/25 22:48:36 debug Exp $
20051031	Adding disassembly support for more ARM instructions (clz,
		smul* etc), and adding a hack to support "new tiny" pages
		for StrongARM.
20051101	Minor documentation updates (NetBSD 2.0.2 -> 2.1, and OpenBSD
		3.7 -> 3.8, and lots of testing).
		Changing from 1-sector PIO mode 0 transfers to 128-sector PIO
		mode 3 (in dev_wdc).
		Various minor ARM dyntrans updates (pc-relative loads from
		within the same page as the instruction are now treated as
		constant "mov").
20051102	Re-enabling instruction combinations (they were accidentally
		disabled).
		Dyntrans TLB entries are now overwritten using a round-robin
		scheme instead of randomly. This increases performance.
		Fixing a typo in file.c (thanks to Chuan-Hua Chang for
		noticing it).
		Experimenting with adding ATAPI support to dev_wdc (to make
		emulated *BSD detect cdroms as cdroms, not harddisks).
20051104	Various minor updates.
20051105	Continuing on the ATAPI emulation. Seems to work well enough
		for a NetBSD/cats installation, but not OpenBSD/cats.
		Various other updates.
20051106	Modifying the -Y command line option to allow scaleup with
		certain graphic controllers (only dev_vga so far), not just
		scaledown.
		Some minor dyntrans cleanups.
20051107	Beginning a cleanup up the PCI subsystem (removing the
		read_register hack, etc).
20051108	Continuing the cleanup; splitting up some pci devices into a
		normal autodev device and some separate pci glue code.
20051109	Continuing on the PCI bus stuff; all old pci_*.c have been
		incorporated into normal devices and/or rewritten as glue code
		only, adding a dummy Intel 82371AB PIIX4 for Malta (not really
		tested yet).
		Minor pckbc fix so that Linux doesn't complain.
		Working on the DEC 21143 NIC (ethernet mac rom stuff mostly).
		Various other minor fixes.
20051110	Some more ARM dyntrans fine-tuning (e.g. some instruction
		combinations (cmps followed by conditional branch within the
		same page) and special cases for DPIs with regform when the
		shifter isn't used).
20051111	ARM dyntrans updates: O(n)->O(1) for just-mark-as-non-
		writable in the generic pc_to_pointers function, and some other
		minor hacks.
		Merging Cobalt and evbmips (Malta) ISA interrupt handling,
		and some minor fixes to allow Linux to accept harddisk irqs.
20051112	Minor device updates (pckbc, dec21143, lpt, ...), most
		importantly fixing the ALI M1543/M5229 so that harddisk irqs
		work with Linux/CATS.
20051113	Some more generalizations of the PCI subsystem.
		Finally took the time to add a hack for SCSI CDROM TOCs; this
		enables OpenBSD to use partition 'a' (as needed by the OpenBSD
		installer), and Windows NT's installer to get a bit further.
		Also fixing dev_wdc to allow Linux to detect ATAPI CDROMs.
		Continuing on the DEC 21143.
20051114	Minor ARM dyntrans tweaks; ARM cmps+branch optimization when
		comparing with 0, and generalizing the xchg instr. comb.
		Adding disassembly of ARM mrrc/mcrr and q{,d}{add,sub}.
20051115	Continuing on various PPC things (BATs, other address trans-
		lation things, various loads/stores, BeBox emulation, etc.).
		Beginning to work on PPC interrupt/exception support.
20051116	Factoring out some code which initializes legacy ISA devices
		from those machines that use them (bus_isa).
		Continuing on PPC interrupt/exception support.
20051117	Minor Malta fixes: RTC year offset = 80, disabling a speed hack
		which caused NetBSD to detect a too fast cpu, and adding a new
		hack to make Linux detect a faster cpu.
		Continuing on the Artesyn PM/PPC emulation mode.
		Adding an Algor emulation skeleton (P4032 and P5064);
		implementing some of the basics.
		Continuing on PPC emulation in general; usage of unimplemented
		SPRs is now easier to track, continuing on memory/exception
		related issues, etc.
20051118	More work on PPC emulation (tgpr0..3, exception handling,
		memory stuff, syscalls, etc.).
20051119	Changing the ARM dyntrans code to mostly use cpu->pc, and not
		necessarily use arm reg 15. Seems to work.
		Various PPC updates; continuing on the PReP emulation mode.
20051120	Adding a workaround/hack to dev_mc146818 to allow NetBSD/prep
		to detect the clock.
20051121	More cleanup of the PCI bus (memory and I/O bases, etc).
		Continuing on various PPC things (decrementer and timebase,
		WDCs on obio (on PReP) use irq 13, not 14/15).
20051122	Continuing on the CPC700 controller (interrupts etc) for PMPPC,
		and on PPC stuff in general.
		Finally! After some bug fixes to the virtual to physical addr
		translation, NetBSD/{prep,pmppc} 2.1 reach userland and are
		stable enough to be interacted with.
		More PCI updates; reverse-endian device access for PowerPC etc.
20051123	Generalizing the IEEE floating point subsystem (moving it out
		from src/cpus/cpu_mips_coproc.c into a new src/float_emul.c).
		Input via slave xterms was sometimes not really working; fixing
		this for ns16550, and a warning message is now displayed if
		multiple non-xterm consoles are active.
		Adding some PPC floating point support, etc.
		Various interrupt related updates (dev_wdc, _ns16550, _8259,
		and the isa32 common code in machine.c).
		NetBSD/prep can now be installed! :-) (Well, with some manual
		commands necessary before running sysinst.) Updating the
		documentation and various other things to reflect this.
20051124	Various minor documentation updates.
		Continuing the work on the DEC 21143 NIC.
20051125	LOTS of work on the 21143. Both OpenBSD and NetBSD work fine
		with it now, except that OpenBSD sometimes gives a time-out
		warning.
		Minor documentation updates.

==============  RELEASE 0.3.7  ==============


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

  ViewVC Help
Powered by ViewVC 1.1.26