/[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 36 - (hide annotations)
Mon Oct 8 16:21:34 2007 UTC (13 years, 3 months ago) by dpavlin
File MIME type: text/html
File size: 95241 byte(s)
++ trunk/HISTORY	(local)
$Id: HISTORY,v 1.1497 2007/03/18 03:41:36 debug Exp $
20070224	Minor update to the initialization of the ns16550 in
		machine_walnut.c, to allow that machine type to boot with the
		new interrupt system (although it is still a dummy machine).
		Adding a wdc at 0x14000000 to machine_landisk.c, and fixing
		the SCIF serial interrupts of the SH4 cpu enough to get
		NetBSD/landisk booting from a disk image :-)  Adding a
		preliminary install instruction skeleton to guestoses.html.
20070306	Adding SH-IPL+G PROM emulation, and also passing the "end"
		symbol in r5 on bootup, for Landisk emulation. This is enough
		to get OpenBSD/landisk to install :)  Adding a preliminary
		install instruction skeleton to the documentation. SuperH
		emulation is still shaky, though :-/
20070307	Fixed a strangeness in memory_sh.c (read/write was never
		returned for any page). (Unknown whether this fixes any actual
		problems, though.)
20070308	dev_ram.c fix: invalidate code translations on writes to
		RAM, emulated as separate devices. Linux/dreamcast gets
		further in the boot process than before, but still bugs out
		in userland.
		Fixing bugs in the "stc.l gbr,@-rN" and "ldc.l @rN+,gbr" SuperH 
		instructions (they should NOT check the MD bit), allowing the
		Linux/dreamcast Live CD to reach userland correctly :-)
20070310	Changing the cpu name "Alpha" in src/useremul.c to "21364" to
		unbreak userland syscall emulation of FreeBSD/Alpha binaries.
20070314	Applying a patch from Michael Yaroslavtsev which fixes the
		previous Linux lib64 patch to the configure script.
20070315	Adding a (dummy) sun4v machine type, and SPARC T1 cpu type.
20070316	Creating a new directory, src/disk, and moving diskimage.c
		to it. Separating out bootblock loading stuff from emul.c into
		new files in src/disk.
		Adding some more SPARC registers.
20070318	Preparing/testing for a minirelease, 0.4.4.1.

==============  RELEASE 0.4.4.1  ==============


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 22 <b>Gavare's eXperimental Emulator:</b></font><br>
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 36 $Id: guestoses.html,v 1.209 2007/03/18 03:33:25 debug Exp $
14 dpavlin 2
15 dpavlin 34 Copyright (C) 2003-2007 Anders Gavare. All rights reserved.
16 dpavlin 2
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 32 <li><a href="#netbsdpmaxinstall">NetBSD/pmax 3.1 or 1.6.2</a>
52 dpavlin 24 <li><a href="#netbsdarcinstall">NetBSD/arc 1.6.2</a>
53 dpavlin 32 <li><a href="#netbsdhpcmipsinstall">NetBSD/hpcmips 3.1</a>
54     <li><a href="#netbsdcobaltinstall">NetBSD/cobalt 3.1</a>
55     <li><a href="#netbsdevbmipsinstall">NetBSD/evbmips 3.1</a>
56     <li><a href="#netbsdalgorinstall">NetBSD/algor 3.1</a>
57     <li><a href="#netbsdsgimips">NetBSD/sgimips 3.1</a>
58     <li><a href="#netbsdcatsinstall">NetBSD/cats 3.1</a>
59 dpavlin 24 <li><a href="#netbsdevbarminstall">NetBSD/evbarm 2.1</a>
60 dpavlin 32 <li><a href="#netbsdnetwinderinstall">NetBSD/netwinder 3.1</a>
61 dpavlin 24 <li><a href="#netbsdprepinstall">NetBSD/prep 2.1</a>
62 dpavlin 34 <li><a href="#netbsdmacppcinstall">NetBSD/macppc 3.1</a>
63 dpavlin 36 <li><a href="dreamcast.html#netbsd_generic_md">NetBSD/dreamcast 3.1</a>
64     <li><a href="dreamcast.html#linux_live_cd">Linux/dreamcast</a>
65 dpavlin 24 <li><a href="#openbsdpmaxinstall">OpenBSD/pmax 2.8-BETA</a>
66 dpavlin 32 <li><a href="#openbsdcatsinstall">OpenBSD/cats 4.0</a>
67 dpavlin 24 <li><a href="#ultrixinstall">Ultrix/RISC 4.5</a>
68 dpavlin 10 <li><a href="#sprite">Sprite for DECstation</a>
69     <li><a href="#declinux">Debian GNU/Linux for DECstation</a>
70     <li><a href="#declinuxredhat">Redhat Linux for DECstation</a>
71 dpavlin 2 </ul>
72    
73    
74    
75    
76    
77    
78     <p><br>
79     <a name="generalnotes"></a>
80     <h3>General notes on running "guest OSes":</h3>
81    
82     The emulator works well enough to run complete operating systems. These
83 dpavlin 24 are often refered to as <i>guest</i> operating systems, in contrast to the
84     <i>host</i> operating system which the emulator is running under.
85 dpavlin 2
86 dpavlin 24 <p>Although it is possible to let a guest OS access real hardware, such as
87     harddisks, it is much more flexible and attractive to simulate harddisks
88     using files residing in the host's filesystem. On Unix-like systems, files
89     may contain holes, which makes this really simple. To the guest operating
90 dpavlin 2 system, the harddisk image looks and acts like a real disk.
91    
92 dpavlin 24 <p>The version numbers of the various operating systems were the latest
93     versions that worked satisfactory with GXemul at the time this page was
94     updated; if new versions have been released since then, they might work as
95     well.
96 dpavlin 2
97 dpavlin 24 <p>In addition to the "working" guest operating systems listed above,
98 dpavlin 34 you might find the following information interesting:
99 dpavlin 2
100 dpavlin 24 <ul>
101     <li><a href="#mach">Mach/PMAX</a>
102     <li><a href="#openbsdsgiinstall">OpenBSD/sgi</a>
103     <li><a href="#openbsdarcinstall">OpenBSD/arc 2.3</a>
104     <li><a href="#debiancats">Debian GNU/Linux for CATS</a>
105 dpavlin 32 <!-- <li><a href="#linux_malta">Linux/Malta</a> -->
106 dpavlin 28 <li><a href="#linux_qemu_mips">Linux/QEMU_MIPS</a>
107     <li><a href="#windows_nt_mips">Windows NT/MIPS</a>
108 dpavlin 30 <li><a href="#netbsdbeboxinstall">NetBSD/bebox 19981119</a>
109 dpavlin 36 <li><a href="#netbsdlandiskinstall">NetBSD/landisk</a>
110     <li><a href="#openbsdlandiskinstall">OpenBSD/landisk</a>
111 dpavlin 24 </ul>
112 dpavlin 2
113 dpavlin 34 <p><b><font color="#ff0000">NOTE:</b>
114     Some of these sections may not be relevant to this
115     specific release of GXemul,</font> for example some of these
116     modes may be legacy modes that worked before but not any longer,
117     or are not yet working but could be in the future.
118    
119 dpavlin 24 <p>Some operating systems are listed with a version number <i>less</i>
120     than what was available at the time of this GXemul release (e.g.
121     NetBSD/prep). The reasons for this is because of incompleteness in
122     GXemul's machine, device, and/or processor implementations.
123 dpavlin 2
124    
125    
126    
127 dpavlin 24
128    
129    
130 dpavlin 2 <p><br>
131 dpavlin 22 <a name="netbsdpmaxinstall"></a>
132 dpavlin 10 <h3>NetBSD/pmax:</h3>
133 dpavlin 2
134 dpavlin 24 <p><a href="http://www.netbsd.org/Ports/pmax/">NetBSD/pmax</a> was the
135 dpavlin 28 first guest OS that could be
136     <a href="http://mail-index.netbsd.org/port-pmax/2004/04/18/0000.html">installed</a>
137     onto a disk image in GXemul. The device emulation of the DECstation
138     5000/200 is reasonably complete; it should be enough to emulate a
139     networked X-windows-capable workstation.
140 dpavlin 24
141 dpavlin 32 <p>NetBSD/pmax 1.6.2 works perfectly with X out-of-the-box. Unfortunately,
142     newer NetBSD releases have changed slightly, and X does not work straight
143     away with NetBSD 2.x and 3.x. It seems that this has to do with NetBSD
144     switching console system to "WSCONS" somewhere between 1.6.2 and 2.0.
145 dpavlin 24
146 dpavlin 32 <p>What this means is that if you want to use emulated X11, then you need
147     to run NetBSD 1.6.2. At the time of writing this, 4.0_BETA snapshots work
148     fine too, but 4.0 isn't released yet. If you feel that you only need
149     serial-console emulation, then choose 3.1.
150    
151 dpavlin 24 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
152 dpavlin 6 <a href="20050317-example.png"><img src="20050317-example_small.png"></a>
153 dpavlin 4
154 dpavlin 24 <p>To install NetBSD/pmax onto a harddisk image in the emulator,
155     follow these instructions:
156 dpavlin 2
157 dpavlin 10 <p><ol start="1">
158 dpavlin 2 <li>Create an empty harddisk image, which will be the root disk
159     that NetBSD installs itself onto:<pre>
160 dpavlin 32 <b>dd if=/dev/zero of=nbsd_pmax.img bs=1024 count=1 seek=3000000</b>
161 dpavlin 2
162     </pre>
163     </ol>
164 dpavlin 4
165 dpavlin 2 <p>
166     From this point, there are two separate ways to continue the installation.
167     You can either download a CD-ROM iso image (and let the installation
168     program copy files from the CD-ROM image to the harddisk image), or you
169     can install via ftp. For an installation from a CD-ROM image, follow these
170     steps:
171     <p>
172     <ol start="2">
173    
174     <li>Download a NetBSD CD-ROM iso image:<pre>
175 dpavlin 24 <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-archive/iso/1.6.2/pmaxcd.iso">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-archive/iso/1.6.2/pmaxcd.iso</a>
176 dpavlin 2 or
177 dpavlin 32 <a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/pmaxcd-3.1.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/pmaxcd-3.1.iso</a>
178 dpavlin 2
179     </pre>
180     <li>Start the emulator like this:<pre>
181 dpavlin 32 <b>gxemul -e 3max -d nbsd_pmax.img -d bc:pmaxcd-3.1.iso</b>
182 dpavlin 22 (or <b>pmaxcd.iso</b>)
183 dpavlin 2 </pre>
184 dpavlin 10 and proceed like you would do if you were installing NetBSD on a real
185 dpavlin 12 DECstation. Remember to choose <tt>vt100</tt> as your terminal
186     type, and not <tt>rcons</tt>.
187 dpavlin 2 </ol>
188     <p>
189     For an ftp install, substitute steps 2 and 3 above with these:
190     <p>
191     <ol start="2">
192    
193 dpavlin 10 <li>Download a NetBSD pmax INSTALL kernel:<pre>
194 dpavlin 24 <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-archive/NetBSD-1.6.2/pmax/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-archive/NetBSD-1.6.2/pmax/binary/kernel/netbsd-INSTALL.gz</a>
195 dpavlin 2 or
196 dpavlin 32 <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/pmax/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/pmax/binary/kernel/netbsd-INSTALL.gz</a>
197 dpavlin 2
198     </pre>
199     <li>Start the emulator like this:<pre>
200 dpavlin 24 <b>gxemul -e 3max -d nbsd_pmax.img -O netbsd-INSTALL.gz</b>
201 dpavlin 2 </pre>
202 dpavlin 10 and proceed like you would do if you were installing NetBSD on a real
203 dpavlin 12 DECstation. Remember to choose <tt>vt100</tt> as your terminal
204     type, and not <tt>rcons</tt>. Suitable networking parameters are as
205     follows:<pre>
206 dpavlin 2 Which device shall I use? [le0]: <b>le0</b>
207     ..
208     Your DNS domain: <b>mydomain.com</b>
209     Your host name: <b>foo</b>
210     Your IPv4 number: <b>10.0.0.1</b>
211     IPv4 Netmask [0xff000000]: <b>0xff000000</b>
212     IPv4 gateway: <b>10.0.0.254</b>
213     IPv4 name server: <b>10.0.0.254</b>
214     </pre>
215 dpavlin 10 (If using 10.0.0.254 as the nameserver fails, then try entering the
216     IP number of a real-world nameserver instead.)
217     </ol>
218 dpavlin 2
219 dpavlin 12 <p>If you want to use a graphical framebuffer during the install, you can
220     add <b><tt>-X -Y2</tt></b> to the command line, and choose <tt>rcons</tt>
221     instead of <tt>vt100</tt> when prompted with which terminal type to use.
222     (By just using <tt><b>-X</b></tt>, you will get a full-size framebuffer
223     window.)
224 dpavlin 2
225 dpavlin 12 <p>When the installation is finished, the following command should start
226 dpavlin 2 NetBSD from the harddisk image:<pre>
227 dpavlin 12 <b>gxemul -e 3max -d nbsd_pmax.img</b>
228 dpavlin 2 </pre>
229    
230 dpavlin 32 <p>If you installed NetBSD/pmax 1.6.2, or 4.0_BETA, then try the
231     following to start with a framebuffer:<pre>
232 dpavlin 12 <b>gxemul -X -e 3max -d nbsd_pmax.img</b>
233 dpavlin 2 </pre>
234 dpavlin 12 and log in as <tt>root</tt> and type <tt>startx</tt> to start X windows.
235 dpavlin 2
236    
237    
238    
239    
240    
241    
242 dpavlin 12
243 dpavlin 2 <p><br>
244     <a name="netbsdarcinstall"></a>
245 dpavlin 10 <h3>NetBSD/arc:</h3>
246 dpavlin 2
247 dpavlin 24 It is possible to install and run an old version of <a
248 dpavlin 10 href="http://www.netbsd.org/Ports/arc/">NetBSD/arc</a>
249     on an emulated Acer PICA-61 in the emulator.
250 dpavlin 2
251     <p>
252 dpavlin 4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
253     <a href="20041024-netbsd-arc-installed.gif"><img src="20041024-netbsd-arc-installed_small.gif"></a>
254    
255     <p>
256 dpavlin 24 To install NetBSD/arc 1.6.2 from a CDROM image onto an emulated
257     harddisk image, follow these instructions:
258 dpavlin 2
259     <p>
260     <ol start="1">
261     <li>Create an empty harddisk image, which will be the root disk
262     that NetBSD installs itself onto:<pre>
263 dpavlin 32 <b>dd if=/dev/zero of=nbsd_arc.img bs=1024 count=1 seek=2000000</b>
264 dpavlin 2
265     </pre>
266 dpavlin 12 <li>Download a NetBSD/arc 1.6.2 CDROM image, and a generic NetBSD/arc
267     kernel:<pre>
268 dpavlin 24 <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-archive/iso/1.6.2/arccd.iso">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-archive/iso/1.6.2/arccd.iso</a>
269     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-archive/NetBSD-1.6.2/arc/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-archive/NetBSD-1.6.2/arc/binary/kernel/netbsd-GENERIC.gz</a>
270 dpavlin 2
271     </pre>
272     <li>Start the emulator using this command line:<pre>
273 dpavlin 32 <b>gxemul -e pica -x -d nbsd_arc.img -d bc:arccd.iso -j arc/binary/kernel/netbsd.RAMDISK.gz</b>
274 dpavlin 2
275     </pre>
276 dpavlin 6 (Try removing <tt>-x</tt> if you have problems with the xterm.)
277     <p>
278 dpavlin 2 <li>From now on, you have to use your imagination, as there is no
279 dpavlin 24 automatic installation program for NetBSD/arc 1.6.2. Here are
280     some tips and hints on how you can proceed with the install:
281 dpavlin 12 <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
282     <b>mount /dev/cd0a /mnt2
283     disklabel -i -I sd0</b> (for example 'a', '4.2BSD', '1c',
284     '700M', 'b', 'swap', '701M', '$', 'P', 'W', 'y', and 'Q')
285     <b>newfs /dev/sd0a
286     mount /dev/sd0a /mnt
287     cd /mnt
288     for a in /mnt2/arc/binary/sets/*.tgz; do echo $a; tar xzpf $a; done
289     cd dev; sh MAKEDEV all
290     cd ../etc; echo "rc_configured=YES" &gt;&gt; rc.conf
291     cat > /mnt/etc/fstab
292     /dev/sd0a / ffs rw 1 1
293     /dev/sd0b none swap sw 0 0
294 dpavlin 24 </b>(press ctrl-d)
295 dpavlin 12 <b>cd /; umount /mnt; umount /mnt2
296     halt</b>
297     </pre></td></tr></table>
298 dpavlin 2 </ol>
299    
300 dpavlin 10 <p>You can now use the generic NetBSD/arc kernel to boot from the harddisk
301     image, using the following command:<pre>
302 dpavlin 12 <b>gxemul -e pica -x -d nbsd_arc.img netbsd-GENERIC.gz</b>
303 dpavlin 2
304     </pre>
305    
306 dpavlin 10 <p>When asked for "<tt>root device: </tt>", enter <b><tt>sd0</tt></b>.
307 dpavlin 2
308    
309    
310    
311    
312    
313    
314     <p><br>
315     <a name="netbsdhpcmipsinstall"></a>
316 dpavlin 10 <h3>NetBSD/hpcmips:</h3>
317 dpavlin 2
318 dpavlin 10 It is possible to install <a
319     href="http://www.netbsd.org/Ports/hpcmips/">NetBSD/hpcmips</a> onto a disk
320 dpavlin 32 image, on an an emulated MobilePro 770 or 800. (MobilePro 780 and 880 might
321     work too, but I don't test those for every release of the emulator. They
322     have unaligned framebuffers, and run a bit slower.)
323 dpavlin 2
324     <p>
325 dpavlin 4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
326     <a href="20050427-netbsd-hpcmips-1.png"><img src="20050427-netbsd-hpcmips-1_small.png"></a>
327     &nbsp;&nbsp;&nbsp;
328     <a href="20050427-netbsd-hpcmips-2.png"><img src="20050427-netbsd-hpcmips-2_small.png"></a>
329    
330     <p>
331 dpavlin 2 These instructions show an example of how to install
332 dpavlin 12 NetBSD/hpcmips on an emulated MobilePro 770:
333 dpavlin 2
334     <p>
335     <ol start="1">
336     <li>Create an empty harddisk image, which will be the root disk
337     that you will install NetBSD/hpcmips onto:<pre>
338 dpavlin 32 <b>dd if=/dev/zero of=nbsd_hpcmips.img bs=1024 count=1 seek=3000000</b>
339 dpavlin 2
340     </pre>
341 dpavlin 32 <li>Download the NetBSD/hpcmips 3.1 ISO image, and a generic kernel:<pre>
342     <a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/">ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/hpcmipscd-3.1.iso">hpcmipscd-3.1.iso</a>
343     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/hpcmips/binary/kernel/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/hpcmips/binary/kernel</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/hpcmips/binary/kernel/netbsd-GENERIC.gz">netbsd-GENERIC.gz</a>
344 dpavlin 2
345 dpavlin 12 </pre>
346 dpavlin 2 <p>
347     <li>Start the installation like this:<pre>
348 dpavlin 32 <b>gxemul -e mobilepro770 -X -d nbsd_hpcmips.img -d b:hpcmipscd-3.1.iso -j hpcmips/installation/netbsd.gz</b>
349 dpavlin 2
350     </pre>
351     and proceed like you would do if you were installing NetBSD on a real
352 dpavlin 12 MobilePro 770. (Install onto wd0, choose "Use entire disk" when
353 dpavlin 20 doing the MBR partitioning, and choose to install from CD-ROM.)
354 dpavlin 2 </ol>
355    
356     <p>
357     If everything worked, NetBSD should now be installed on the disk image.
358 dpavlin 12 Use the following command line to boot the emulated hpcmips machine:<pre>
359     <b>gxemul -e mobilepro770 -X -d nbsd_hpcmips.img netbsd-GENERIC.gz</b>
360 dpavlin 2
361     </pre>
362    
363 dpavlin 12 <p>When you have logged in as <tt>root</tt>, you can use <tt>startx</tt> to
364     start X Windows, but there is no mouse support yet so only keyboard input
365     is available. This makes it a bit akward to use X.
366 dpavlin 2
367 dpavlin 10
368 dpavlin 2
369    
370    
371    
372    
373    
374 dpavlin 4 <p><br>
375     <a name="netbsdcobaltinstall"></a>
376 dpavlin 10 <h3>NetBSD/cobalt:</h3>
377 dpavlin 4
378     <a href="http://www.netbsd.org/Ports/cobalt/">NetBSD/cobalt</a> is tricky
379     to install, because the Cobalt machines were designed for Linux, and not
380 dpavlin 24 very flexible. There is no traditional INSTALL kernel for NetBSD/cobalt.
381     One way to install the NetBSD/cobalt distribution onto a disk image is to
382     do it from another (emulated) machine.
383 dpavlin 4
384     <p>
385     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
386 dpavlin 30 <a href="20060812-netbsd-cobalt-3.0.1.png"><img src="20060812-netbsd-cobalt-3.0.1_small.png"></a>
387 dpavlin 4
388     <p>
389     The following instructions will let you install NetBSD/cobalt onto a disk
390     image, from an emulated DECstation 3MAX machine:
391    
392     <p>
393     <ol>
394 dpavlin 30 <li>Download a NetBSD/pmax (DECstation) install RAMDISK kernel:<pre>
395 dpavlin 32 <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/pmax/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/pmax/binary/kernel/netbsd-INSTALL.gz</a>
396 dpavlin 30 </pre>
397     <p>
398 dpavlin 4 <li>Create an empty harddisk image, which will be the disk image
399     that you will install NetBSD/cobalt onto:<pre>
400 dpavlin 30 <b>dd if=/dev/zero of=nbsd_cobalt.img bs=1024 count=1 seek=700000</b>
401 dpavlin 4
402     </pre>
403 dpavlin 32 <li>Download the generic kernel for Cobalt and the 3.1 ISO image:<pre>
404     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/cobalt/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/cobalt/binary/kernel/netbsd-GENERIC.gz</a>
405     <a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/cobaltcd-3.1.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/cobaltcd-3.1.iso</a>
406 dpavlin 4
407 dpavlin 12 </pre>
408 dpavlin 30 <li>Start the emulated DECstation machine like this:<pre>
409 dpavlin 32 <b>gxemul -e 3max -d nbsd_cobalt.img -d cobaltcd-3.1.iso netbsd-INSTALL.gz</b>
410 dpavlin 4
411     </pre>
412 dpavlin 32 <li>At the <tt>Terminal type? [rcons]</tt> prompt, type <b>CTRL-B</b>
413     to simulate a CTRL-C sent to NetBSD/pmax. Then execute the following commands:
414 dpavlin 12 <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
415 dpavlin 30 <b>newfs /dev/sd0c
416 dpavlin 12 mount /dev/cd0c /mnt
417 dpavlin 30 mkdir /mnt2; mount /dev/sd0c /mnt2
418 dpavlin 12 cd /mnt2; sh
419 dpavlin 30 for a in /mnt/*/binary/sets/[bcekmt]*.tgz; do echo $a; tar zxfp $a; done
420 dpavlin 12 exit
421     cd dev; sh ./MAKEDEV all; cd ../etc
422 dpavlin 30 echo rc_configured=YES >> rc.conf
423 dpavlin 12 echo "/dev/wd0d / ffs rw 1 1" > fstab
424     cd /; umount /mnt; umount /mnt2; halt</b>
425     </pre></td></tr></table>
426 dpavlin 4 </ol>
427    
428     <p>
429     You should now be able to boot NetBSD/cobalt like this:<pre>
430 dpavlin 30 <b>gxemul -E cobalt -d nbsd_cobalt.img netbsd-GENERIC.gz</b>
431 dpavlin 4 </pre>
432    
433     Note that the installation instructions above create a filesystem
434     <i>without</i> a disklabel, so there is only one ffs partition and no
435     swap. You will need to enter the following things when booting with the
436     generic kernel:<pre>
437     root device (default wd0a): <b>wd0d</b>
438     dump device (default wd0b): <b>none</b>
439     file system (default generic): <b>ffs</b>
440 dpavlin 6 init path (default /sbin/init): <i>(just press enter here)</i>
441 dpavlin 4 </pre>
442    
443    
444    
445    
446    
447    
448    
449 dpavlin 2 <p><br>
450 dpavlin 10 <a name="netbsdevbmipsinstall"></a>
451     <h3>NetBSD/evbmips:</h3>
452 dpavlin 2
453 dpavlin 28 <a href="http://www.netbsd.org/Ports/evbmips/">NetBSD/evbmips</a> can run
454     in GXemul on an emulated Malta evaluation board, with a 5Kc (MIPS64) or
455     4Kc (MIPS32) processor. 5Kc is the default.
456 dpavlin 2
457 dpavlin 30 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
458     <a href="20060812-netbsd-malta-3.0.1.png"><img src="20060812-netbsd-malta-3.0.1_small.png"></a>
459 dpavlin 2
460 dpavlin 30 <p>One way to install the NetBSD/evbmips distribution onto a disk
461 dpavlin 14 image is to install the files using another (emulated) machine.
462 dpavlin 10
463 dpavlin 2 <p>
464 dpavlin 10 The following instructions will let you install NetBSD/evbmips onto a disk
465     image, from an emulated DECstation 3MAX machine:
466 dpavlin 2
467     <p>
468 dpavlin 10 <ol>
469 dpavlin 30 <li>Download a NetBSD/pmax (DECstation) install RAMDISK kernel:<pre>
470 dpavlin 32 <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/pmax/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/pmax/binary/kernel/netbsd-INSTALL.gz</a>
471 dpavlin 30 </pre>
472 dpavlin 12 <p>
473 dpavlin 10 <li>Create an empty harddisk image, which will be the disk image
474     that you will install NetBSD onto:<pre>
475 dpavlin 30 <b>dd if=/dev/zero of=nbsd_malta.img bs=1024 count=1 seek=700000</b>
476 dpavlin 2
477 dpavlin 10 </pre>
478 dpavlin 32 <li>Download the Malta kernel and the 3.1 ISO image:<pre>
479     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/evbmips-mipsel/binary/kernel/netbsd-MALTA.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/evbmips-mipsel/binary/kernel/netbsd-MALTA.gz</a>
480     <a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/evbmips-mipselcd-3.1.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/evbmips-mipselcd-3.1.iso</a>
481 dpavlin 10
482 dpavlin 12 </pre>
483 dpavlin 10 <p>
484 dpavlin 30 <li>Start the emulated DECstation machine like this:<pre>
485 dpavlin 32 <b>gxemul -e 3max -d nbsd_malta.img -d evbmips-mipselcd-3.1.iso netbsd-INSTALL.gz</b>
486 dpavlin 10
487 dpavlin 30 </pre>
488     <li>At the <tt>Terminal type? [rcons]</tt> prompt, type <b>CTRL-B</b>
489     to simulate a CTRL-C sent to NetBSD/pmax. Then execute the following commands:
490 dpavlin 12 <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
491 dpavlin 30 <b>newfs /dev/sd0c
492 dpavlin 12 mount /dev/cd0c /mnt
493 dpavlin 30 mkdir /mnt2; mount /dev/sd0c /mnt2
494 dpavlin 12 cd /mnt2; sh
495 dpavlin 30 for a in /mnt/*/binary/sets/[bcemt]*.tgz; do echo $a; tar zxfp $a; done
496 dpavlin 12 exit
497     cd dev; sh ./MAKEDEV all; cd ../etc
498     echo rc_configured=YES >> rc.conf
499     echo "/dev/wd0c / ffs rw 1 1" > fstab
500     cd /; umount /mnt; umount /mnt2; halt</b>
501     </pre></td></tr></table>
502 dpavlin 10 </ol>
503    
504 dpavlin 12 <p>You should now be able to boot NetBSD/evbmips using this command:<pre>
505     <b>gxemul -e malta -d nbsd_malta.img netbsd-MALTA.gz</b>
506 dpavlin 10 </pre>
507    
508 dpavlin 20 <p>NOTE: To select a 4Kc (MIPS32) CPU instead of the default 5Kc
509 dpavlin 10 (MIPS64) CPU, add <tt><b>-C 4Kc</b></tt> to the command line. With NetBSD
510 dpavlin 32 3.1, however, there will be little or no difference in functionality, as
511 dpavlin 20 NetBSD still runs in 32-bit mode on 64-bit MIPS CPUs. There are two things
512     that differ:<ol>
513 dpavlin 24 <li>The dynamic translation core runs faster when emulating 32-bit
514     processors, so <tt><b>-C 4Kc</b></tt> might make things go faster.
515 dpavlin 20 <li>4Kc only has 16 TLB entries, whereas 5Kc has 48. This makes 4Kc
516 dpavlin 24 emulation slower in general, because there are more TLB misses.
517 dpavlin 20 </ol>
518 dpavlin 10
519 dpavlin 20 <p>The installation instructions above create a filesystem
520 dpavlin 10 <i>without</i> a disklabel, so there is only one ffs partition and no
521     swap. You will need to enter the following things when booting with the
522     generic kernel:<pre>
523     root device (default wd0a): <b>wd0c</b>
524 dpavlin 30 dump device (default wd0b): <i>(just press enter)</i>
525     file system (default generic): <i>(just press enter)</i>
526     init path (default /sbin/init): <i>(just press enter)</i>
527 dpavlin 10 </pre>
528    
529    
530    
531    
532    
533    
534    
535 dpavlin 30
536    
537    
538    
539    
540    
541    
542 dpavlin 10 <p><br>
543 dpavlin 30 <a name="netbsdalgorinstall"></a>
544     <h3>NetBSD/algor:</h3>
545    
546     <a href="http://www.netbsd.org/Ports/algor/">NetBSD/algor</a> can
547     run in GXemul on an emulated Algorithmics P5064 evaluation board.
548    
549     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
550     <a href="20060814-netbsd-algor-3.0.1.png"><img src="20060814-netbsd-algor-3.0.1_small.png"></a>
551    
552     <p>One way to install the NetBSD/algor distribution onto a disk
553     image is to install the files using another (emulated) machine.
554    
555     <p>The following instructions will let you install NetBSD/algor onto a disk
556     image, from an emulated DECstation 3MAX machine:
557    
558     <p>
559     <ol>
560     <li>Download a NetBSD/pmax (DECstation) install RAMDISK kernel:<pre>
561 dpavlin 32 <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/pmax/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/pmax/binary/kernel/netbsd-INSTALL.gz</a>
562 dpavlin 30 </pre>
563     <p>
564     <li>Create an empty harddisk image, which will be the disk image
565     that you will install NetBSD/algor onto:<pre>
566     <b>dd if=/dev/zero of=nbsd_algor.img bs=1024 count=1 seek=700000</b>
567    
568     </pre>
569 dpavlin 32 <li>Download the P5064 Algor kernel and the 3.1 ISO image:<pre>
570     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/algor/binary/kernel/netbsd-P5064.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/algor/binary/kernel/netbsd-P5064.gz</a>
571     <a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/algorcd-3.1.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/algorcd-3.1.iso</a>
572 dpavlin 30
573     </pre>
574     <p>
575     <li>Start the emulated DECstation machine like this:<pre>
576 dpavlin 32 <b>gxemul -e 3max -d nbsd_algor.img -d algorcd-3.1.iso netbsd-INSTALL.gz</b>
577 dpavlin 30
578     </pre>
579     <li>At the <tt>Terminal type? [rcons]</tt> prompt, type <b>CTRL-B</b>
580     to simulate a CTRL-C sent to NetBSD/pmax. Then execute the following commands:
581     <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
582     <b>newfs /dev/sd0c
583     mount /dev/cd0c /mnt
584     mkdir /mnt2; mount /dev/sd0c /mnt2
585     cd /mnt2; sh
586     for a in /mnt/*/binary/sets/[bcekmt]*.tgz; do echo $a; tar zxfp $a; done
587     exit
588     cd dev; sh ./MAKEDEV all; cd ../etc
589     echo rc_configured=YES >> rc.conf
590     echo "/dev/wd0c / ffs rw 1 1" > fstab
591     cd /; umount /mnt; umount /mnt2; halt</b>
592     </pre></td></tr></table>
593     </ol>
594    
595     <p>You should now be able to boot NetBSD/algor using this command:<pre>
596     <b>gxemul -x -e p5064 -d nbsd_algor.img netbsd-P5064.gz</b>
597     </pre>
598    
599     <p>The installation instructions above create a filesystem
600     <i>without</i> a disklabel, so there is only one ffs partition and no
601     swap. You will need to enter the following things when booting with the
602     generic kernel:<pre>
603     root device (default wd0a): <b>wd0c</b>
604     dump device (default wd0b): <i>(just press enter)</i>
605     file system (default generic): <i>(just press enter)</i>
606     init path (default /sbin/init): <i>(just press enter)</i>
607     </pre>
608    
609    
610    
611    
612    
613    
614    
615    
616    
617    
618    
619    
620     <p><br>
621 dpavlin 10 <a name="netbsdsgimips"></a>
622     <h3>NetBSD/sgimips:</h3>
623    
624     <p>
625     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
626 dpavlin 24 <a href="20060623-netbsd-sgimips-3.0.png"><img src="20060623-netbsd-sgimips-3.0_small.png"></a>
627 dpavlin 10
628     <p><a href="http://www.netbsd.org/Ports/sgimips/">NetBSD/sgimips</a> can run
629     in GXemul on an emulated O2 (SGI-IP32). However, GXemul does not yet
630     emulate the AHC PCI SCSI controller in the O2. (I have mailed Adaptec
631     several times, asking for documentation, but never received any reply.)
632 dpavlin 12 NetBSD can still run in the emulator, as long as it doesn't use SCSI.
633 dpavlin 10
634 dpavlin 24 <p>For a simple test with the ramdisk/install kernel, try
635 dpavlin 10 dowloading<pre>
636 dpavlin 32 <a href="ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-3.1/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.gz">ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-3.1/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.gz</a>
637 dpavlin 10
638 dpavlin 24 </pre>and run&nbsp;&nbsp;<b><tt>gxemul -x -e o2 netbsd-INSTALL32_IP3x.gz</tt></b>.
639 dpavlin 10
640     <p>It is possible to set up an environment for netbooting the emulated SGI
641     machine off of another emulated machine. Performing this setup is quite
642     time consuming, but necessary:
643    
644     <p>
645     <ol>
646     <li>First of all, the "<tt>nfs server</tt>" machine must be set up.
647     This needs to have a 750 MB <tt>/tftpboot</tt> partition.
648 dpavlin 32 <a href="#netbsdpmaxinstall">Install NetBSD/pmax 3.1 from CDROM</a>.
649 dpavlin 12 (Don't forget to add the extra partition!)
650 dpavlin 10 <p>
651     <li>Configure the nfs server machine to act as an nfs server.
652     Start up the emulated DECstation:<pre>
653 dpavlin 24 <b>gxemul -e 3max -d nbsd_pmax.img</b>
654 dpavlin 10 </pre>and enter the following commands as <tt>root</tt>
655     inside the emulator:
656 dpavlin 32 <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
657 dpavlin 10 <b>echo hostname=server &gt;&gt; /etc/rc.conf
658     echo ifconfig_le0=\"inet 10.0.0.2\" &gt;&gt; /etc/rc.conf
659     echo nameserver 10.0.0.254 &gt;&gt; /etc/resolv.conf
660     echo 10.0.0.254 &gt; /etc/mygate
661     echo /tftpboot -maproot=root 10.0.0.1 &gt; /etc/exports
662     echo rpcbind=YES &gt;&gt; /etc/rc.conf
663     echo nfs_server=YES &gt;&gt; /etc/rc.conf
664     echo mountd=YES &gt;&gt; /etc/rc.conf
665     echo bootparamd=YES &gt;&gt; /etc/rc.conf
666     printf "client root=10.0.0.2:/tftpboot \\\n swap=10.0.0.2:/tftpboot/swap\n" &gt; /etc/bootparams
667     echo "bootps dgram udp wait root /usr/sbin/bootpd bootpd -d 4 -h 10.0.0.2" &gt;&gt; /etc/inetd.conf
668     cat &gt;&gt; /etc/bootptab
669     client:\
670     :ht=ether:\
671     :ha=102030000010:\
672     :sm=255.0.0.0:\
673     :lg=10.0.0.254:\
674     :ip=10.0.0.1:\
675     :rp=/tftpboot:
676     </b>(press CTRL-D)
677     <b>echo "10:20:30:00:00:10 client" &gt; /etc/ethers
678     echo 10.0.0.1 client &gt; /etc/hosts
679     reboot</b>
680     </pre></td></tr></table>
681 dpavlin 32 <p>
682     <li>Download the NetBSD/sgimips CD-ROM iso image, and the
683     GENERIC and INSTALL kernels:<pre>
684     <a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/sgimipscd-3.1.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/sgimipscd-3.1.iso</a>
685     <a href="ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-3.1/sgimips/binary/kernel/netbsd-GENERIC32_IP3x.gz">ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-3.1/sgimips/binary/kernel/netbsd-GENERIC32_IP3x.gz</a>
686     <a href="ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-3.1/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.gz">ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-3.1/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.gz</a>
687    
688     </pre>
689     <li>Start the DECstation emulation again:<pre>
690     <b>gxemul -e 3max -d nbsd_pmax.img -d sgimipscd-3.1.iso</b>
691    
692     </pre>and extract the files from the sgimips CD-ROM image to the
693     DECstation disk image:
694     <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
695     <b>cd /tftpboot; mount /dev/cd0a /mnt
696     for a in /mnt/sgimips/binary/sets/[bcegmt]*; do echo $a; tar zxfp $a; done
697 dpavlin 10 echo 10.0.0.2:/tftpboot / nfs rw 0 0 &gt; /tftpboot/etc/fstab
698     echo rc_configured=YES &gt;&gt; /tftpboot/etc/rc.conf
699 dpavlin 32 echo 10.0.0.254 &gt;&gt; /tftpboot/etc/mygate
700     echo nameserver 10.0.0.254 &gt;&gt; /tftpboot/etc/resolv.conf
701     echo rc_configured=YES &gt;&gt; /tftpboot/etc/rc.conf
702     dd if=/dev/zero of=swap bs=1024 count=65536
703     cd /; umount /mnt; halt</b>
704 dpavlin 10 </pre></td></tr></table>
705 dpavlin 32 <p>
706 dpavlin 10 <li>Create a configuration file called <tt>config_client</tt>:
707     <table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
708 dpavlin 24 <font color="#2020cf">! Configuration file for running NetBSD/sgimips diskless with
709 dpavlin 10 ! a NetBSD/pmax machine as the nfs server.</font>
710 dpavlin 2
711 dpavlin 24 <b> net(
712 dpavlin 12 add_remote("localhost:12444") </b>! the server<b>
713 dpavlin 10 local_port(12445) </b>! the client<b>
714     )
715 dpavlin 2
716 dpavlin 10 machine(
717     name("client machine")
718     serial_nr(1)
719 dpavlin 2
720 dpavlin 10 type("sgi")
721     subtype("o2")
722 dpavlin 2
723 dpavlin 10 load("netbsd-INSTALL32_IP3x.gz")</b>
724     ! load("netbsd-GENERIC32_IP3x.gz")<b>
725     )
726 dpavlin 24 </b>
727 dpavlin 10 </pre></td></tr></table>
728     ... and another configuration file for the server,
729     <tt>config_server</tt>:
730     <table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
731 dpavlin 24 <b> net(
732 dpavlin 10 local_port(12444) </b>! the server<b>
733 dpavlin 12 add_remote("localhost:12445") </b>! the client<b>
734 dpavlin 10 )
735 dpavlin 2
736 dpavlin 10 machine(
737     name("nfs server")
738     serial_nr(2)
739 dpavlin 2
740 dpavlin 10 type("dec")
741     subtype("5000/200")
742 dpavlin 2
743 dpavlin 10 disk("nbsd_pmax.img")
744     )
745 dpavlin 24 </b>
746 dpavlin 10 </pre></td></tr></table>
747     <li>Boot the "<tt>nfs server</tt>" and the NetBSD/sgimips
748     "<tt>client machine</tt>" as two separate emulator instances:<pre>
749     in one xterm:
750 dpavlin 12 <b>gxemul @config_server</b>
751 dpavlin 2
752 dpavlin 10 and then, in another xterm:
753 dpavlin 12 <b>gxemul @config_client</b>
754 dpavlin 10
755     </pre>
756     <li>In the NetBSD/sgimips window, choose "<tt>x: Exit Install System</tt>"
757     in the installer's main menu, and then type:<pre>
758     <b>ifconfig mec0 10.0.0.1; route add default 10.0.0.254</b>
759     <b>mount -v 10.0.0.2:/tftpboot /mnt</b>
760     <b>cd /mnt/dev; ./MAKEDEV all; cd /; umount /mnt</b>
761     <b>halt</b>
762 dpavlin 12 </pre>Then, once the client machine has halted, log in as <tt>root</tt>
763     on the server machine and type <tt><b>reboot</b></tt>.
764 dpavlin 10 <p>
765     <li>Once everything has been set up correctly, change
766     <tt>netbsd-INSTALL32_IP3x.gz</tt> in <tt>config_client</tt> to
767     <tt>netbsd-GENERIC32_IP3x.gz</tt> (the GENERIC kernel).
768     </ol>
769    
770     <p>You might want to log in as <tt>root</tt> on the server machine, and
771     run <tt>tcpdump -lnvv</tt> or similar, to see that what the client machine
772     actually does on the network.
773    
774     <p>It should now be possible to boot NetBSD/sgimips using the NetBSD/pmax
775 dpavlin 12 nfs server, using the following commands: (NOTE! Execute these two
776     commands in separate xterms!)<pre>
777     <b>gxemul @config_server</b>
778     <b>gxemul @config_client</b>
779 dpavlin 10 </pre>
780    
781 dpavlin 12 <p>When asked for "<tt>root device:</tt>" etc. on the client machine, enter
782 dpavlin 10 the following values:<pre>
783     root device: <b>mec0</b>
784     dump device: <b>(leave blank)</b>
785     file system (default generic): <b>(leave blank)</b>
786     ..
787     init path (default /sbin/init): <b>(leave blank)</b>
788     Enter pathname of shell or RETURN for /bin/sh: <b>(leave blank)</b>
789     Terminal type? [unknown] <b>xterm</b>
790     ..
791     # <b>exit</b> (to leave the single-user shell)
792     </pre>
793    
794     <p>Note: Netbooting like this is very slow, so you need a lot of patience.
795     For example, when NetBSD says "<tt>nfs_boot: trying DHCP/BOOTP</tt>",
796     there will be a long pause, even on a very fast host machine. The reason
797     for this is mostly because the emulator doesn't deal with timing issues
798     very well, but also because NetBSD tries IPv6 first, before falling back
799     to IPv4.
800    
801    
802    
803    
804    
805    
806 dpavlin 14 <p><br>
807     <a name="netbsdcatsinstall"></a>
808     <h3>NetBSD/cats:</h3>
809 dpavlin 10
810 dpavlin 14 It is possible to install and run
811     <a href="http://www.netbsd.org/Ports/cats/">NetBSD/cats</a> in GXemul.
812    
813 dpavlin 20 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
814 dpavlin 14 <a href="20051007-netbsd-cats-installed.png"><img src="20051007-netbsd-cats-installed_small.png"></a>
815    
816     <p>
817     To install NetBSD/cats onto a disk image, follow these instructions:
818    
819     <p>
820     <ol start="1">
821     <li>Create an empty harddisk image, which will be the root disk
822 dpavlin 18 that you will install NetBSD/cats onto:<pre>
823 dpavlin 34 <b>dd if=/dev/zero of=nbsd_cats.img bs=1024 count=1 seek=3000000</b>
824 dpavlin 14
825     </pre>
826 dpavlin 32 <li>Download the NetBSD/cats 3.1 ISO image and the generic and install kernels:<pre>
827     <a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/catscd-3.1.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/catscd-3.1.iso</a>
828     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/cats/binary/kernel/netbsd.aout-GENERIC.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/cats/binary/kernel/netbsd.aout-GENERIC.gz</a>
829     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/cats/binary/kernel/netbsd.aout-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/cats/binary/kernel/netbsd.aout-INSTALL.gz</a>
830 dpavlin 14
831     </pre>
832     <p>
833     <li>Start the installation like this:<pre>
834 dpavlin 32 <b>gxemul -XEcats -d nbsd_cats.img -d catscd-3.1.iso netbsd.aout-INSTALL.gz</b>
835 dpavlin 14
836     </pre>
837     and proceed like you would do if you were installing NetBSD on a real
838 dpavlin 20 CATS from CDROM.
839 dpavlin 14 </ol>
840    
841 dpavlin 20 <p>Alternatively, to install from FTP, you can skip downloading the ISO,
842 dpavlin 32 and start the install without <tt>-d catscd-3.1.iso</tt>. Suitable network
843 dpavlin 20 settings are IP 10.0.0.1, gateway/default route 10.0.0.254, netmask
844     255.0.0.0, nameserver 10.0.0.254.
845    
846 dpavlin 16 <p>If everything worked, NetBSD should now be installed on the disk image.
847 dpavlin 14 Use the following command line to boot the emulated CATS machine:<pre>
848 dpavlin 16 <b>gxemul -XEcats -d nbsd_cats.img netbsd.aout-GENERIC.gz</b>
849 dpavlin 14
850     </pre>
851    
852    
853    
854    
855    
856    
857 dpavlin 22
858 dpavlin 20 <p><br>
859 dpavlin 22 <a name="netbsdevbarminstall"></a>
860     <h3>NetBSD/evbarm:</h3>
861    
862     <a href="http://www.netbsd.org/Ports/evbarm/">NetBSD/evbarm</a> can
863     run in GXemul on an emulated IQ80321 evaluation board.
864    
865     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
866     <a href="20060218-netbsd-evbarm.png"><img src="20060218-netbsd-evbarm_small.png"></a>
867    
868     <p>It is tricky to install, because there is (as far as I know) no INSTALL
869     kernel. One way to install the NetBSD/evbarm distribution onto a disk
870     image is to install the files using another (emulated) machine.
871    
872     <p>The following instructions will let you install NetBSD/evbarm onto a disk
873     image, from an emulated CATS machine:
874    
875     <p>
876     <ol>
877 dpavlin 32 <li>Install NetBSD/cats 3.1 according to instructions
878 dpavlin 22 <a href="#netbsdcatsinstall">further up on this page</a>.
879     <p>
880     <li>Create an empty harddisk image, which will be the disk image
881     that you will install NetBSD onto:<pre>
882     <b>dd if=/dev/zero of=nbsd_iq80321.img bs=1024 count=1 seek=999000</b>
883    
884     </pre>
885     <li>Download an IQ80321 kernel with wdc support, and the 2.1 ISO image:<pre>
886     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/evbarm/binary/kernel/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/evbarm/binary/kernel</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/evbarm/binary/kernel/netbsd-wd0-IQ80321.gz">netbsd-wd0-IQ80321.gz</a>
887     <a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/2.1/evbarmcd.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/2.1/evbarmcd.iso</a>
888    
889     </pre>
890     <p>
891 dpavlin 32 <li>The first step is to copy the distribution .tgz files onto the CATS
892 dpavlin 22 machine's harddisk. Start the CATS machine like this:<pre>
893     <b>gxemul -XEcats -d nbsd_cats.img -d evbarmcd.iso netbsd.aout-GENERIC.gz</b>
894    
895     </pre>and execute the following commands as <tt>root</tt>:
896     <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
897     <b>mount /dev/cd0a /mnt; cd /root; cp /mnt/evbarm/binary/sets/[bcegmt]* .
898     sync; halt</b>
899     </pre></td></tr></table>
900     <p>
901     <li>Now let's extract the files onto the IQ80321's disk image. Start the
902     CATS machine again, with the following command line:<pre>
903     <b>gxemul -XEcats -d nbsd_cats.img -d nbsd_iq80321.img netbsd.aout-GENERIC.gz</b>
904    
905     </pre>and execute the following commands as <tt>root</tt>:
906     <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
907     <b>disklabel -I -i wd1</b>
908     (enter suitable commands, e.g. <i>a, 4.2BSD, 1c, 750M, b,
909     swap, a, 200M, P, W, y, Q</i>)
910     <b>newfs /dev/wd1a; mount /dev/wd1a /mnt; cd /mnt; sh
911     for a in /root/[bcegmt]*.tgz; do echo $a; tar zxfp $a; done
912     exit
913     cd dev; sh ./MAKEDEV all; cd ../etc
914     echo rc_configured=YES &gt;&gt; rc.conf
915     echo "/dev/wd0a / ffs rw 1 1" &gt; fstab
916     echo "/dev/wd0b none swap sw 0 0" &gt;&gt; fstab
917     cd /; umount /mnt; sync; halt</b>
918     </pre></td></tr></table>
919     </ol>
920    
921     <p>You should now be able to boot NetBSD/evbarm using this command:<pre>
922     <b>gxemul -xEiq80321 -d nbsd_iq80321.img netbsd-wd0-IQ80321.gz</b>
923     </pre>
924    
925    
926    
927    
928    
929    
930 dpavlin 30
931    
932    
933 dpavlin 22 <p><br>
934 dpavlin 30 <a name="netbsdnetwinderinstall"></a>
935     <h3>NetBSD/netwinder:</h3>
936    
937     It is possible to run <a
938     href="http://www.netbsd.org/Ports/netwinder/">NetBSD/netwinder</a>
939     in GXemul.
940    
941     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
942     <a href="20060724-netbsd-netwinder-1.png"><img src="20060724-netbsd-netwinder-1_small.png"></a>
943     &nbsp;&nbsp;&nbsp;<a href="20060724-netbsd-netwinder-2.png"><img src="20060724-netbsd-netwinder-2_small.png"></a>
944    
945     <p>There is no INSTALL ramdisk kernel, so one way to install the
946     NetBSD/netwinder distribution onto a disk image is to install the files
947     using another (emulated) machine. The following instructions will let you
948     install the NetBSD/netwinder distribution onto a disk image, from an
949     emulated DECstation 3MAX machine:
950    
951     <p>
952     <ol>
953     <li>Download a NetBSD/pmax (DECstation) install RAMDISK kernel:<pre>
954 dpavlin 32 <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/pmax/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/pmax/binary/kernel/netbsd-INSTALL.gz</a>
955 dpavlin 30 </pre>
956     <p>
957     <li>Create an empty harddisk image, which will be the disk image
958     that you will install NetBSD onto:<pre>
959     <b>dd if=/dev/zero of=nbsd_netwinder.img bs=1024 count=1 seek=999000</b>
960    
961     </pre>
962 dpavlin 32 <li>Download the generic kernel and the 3.1 ISO image:<pre>
963     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/netwinder/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/netwinder/binary/kernel/netbsd-GENERIC.gz</a>
964     <a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/netwindercd-3.1.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/netwindercd-3.1.iso</a>
965 dpavlin 30
966     </pre>
967     <p>
968     <li>Start the emulated DECstation machine like this:<pre>
969 dpavlin 32 <b>gxemul -e 3max -d nbsd_netwinder.img -d netwindercd-3.1.iso netbsd-INSTALL.gz</b>
970 dpavlin 30
971     </pre>
972     <li>At the <tt>Terminal type? [rcons]</tt> prompt, type <b>CTRL-B</b>
973     to simulate a CTRL-C sent to NetBSD/pmax. Then execute the following commands:
974     <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
975     <b>newfs /dev/sd0c
976     mount /dev/cd0c /mnt
977     mkdir /mnt2; mount /dev/sd0c /mnt2
978     cd /mnt2; sh
979     for a in /mnt/*/binary/sets/*.tgz; do echo $a; tar zxfp $a; done
980     exit
981     cd dev; sh ./MAKEDEV all; cd ../etc
982     echo rc_configured=YES >> rc.conf
983     echo "/dev/wd0c / ffs rw 1 1" > fstab
984     cd /; umount /mnt; umount /mnt2; halt</b>
985     </pre></td></tr></table>
986     </ol>
987    
988     <p>NetBSD/netwinder is now installed on the disk image. The following command
989     line can be used to start NetBSD/netwinder:<pre>
990     <b>gxemul -X -E netwinder -d nbsd_netwinder.img netbsd-GENERIC.gz</b>
991     </pre>
992    
993     <p>This will result in a 1024x768 framebuffer. Add <tt>-Y2</tt> to the
994     command line if you want to scale it down to 512x384.
995    
996     <p>Note: The installation instructions above create a filesystem
997     <i>without</i> a disklabel, so there is only one ffs partition and no
998     swap. You will need to enter the following things when booting with the
999     generic kernel:<pre>
1000     root device (default wd0a): <b>wd0c</b>
1001     dump device (default wd0b): <i>(just press enter)</i>
1002     file system (default generic): <i>(just press enter)</i>
1003     init path (default /sbin/init): <i>(just press enter)</i>
1004     </pre>
1005    
1006     <p>Known bugs/problems:
1007    
1008     <ul>
1009     <li>There is a long delay when starting up NetBSD/netwinder
1010     (several seconds even on a very fast host machine),
1011     so you need to be patient.
1012     <li>There is a minor bug in the keyboard device, so you need to
1013     press a key (any key) before typing wd0c.
1014     <li>When halting/rebooting NetBSD/netwinder, the emulator
1015     prints a message saying something about an internal
1016     error. This doesn't matter; ignore the message.
1017     </ul>
1018    
1019    
1020    
1021    
1022    
1023    
1024    
1025    
1026    
1027    
1028    
1029    
1030     <p><br>
1031 dpavlin 20 <a name="netbsdprepinstall"></a>
1032     <h3>NetBSD/prep:</h3>
1033 dpavlin 14
1034 dpavlin 34 It is possible to install and run <a
1035     href="http://www.netbsd.org/Ports/prep/">NetBSD/prep</a> 2.1 in GXemul on
1036     an emulated IBM 6050 (PowerPC) machine. (Newer versions of NetBSD/prep use
1037     the wdc controller in a way which isn't implemented in GXemul yet, or
1038     there are bugs in GXemul's PowerPC CPU emulation.)
1039 dpavlin 20
1040     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1041     <a href="20051123-netbsd-prep.png"><img src="20051123-netbsd-prep_small.png"></a>
1042    
1043     <p>To install NetBSD/prep onto a disk image, follow these instructions:
1044    
1045     <p>
1046     <ol start="1">
1047     <li>Create an empty harddisk image, which will be the root disk
1048     that you will install NetBSD/prep onto:<pre>
1049     <b>dd if=/dev/zero of=nbsd_prep.img bs=1024 count=1 seek=1000000</b>
1050    
1051     </pre>
1052     <li>Download the NetBSD/prep 2.1 ISO image and the generic kernel:<pre>
1053     <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>
1054     <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>
1055    
1056     </pre>
1057     <p>
1058     <li>Start the installation like this:<pre>
1059 dpavlin 34 <b>gxemul -X -e ibm6050 -d nbsd_prep.img -d rdb:prepcd.iso -j prep/binary/kernel/netbsd-INSTALL.gz</b>
1060 dpavlin 20
1061     </pre>
1062     <p>
1063 dpavlin 22 <li>Installation is a bit unsmooth, possibly due to bugs in GXemul,
1064     possibly due to bugs in NetBSD itself; others have been having
1065     problems on real hardware: <a href="http://mail-index.NetBSD.org/port-prep/2005/11/25/0004.html">http://mail-index.NetBSD.org/port-prep/2005/11/25/0004.html</a>.
1066 dpavlin 20 Creating an MBR slice and a disklabel with sysinst bugs out, so
1067 dpavlin 22 some things have to be done manually:<p>
1068 dpavlin 20 At "<tt>(I)nstall, (S)hell, or (H)alt</tt>", choose
1069     <tt><b><u>s</u></b></tt>.
1070     <br><tt># <b><u>fdisk -u wd0</u></b></tt>
1071     <br><tt>Do you want to change our idea of what BIOS thinks? [n]</tt>
1072     (just press <b>ENTER</b>)
1073     <br><tt>Which partition do you want to change?: [none] <b><u>0</u></b></tt>
1074     <br><tt>sysid: ... </tt> (just press <B>ENTER</b>)
1075     <br><tt>start: ... <b><u>1cyl</u></b></tt>
1076     <br><tt>size: ... </tt> (just press <B>ENTER</b>)
1077     <br><tt>Which partition do you want to change?: [none]</tt> (press <b>ENTER</b>)
1078     <br><tt>Should we write new partition table? [n] <b><u>y</u></b></tt>
1079     <br><tt># <b><u>disklabel -I -i wd0</u></b></tt>
1080     <br><tt>partition&gt; <b><u>a</u></b></tt>
1081     <br><tt>Filesystem type [?] [unused]: <b><u>4.2BSD</u></b></tt>
1082     <br><tt>Start offset ('x' to start after partition 'x') [0c, 0s, 0M]: <b><u>1c</u></b></tt>
1083     <br><tt>Partition size ('$' for all remaining) [0c, 0s, 0M]: <b><u>900M</u></b></tt>
1084     <br><tt>partition&gt; <b><u>b</u></b></tt>
1085     <br><tt>Filesystem type [?] [unused]: <b><u>swap</u></b></tt>
1086     <br><tt>Start offset ('x' to start after partition 'x') [0c, 0s, 0M]: <b><u>a</u></b></tt>
1087     <br><tt>Partition size ('$' for all remaining) [0c, 0s, 0M]: <b><u>$</u></b></tt>
1088     <br><tt>partition&gt; <b><u>W</u></b></tt>
1089     <br><tt>Label disk [n]? <b><u>y</u></b></tt>
1090     <br><tt>partition&gt; <b><u>Q</u></b></tt>
1091     <br><tt># <b><u>newfs wd0a</u></b></tt>
1092     <br><tt># <b><u>sysinst</u></b></tt>
1093     <br>Choose to install onto <b>wd0</b>. Choose
1094     "<tt>a: Edit the MBR partition table</tt>"
1095     when presented with that option.
1096     <br>Choose the 'a' partition/slice,
1097     set the 'e' ("active") and 'f' ("install") fields to <b>Yes</b>,
1098     and then choose "<tt>x: Partition table OK</tt>".
1099     <br>Choose "<tt>b: Use existing partition sizes</tt>" in the next
1100     menu.
1101     <br>Select partition 'a' and press ENTER. Set field 'k' (mount point)
1102     to '<tt><b>/</b></tt>'.
1103     <br>Get out of the partitioner by selecting
1104     "<tt>x: Partition sizes ok</tt>" twice.
1105     <br>At "<tt>Write outside MBR partition? [n]:</tt>", just press
1106     <b>ENTER</b>.
1107     <br>Install from CD-ROM, device <b>wd1c</b>.
1108     </ol>
1109    
1110     <p>If everything worked, NetBSD should now be installed on the disk image.
1111     Use the following command line to boot the emulated machine:<pre>
1112 dpavlin 34 <b>gxemul -X -e ibm6050 -d nbsd_prep.img netbsd-GENERIC.gz</b>
1113 dpavlin 20
1114     </pre>
1115    
1116     <p>When asked which the root device is, type <tt><b>wd0</b></tt> and
1117     just press ENTER to select the default values for dump device, file
1118     system type, and init path.
1119    
1120    
1121    
1122    
1123    
1124    
1125 dpavlin 30
1126    
1127    
1128    
1129    
1130    
1131 dpavlin 34 <p><br>
1132     <a name="netbsdmacppcinstall"></a>
1133     <h3>NetBSD/macppc:</h3>
1134 dpavlin 30
1135 dpavlin 34 It is possible to install and run <a
1136     href="http://www.netbsd.org/Ports/macppc/">NetBSD/macppc</a> in GXemul on
1137     an emulated generic PowerPC machine. No specific Machintosh model is
1138     emulated, but it is enough to for NetBSD to recognize it.
1139 dpavlin 30
1140 dpavlin 36 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1141     <a href="20070318-netbsd-macppc.png"><img src="20070318-netbsd-macppc_small.png"></a>
1142    
1143 dpavlin 34 <p>To install NetBSD/macppc onto a disk image, follow these instructions:
1144 dpavlin 30
1145 dpavlin 34 <p>
1146     <ol start="1">
1147     <li>Create an empty harddisk image, which will be the root disk
1148     that you will install NetBSD/macppc onto:<pre>
1149     <b>dd if=/dev/zero of=nbsd_macppc.img bs=1024 count=1 seek=3000000</b>
1150 dpavlin 32
1151 dpavlin 34 </pre>
1152     <li>Download the NetBSD/macppc 3.1 ISO image and a generic kernel:<pre>
1153     <a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/macppccd-3.1.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/macppccd-3.1.iso</a>
1154     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/macppc/binary/kernel/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/macppc/binary/kernel</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/macppc/binary/kernel/netbsd-GENERIC.MP.gz">netbsd-GENERIC.MP.gz</a>
1155 dpavlin 32
1156 dpavlin 34 </pre>
1157     <p>
1158     <li>Start the installation like this:<pre>
1159     <b>gxemul -x -e g4 -d nbsd_macppc.img -d b:macppccd-3.1.iso -j macppc/binary/kernel/netbsd-INSTALL.gz</b>
1160 dpavlin 32
1161     </pre>
1162 dpavlin 34 and continue as you would do when installing NetBSD on a real
1163     machine.
1164     <p>
1165     <li>Before turning the emulated machine off, quit the NetBSD installer
1166     and execute the following commands:<pre>
1167     <b>cd /; mount /dev/wd0a /mnt
1168     echo 'console "/usr/libexec/getty std.38400" vt100 on secure' > /mnt/etc/ttys
1169     echo 'rc_configured=YES' >> /mnt/etc/rc.conf
1170     umount /mnt; sync
1171     reboot</b>
1172 dpavlin 32
1173 dpavlin 34 </pre>
1174     </ol>
1175 dpavlin 32
1176 dpavlin 34 <p>If everything worked, NetBSD/macppc should now be installed on
1177     the disk image.
1178    
1179     <p>Use the following command line to boot the emulated machine:<pre>
1180     <b>gxemul -x -e g4 -d nbsd_macppc.img netbsd-GENERIC.MP.gz</b>
1181    
1182 dpavlin 32 </pre>
1183    
1184 dpavlin 34 <p>If asked about <tt>root device</tt>, enter <tt><b>wd0</b></tt>.
1185 dpavlin 32
1186    
1187    
1188    
1189    
1190    
1191    
1192    
1193    
1194    
1195    
1196    
1197    
1198 dpavlin 34 <p><br>
1199     <a name="netbsddreamcast"></a>
1200     <h3>NetBSD/dreamcast:</h3>
1201 dpavlin 32
1202 dpavlin 34 Moved <a href="dreamcast.html#netbsd_generic_md">here</a>.
1203 dpavlin 32
1204 dpavlin 34
1205    
1206    
1207    
1208    
1209    
1210    
1211    
1212    
1213    
1214    
1215    
1216    
1217 dpavlin 2 <p><br>
1218 dpavlin 22 <a name="openbsdpmaxinstall"></a>
1219 dpavlin 10 <h3>OpenBSD/pmax:</h3>
1220 dpavlin 2
1221 dpavlin 10 Installing <a href="http://www.openbsd.org/pmax.html">OpenBSD/pmax</a> is
1222     a bit harder than installing NetBSD/pmax. You should first read the <a
1223 dpavlin 22 href="#netbsdpmaxinstall">section above</a> on how to install NetBSD/pmax,
1224 dpavlin 2 before continuing here. If you have never installed OpenBSD on any
1225 dpavlin 10 architecture, then you need a great deal of patience to do this. If, on
1226     the other hand you are used to installing OpenBSD, then this should be no
1227     problem for you.
1228 dpavlin 2
1229     <p>
1230 dpavlin 4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1231     <a href="20040710-openbsd-pmax.png"><img src="20040710-openbsd-pmax_small.png"></a>
1232     &nbsp;&nbsp;&nbsp;
1233     <a href="openbsd-pmax-20040710.png"><img src="openbsd-pmax-20040710_small.png"></a>
1234    
1235     <p>
1236 dpavlin 2 OpenBSD/pmax died at release 2.8 of OpenBSD, so you should be
1237     aware of the fact that this will not give you an up-to-date OpenBSD
1238     system.
1239    
1240     <p>
1241     Following these instructions <i>might</i> work. If not, then use
1242     common sense and imagination to modify them as you see fit.
1243    
1244     <p>
1245     <ol>
1246     <li>Create an empty harddisk image, which will be the root disk
1247     that OpenBSD installs itself onto:<pre>
1248 dpavlin 12 <b>dd if=/dev/zero of=obsd_pmax.img bs=1 count=512 seek=900000000</b>
1249 dpavlin 2
1250     </pre>
1251     <li>Download the entire pmax directory from the ftp server: (approx. 99 MB)<pre>
1252 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>
1253 dpavlin 2
1254     </pre>
1255    
1256 dpavlin 12 <li>Execute the following commands:
1257     <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
1258     <b>mv ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/simpleroot28.fs.gz .
1259     gunzip simpleroot28.fs.gz
1260     chmod +w simpleroot28.fs</b> &lt;--- make sure
1261     </pre></td></tr></table>
1262 dpavlin 2 <li>You now need to make an ISO image of the entire directory you downloaded.
1263 dpavlin 10 (I recommend using <tt>mkisofs</tt> for that purpose. If you don't
1264 dpavlin 6 already have <tt>mkisofs</tt> installed on your system, you need
1265 dpavlin 10 to install it in order to do this.)<pre>
1266 dpavlin 12 <b>mkisofs -o openbsd_pmax_2.8.iso ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax</b>
1267 dpavlin 24 <b>rm -rf ftp.se.openbsd.org</b> <i>(this directory is not needed anymore)</i>
1268 dpavlin 2
1269     </pre>
1270     <li>Start the emulator with all three (!) disk images:<pre>
1271 dpavlin 24 <b>gxemul -e 3max -d obsd_pmax.img -d b:simpleroot28.fs -j bsd -d c:openbsd_pmax_2.8.iso</b>
1272 dpavlin 2
1273     </pre>
1274 dpavlin 12 (If you add <tt>-X</tt>, you will run with the graphical
1275 dpavlin 6 framebuffer. This is <i>REALLY</i> slow because the console has to
1276     scroll a lot during the install. I don't recommend it.)
1277 dpavlin 2 <p>
1278     <li>Go on with the installation as you would do if you were installing on a real machine.
1279     If you are not used to the OpenBSD installer, then this will most likely
1280     be a very uncomfortable experience. Some important things to keep in mind are:
1281     <ul>
1282     <li>rz0 is the rootdisk you wish to install onto.
1283     <li>rz1 is the simpleroot image.
1284     <li>rz2 is the CDROM containing the "install sets".
1285     <li>When asked for the "<b>root device?</b>", enter <b>rz1</b>.
1286     <li>At "<b>Enter pathname of shell or RETURN for sh:</b>", press enter.
1287     <li>At the # prompt, do the following:<pre>
1288 dpavlin 12 <b>fsck /dev/rz1a</b> (and mark the filesystem as clean)
1289     <b>mount /dev/rz1a /</b>
1290 dpavlin 34 <b>mkdir /kern</b>
1291     <b>mkdir /mnt2</b>
1292 dpavlin 12 <b>mount -t kernfs kern kern</b>
1293     <b>./install</b>
1294 dpavlin 2
1295     </pre>
1296     and proceed with the install. Good luck. :-)
1297     <li>Answer "<b>y</b>" when asked if you wish to configure the network.
1298     (See the section about installing NetBSD/pmax for suitable
1299     network settings.)
1300     <li>Install from "<b>c</b>" (cdrom), choose "<b>rz2</b>" as the cdrom device, and "<b>/</b>" as
1301     the directory containing the install sets.
1302     </ul>
1303     <p>
1304 dpavlin 10 <li>For some unknown reason, the install script does not set the root
1305     password! The first time you boot up OpenBSD after the install, you
1306     need to go into single user mode and run <b>passwd root</b> to set
1307     the root password, or you will not be able to log in at all!<pre>
1308 dpavlin 24 <b>gxemul -e 3max -d obsd_pmax.img -d 2c:openbsd_pmax_2.8.iso -j bsd -o '-s'</b>
1309 dpavlin 2 </pre>
1310     While you are at it, you might want to extract the X11 install sets
1311     as well, as the installer seems to ignore them too. (Perhaps due to a bug
1312     in the installer, perhaps because of the way I used mkisofs.)
1313     <p>
1314     Execute the following commands in the emulator:
1315 dpavlin 12 <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
1316     <b>fsck /dev/rz0a
1317     mount /
1318     passwd root
1319 dpavlin 2
1320 dpavlin 12 cd /; mount -t cd9660 /dev/rz2c /mnt; sh
1321     for a in /mnt/[xX]*; do tar zxvf $a; done
1322     ln -s /usr/X11R6/bin/Xcfbpmax /usr/X11R6/bin/X
1323     ln -s /dev/fb0 /dev/mouse
1324     echo /usr/X11R6/lib &gt;&gt; /etc/ld.so.conf
1325     ldconfig
1326 dpavlin 2
1327 dpavlin 12 sync
1328     halt</b>
1329     </pre></td></tr></table>
1330 dpavlin 2 </ol>
1331    
1332     <p>
1333     NOTE: It is also possible to install via ftp instead of using a CDROM image.
1334     This is not much less awkward, you still need the simpleroot filesystem
1335     image, and you still have to manually add the X11 install sets and set the
1336     root password, and so on.
1337    
1338     <p>
1339     Once you have completed the installation procedure, the following command
1340     will let you boot from the new rootdisk image:
1341     <pre>
1342 dpavlin 22 <b>gxemul -e 3max -X -o '-aN' -d obsd_pmax.img -j bsd</b>
1343 dpavlin 2 </pre>
1344    
1345     <p>
1346 dpavlin 6 (Normally, you would be asked about which root device to use (<tt>rz0</tt>),
1347     but using <b><tt>-o '-aN'</tt></b> supresses that.)
1348 dpavlin 2
1349     <p>
1350     When asked for which terminal type to use, when logging in as root,
1351 dpavlin 6 enter <b><tt>rcons</tt></b> if you are using the graphical framebuffer,
1352     <b><tt>vt100</tt></b> for text-mode.
1353     <br>Use <b><tt>startx</tt></b> to start X windows.
1354 dpavlin 2
1355    
1356    
1357    
1358    
1359    
1360 dpavlin 10
1361 dpavlin 2
1362    
1363     <p><br>
1364 dpavlin 14 <a name="openbsdcatsinstall"></a>
1365     <h3>OpenBSD/cats:</h3>
1366    
1367     It is possible to install and run
1368     <a href="http://www.openbsd.org/cats.html">OpenBSD/cats</a>
1369 dpavlin 32 in GXemul. Unfortunately, "The OpenBSD/cats port has been discontinued
1370     after the 4.0 release." according to
1371     <a href="http://www.openbsd.org/cats.html">http://www.openbsd.org/cats.html</a>,
1372     but 4.0 should run fine.
1373 dpavlin 14
1374     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1375     <a href="20051007-openbsd-cats-installed.png"><img src="20051007-openbsd-cats-installed_small.png"></a>
1376    
1377     <p>To install OpenBSD/cats onto an emulated harddisk image,
1378     follow these instructions:
1379    
1380     <p>
1381     <ol>
1382     <li>Create an empty harddisk image, which will be the root disk
1383     that OpenBSD installs itself onto:<pre>
1384     <b>dd if=/dev/zero of=obsd_cats.img bs=1024 count=1 seek=1900000</b>
1385    
1386     </pre>
1387     <li>Download the entire cats directory from the ftp server:<pre>
1388 dpavlin 32 <b>wget -np -l 0 -r <a href="ftp://ftp.se.openbsd.org/pub/OpenBSD/4.0/cats/">ftp://ftp.se.openbsd.org/pub/OpenBSD/4.0/cats/</a></b>
1389     <b>cp ftp.se.openbsd.org/pub/OpenBSD/4.0/cats/bsd .</b>
1390     <b>cp ftp.se.openbsd.org/pub/OpenBSD/4.0/cats/bsd.rd .</b>
1391 dpavlin 14
1392     </pre>
1393 dpavlin 32 (Replace ftp.se.openbsd.org with a server closer to you, for
1394 dpavlin 24 increased download speed.)
1395     <p>
1396 dpavlin 14 <li>You now need to make an ISO image of the entire directory you downloaded.
1397     (I recommend using <tt>mkisofs</tt> for that purpose. If you don't
1398     already have <tt>mkisofs</tt> installed on your system, you need
1399     to install it in order to do this.)<pre>
1400 dpavlin 32 <b>mkisofs -allow-lowercase -o openbsd_cats_4.0.iso ftp.se.openbsd.org/pub/OpenBSD/</b>
1401     <b>rm -rf ftp.se.openbsd.org</b> <i>(this directory is not needed anymore)</i>
1402 dpavlin 14
1403     </pre>
1404     <li>Start the emulator using this command line:<pre>
1405 dpavlin 32 <b>gxemul -XEcats -d obsd_cats.img -d openbsd_cats_4.0.iso bsd.rd</b>
1406 dpavlin 14
1407     </pre>
1408     and proceed like you would do if you were installing OpenBSD
1409 dpavlin 16 on a real CATS. (Install onto <tt>wd0</tt>, don't configure the
1410 dpavlin 20 network, install from CD.)
1411 dpavlin 14 </ol>
1412    
1413 dpavlin 20 <p>(Although it <i>is</i> possible to configure the network, IPv4 address
1414     10.0.0.1, netmask 255.0.0.0, gateway/default route 10.0.0.254, and
1415     nameserver 10.0.0.254, the userland NAT-like networking layer is not
1416     stable enough yet to support a full install via ftp.)
1417    
1418 dpavlin 16 <p><b>NOTE:</b> Make sure that you <tt>sync</tt> and <tt>reboot</tt>
1419     correctly once the installation is finished, or the <tt>/dev</tt> nodes
1420     may not have been written correctly to disk.
1421 dpavlin 14
1422 dpavlin 16 <p>Once the install has finished, the following command should let you
1423 dpavlin 14 boot from the harddisk image:
1424    
1425 dpavlin 16 <p><pre>
1426 dpavlin 22 <b>gxemul -XEcats -d obsd_cats.img bsd</b>
1427 dpavlin 16
1428 dpavlin 14 </pre>
1429    
1430    
1431    
1432    
1433    
1434    
1435    
1436     <p><br>
1437 dpavlin 2 <a name="ultrixinstall"></a>
1438 dpavlin 10 <h3>Ultrix/RISC:</h3>
1439 dpavlin 2
1440 dpavlin 4 Ultrix 4.x can run in GXemul on an emulated DECstation 5000/200.
1441 dpavlin 30 (Ultrix was the native OS for these machines, but
1442     <a href="#netbsdpmaxinstall">NetBSD/pmax</a> is also usable.)
1443 dpavlin 2
1444 dpavlin 4 <p>
1445     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1446 dpavlin 24 <a href="20040504-ultrix45-boot1.png"><img src="20040504-ultrix45-boot1_small.png"></a>
1447 dpavlin 4 &nbsp;&nbsp;&nbsp;
1448 dpavlin 24 <a href="ultrix4.5-20040706.png"><img src="ultrix4.5-20040706_small.png"></a>
1449 dpavlin 4
1450     <p>
1451     The following instructions should let you install Ultrix onto a disk image:
1452    
1453 dpavlin 2 <ol>
1454     <li>Create an empty harddisk image, which will be the root disk
1455     that Ultrix installs itself onto:<pre>
1456 dpavlin 12 <b>dd if=/dev/zero of=rootdisk.img bs=1024 count=1 seek=800000</b>
1457 dpavlin 2
1458     </pre>
1459 dpavlin 6 <li>Place your Ultrix installation media in your CDROM drive.
1460     (On FreeBSD and similar systems, it is called <tt>/dev/cd0c</tt>.
1461     Replace that with the name of your CDROM drive, or the name of a
1462     .iso image file.) Then, start the emulator like this:<pre>
1463 dpavlin 24 <b>gxemul -X -e 3max -d rootdisk.img -d bc:/dev/cd0c -j vmunix</b>
1464 dpavlin 2
1465     </pre>
1466     <li>Once the first stage of the installation is done (restoring the root
1467     filesystem), you need to restart the emulator, booting from the
1468     new rootdisk, to continue the installation process.
1469 dpavlin 6 This is done by removing the bootflag ('<tt>b</tt>') from the second
1470 dpavlin 2 diskimage argument:<pre>
1471 dpavlin 24 <b>gxemul -X -e 3max -d rootdisk.img -d c:/dev/cd0c -j vmunix</b>
1472 dpavlin 2
1473     </pre>
1474     </ol>
1475    
1476     <p>
1477     When the installation is completed, the following command should start
1478     Ultrix from the harddisk image:<pre>
1479 dpavlin 24 <b>gxemul -X -e 3max -j vmunix -d rootdisk.img</b>
1480 dpavlin 2 </pre>
1481    
1482 dpavlin 24 <p>If you have a very fast host machine, you might experience a weird
1483 dpavlin 10 timer related bug, which makes it impossible to logon to the system. It is
1484     triggered when the emulation goes faster than any real DECstation machine
1485     was capable of running. A temporary workaround is to add
1486     <b><tt>-I33000000</tt></b> to fix the emulated clock speed to 33 million
1487 dpavlin 32 instructions per emulated second.
1488 dpavlin 2
1489 dpavlin 32 <p>If the workaround above doesn't work, you can also start up other
1490     processes on the host, apart from the emulator, so that the emulator runs
1491     more slowly. This is an ugly workaround, but seems to work. Once you have
1492     logged in into Ultrix, you can kill the extra processes.
1493    
1494     <p>You can experiment with adding <b><tt>-Z2</tt></b> (for emulating a
1495 dpavlin 6 dual-headed workstation) or even <b><tt>-Z3</tt></b> (tripple-headed), and
1496     also the <b><tt>-Y2</tt></b> option for scaling down the framebuffer
1497     windows by a factor 2x2.
1498     There is also a <b><tt>-z</tt></b> option for supplying names of X11
1499     displays to use. The following example starts Ultrix on an emulated
1500     tripple-headed workstation, on three different displays (<tt>remote1:0.0</tt>,
1501     <tt>localhost:0.0</tt>, and <tt>remote2:0.0</tt>), using no scaledown:<pre>
1502 dpavlin 24 <b>gxemul -N -e 3max -jgenvmunix -d rootdisk.img \
1503 dpavlin 6 -XZ3 -z remote1:0.0 -z localhost:0.0 -z remote2:0.0</b>
1504 dpavlin 2 </pre>
1505    
1506 dpavlin 32 <p>The photo below shows a single Ultrix session running tripple-headed in
1507 dpavlin 6 GXemul on an Alpha 21164PC, with displays on a Sun Ultra1 (to the left),
1508     on the Alpha itself (in the middle), and on an HP700/RX X-terminal (8-bit
1509     color depth, running off the Alpha) to the right.
1510    
1511 dpavlin 32 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1512 dpavlin 6 <a href="20041209-ultrix-tripplehead.jpg"><img src="20041209-ultrix-tripplehead_small.jpg"></a>
1513    
1514 dpavlin 32 <p>The X11 displays may differ in bit depth and endianness. Unfortunately,
1515 dpavlin 2 there is no way yet to set the scaledown factor on a per-window basis, so
1516     the scaledown factor affects all windows.
1517    
1518 dpavlin 32 <p>(If you didn't use <tt><b>-Z<i>n</i></b></tt> during the installation, and
1519 dpavlin 6 compiled your own <tt>/vmunix</tt>, then it will not contain support for
1520     multiple graphics cards. To overcome this problem, use the generic kernel,
1521     <tt><b>-j genvmunix</b></tt>, whenever you are running the emulator with a
1522     different setup than the one you used when Ultrix was installed.)
1523 dpavlin 2
1524 dpavlin 32 <p>A note for the historically interested: OSF/1 for MIPS was quite similar
1525 dpavlin 4 to Ultrix, so that is possible to run as well. If you are unsuccessful
1526     in installing Ultrix or OSF/1 directly in the emulator, you can always
1527     install it on your real machine onto a real SCSI disk, and then copy the
1528 dpavlin 6 contents of that SCSI disk into a file (using <b><tt>dd(1)</tt></b>), and use
1529 dpavlin 4 that file as a disk image file in the emulator.
1530 dpavlin 2
1531    
1532    
1533    
1534    
1535    
1536     <p><br>
1537     <a name="sprite"></a>
1538 dpavlin 10 <h3>Sprite for DECstation:</h3>
1539 dpavlin 2
1540     Sprite was a research operating system at the University of Berkeley.
1541     The Unix Heritage Society (TUHS, <a href="http://www.tuhs.org">www.tuhs.org</a>)
1542     has made available a copy of a Sprite harddisk image for a DECstation 5000/200.
1543     If you want to find out more about Sprite in general, read
1544     <a href="http://www.cs.berkeley.edu/projects/sprite/retrospective.html">
1545     http://www.cs.berkeley.edu/projects/sprite/retrospective.html</a>.
1546    
1547     <p>
1548 dpavlin 4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1549     <a href="20040711-sprite-1.png"><img src="20040711-sprite-1_small.png"></a>
1550     &nbsp;&nbsp;&nbsp;
1551     <a href="sprite-20040711.png"><img src="sprite-20040711_small.png"></a>
1552    
1553     <p>
1554 dpavlin 2 The following instructions should let you run Sprite in the emulator:
1555    
1556     <p>
1557     <ol>
1558 dpavlin 10 <li>Download the Sprite harddisk image:<pre>
1559     <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>
1560 dpavlin 2 83973120 bytes, MD5 = ec84eeeb20fe77b758370d5e312e4a5e
1561    
1562     </pre>
1563     <li>Start the emulator with the following command line:<pre>
1564 dpavlin 12 <b>gxemul -X -e 3max -M128 -d ds5000.bt -j vmsprite -o ''</b>
1565 dpavlin 2
1566     </pre>
1567     </ol>
1568    
1569     <p>
1570     The first time you boot up with the disk image, you will be asked a number
1571     of questions regarding network settings. If you feel like entering correct
1572     values, then you should use the following:
1573     <p>
1574    
1575     <pre>
1576 dpavlin 10 Your machine's Ethernet address: 10:20:30:00:00:10
1577 dpavlin 2 Your machine's IP: 10.0.0.1
1578     Subnet mask: 0xff000000
1579     Gateway's Ethernet address: 60:50:40:30:20:10
1580     Gateway's IP: 10.0.0.254
1581     </pre>
1582    
1583     <p>
1584 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>,
1585     the following sad statement can be found:
1586 dpavlin 2 <pre>
1587     The bootable Sprite image is meant to be a demonstration of Sprite, not
1588     a robust Sprite system. There are several missing things, such as
1589     floating point and network support.
1590     </pre>
1591    
1592 dpavlin 10 <p>Once you are logged in as root, running <b><tt>xinit</tt></b> will
1593     start the X11 environment.
1594 dpavlin 2
1595    
1596    
1597    
1598    
1599 dpavlin 10
1600 dpavlin 2 <p><br>
1601     <a name="declinux"></a>
1602 dpavlin 10 <h3>Debian GNU/Linux for DECstation:</h3>
1603 dpavlin 2
1604 dpavlin 22 It is possible to run Debian GNU/Linux for DECstation in the emulator,
1605 dpavlin 32 on an emulated 5000/200 ("3max"). However, just choosing any
1606     Linux/DECstation kernel at random for the installation will not work.
1607    
1608     <p><ul>
1609     <li>Linux 2.4/DECstation DZ serial console output doesn't work too well in
1610     GXemul. Linux oopses randomly, which may be due to bugs in GXemul,
1611     but may also be due to bugs in the serial controller code in Linux.
1612 dpavlin 22 (The speed at which serial interrupts are generated can be
1613     lowered with the <tt>-U</tt> command line option, but it only
1614     reduces the risk, it doesn't take away the oopses completely.)
1615 dpavlin 32 <li>The Linux 2.6/DECstation DZ serial console driver doesn't work at
1616     all in the emulator, and I'm not really sure it would work on a
1617     real 5000/200 either. Hopefully this will be fixed in Linux in
1618     the future.
1619     <li>To get around the serial console problem, the obvious solution is to
1620     use a graphical framebuffer instead. Old Debian install kernels
1621     supported the graphical framebuffer on the 3max, but not the
1622     keyboard. (This has been fixed now, it seems.)
1623     <li>For quite some time, the MIPS linux cvs tree has had support for the
1624     framebuffer and keyboard, but it did not include Debian's
1625     patches for networking, which made it unusable for network
1626     installs. (Possibly fixed now.)
1627     <li>The kernel has to be for 5000/200. This rules out using
1628     the default kernel on netinst ISO images provided by Debian.
1629     These ISO images boot directly into a kernel which is meant
1630     for a different DECstation model.
1631     <li>The kernel has to have an initrd which more or less matches the
1632     version of Debian that will be installed.
1633 dpavlin 22 </ul>
1634 dpavlin 10
1635 dpavlin 32 <p>Luckily, a precompiled install kernel has been made available by David
1636     Muse, for Debian for R3000 DECstations, which has support for framebuffer,
1637     keyboard, and networking, which works pretty well. Thanks David. :-)
1638 dpavlin 2
1639 dpavlin 32 <p>The following steps should let you install Debian GNU/Linux for
1640     DECstation onto a harddisk image in the emulator:
1641 dpavlin 2
1642     <p>
1643     <ol>
1644     <li>Create an empty harddisk image, which will be the root disk
1645     that Debian installs itself onto:<pre>
1646 dpavlin 32 <b>dd if=/dev/zero of=debian_pmax.img bs=1024 count=1 seek=6000000</b>
1647 dpavlin 2
1648     </pre>
1649 dpavlin 22 <li>Download David Muse' install kernel, and a Debian Netinstall CD-ROM:<pre>
1650     <a href="http://www.firstworks.com/mips-linux-2.4.31/vmlinux-2.4.31">http://www.firstworks.com/mips-linux-2.4.31/vmlinux-2.4.31</a>
1651     <a href="http://cdimage.debian.org/debian-cd/3.1_r0a/mipsel/iso-cd/debian-31r0a-mipsel-netinst.iso">http://cdimage.debian.org/debian-cd/3.1_r0a/mipsel/iso-cd/debian-31r0a-mipsel-netinst.iso</a>
1652 dpavlin 2
1653     </pre>
1654     <p>
1655 dpavlin 22 <li>Start the installation like this:<pre>
1656 dpavlin 24 <b>gxemul -X -e3max -d debian_pmax.img -d debian-31r0a-mipsel-netinst.iso vmlinux-2.4.31</b>
1657     </pre>
1658 dpavlin 2
1659 dpavlin 24 <p>If everything goes well, you will see Linux' boot messages, and then
1660     arrive at the language chooser.
1661    
1662     <p>
1663     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="debian-1.png"><img src="debian-1-small.png"></a>
1664     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="debian-2.png"><img src="debian-2-small.png"></a>
1665     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="debian-3.png"><img src="debian-3-small.png"></a>
1666     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="debian-4.png"><img src="debian-4-small.png"></a>
1667    
1668     <p>There will be a warning about the keyboard
1669     layout. Don't mind this. Continue, and then select <b>Detect
1670     and mount CD-ROM</b> in the next menu.
1671    
1672     <p>
1673     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="debian-5.png"><img src="debian-5-small.png"></a>
1674     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="debian-6.png"><img src="debian-6-small.png"></a>
1675     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="debian-7.png"><img src="debian-7-small.png"></a>
1676     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="debian-8.png"><img src="debian-8-small.png"></a>
1677    
1678 dpavlin 10 <p>
1679 dpavlin 24 There will also be a warning about lack of loadable modules. Don't
1680     mind this either, continue anyway by choosing <b>Yes</b>.
1681 dpavlin 22 <p>
1682 dpavlin 24 When you reach the network configuration part of the install, choose
1683     <b>Configure network manually</b> and enter the following values:<pre>
1684 dpavlin 10 IP address: <b>10.0.0.1</b>
1685     Netmask: <b>255.0.0.0</b>
1686     Gateway: <b>10.0.0.254</b>
1687     Name server addresses: <b>10.0.0.254</b>
1688 dpavlin 24
1689 dpavlin 2 </pre>
1690 dpavlin 24 <p>Choose <b>Erase entire disk</b> in the partitioner.
1691 dpavlin 2
1692 dpavlin 24 <p>Wait for the base system to be installed. This takes almost forever,
1693     so you can go fetch several <a href="http://en.wikipedia.org/wiki/Jolt_Cola">Jolts</a>
1694     or cups of coffee in the meanwhile.
1695    
1696     <p>
1697     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="debian-9.png"><img src="debian-9-small.png"></a>
1698     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="debian-10.png"><img src="debian-10-small.png"></a>
1699     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="debian-11.png"><img src="debian-11-small.png"></a>
1700     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="debian-12.png"><img src="debian-12-small.png"></a>
1701    
1702     <p>Congratulations! The first phase of the installation is now completed.
1703     Reboot using the following command line:<pre>
1704     <b>gxemul -X -e3max -o 'root=/dev/sda1' -d debian_pmax.img vmlinux-2.4.31</b>
1705    
1706     </pre>
1707     <p>The post-install step takes quite some time as well. A perfect opportunity
1708     for more coffee.
1709    
1710 dpavlin 32 <p>When asked about whether the hardware clock is set to GMT or
1711     not, answer Yes.
1712    
1713 dpavlin 24 <p>When asked about "Apt configuration", choose <b>http</b> as the method
1714     to use for accessing the Debian archive.
1715    
1716     <p>
1717     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="debian-13.png"><img src="debian-13-small.png"></a>
1718     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="debian-14.png"><img src="debian-14-small.png"></a>
1719     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="debian-15.png"><img src="debian-15-small.png"></a>
1720    
1721     <p>Downloading the packages takes almost forever. Be patient.
1722    
1723     <p>Congratulations (again)! You are now fully done with the installation.
1724    
1725 dpavlin 2 </ol>
1726    
1727 dpavlin 24 <p><br>Debian GNU/Linux for DECstation is now installed and ready to be used.
1728     Use this command to boot from the installed disk image:<pre>
1729     <b>gxemul -X -e3max -o 'root=/dev/sda1' -d debian_pmax.img vmlinux-2.4.31</b>
1730 dpavlin 2
1731     </pre>
1732    
1733    
1734    
1735    
1736    
1737    
1738    
1739     <p><br>
1740     <a name="declinuxredhat"></a>
1741 dpavlin 10 <h3>Redhat Linux for DECstation:</h3>
1742 dpavlin 2
1743    
1744 dpavlin 4 <p>
1745     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1746     <a href="20041129-redhat_mips.png"><img src="20041129-redhat_mips_small.png"></a>
1747 dpavlin 2
1748     <p>
1749     The following steps should let you run Redhat Linux for DECstation in GXemul:
1750    
1751     <p>
1752     <ol>
1753 dpavlin 24 <li>Download a kernel. David Muse' Debian-install kernel works fine:<pre>
1754 dpavlin 22 <a href="http://www.firstworks.com/mips-linux-2.4.31/vmlinux-2.4.31">http://www.firstworks.com/mips-linux-2.4.31/vmlinux-2.4.31</a>
1755 dpavlin 2
1756     </pre>
1757     <li>Download a root filesystem tree:<pre>
1758 dpavlin 32 <a href="ftp://ftp.linux-mips.org/pub/linux/mips/mipsel-linux/root/mipsel-root-20011216.tgz">ftp://ftp.linux-mips.org/pub/linux/mips/mipsel-linux/root/mipsel-root-20011216.tgz</a>
1759 dpavlin 2 19486676 bytes, md5 = 5bcb725c90209479cd7ead8ad0c4a414
1760    
1761     </pre>
1762 dpavlin 22 <li>Create a disk image which will contain the Redhat filesystem:<pre>
1763     <b>dd if=/dev/zero of=redhat_mips.img bs=1024 count=1 seek=2000000</b>
1764    
1765     </pre>
1766     <li>This is the tricky part: on redhat_mips.img, you need to create an MS-DOS
1767     (!) partition table, and then an ext2 partition. This is what Linux
1768     will then see as /dev/sda1.
1769 dpavlin 24 <p>I recommend you run fdisk and mke2fs and untar the archive from within
1770 dpavlin 22 Debian/DECstation or <a href="#debiancats">Debian/CATS</a> running
1771 dpavlin 24 inside the emulator. (Alternatively, if you are on a Linux host,
1772     you could use a loopback mount, or similar. This might require
1773     root access. See e.g.
1774     <a href="http://www.mega-tokyo.com/osfaq2/index.php/Disk%20Images%20Under%20Linux">http://www.mega-tokyo.com/osfaq2/index.php/Disk%20Images%20Under%20Linux</a>.)
1775 dpavlin 22 <p>
1776     In order to actually boot the system you need to modify /etc/fstab.
1777 dpavlin 2 Change<pre>
1778     /dev/root / nfs defaults 1 1
1779     #/dev/sdc1 / ext2 defaults 1 1
1780     none /proc proc defaults 0 0
1781     none /dev/pts devpts mode=0622 0 0
1782    
1783     </pre>to<pre>
1784     #/dev/root / nfs defaults 1 1
1785     /dev/sda1 / ext2 defaults 1 1
1786     none /proc proc defaults 0 0
1787     none /dev/pts devpts mode=0622 0 0
1788    
1789     </pre>(Note sda1 instead of sdc1.)
1790     </ol>
1791    
1792 dpavlin 22 <p>To boot Redhat linux from the disk image, use the following command line:<pre>
1793 dpavlin 24 <b>gxemul -X -e3max -o "root=/dev/sda1 ro" -d redhat_mips.img vmlinux-2.4.31</b>
1794 dpavlin 2
1795     </pre>
1796 dpavlin 22 If you need to boot into single user mode, change options to
1797     <tt><b>-o "root=/dev/sda1 rw init=/bin/sh"</b></tt>.
1798 dpavlin 2
1799    
1800    
1801    
1802    
1803    
1804    
1805     <p><br>
1806 dpavlin 10 <hr>
1807    
1808    
1809    
1810    
1811    
1812    
1813    
1814     <p><br>
1815 dpavlin 2 <a name="mach"></a>
1816 dpavlin 10 <h3>Mach/PMAX:</h3>
1817 dpavlin 2
1818     Read the following link if you want to know more about Mach in general:
1819     <a href="http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html">
1820     http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html</a>
1821    
1822     <p>
1823     <font color="#ff0000">NOTE: Mach for DECstation requires some files
1824     (called 'startup' and 'emulator') which I haven't been able to find
1825     on the web. Without these, Mach will not get very far. These
1826     installation instructions are preliminary.
1827     </font>
1828    
1829     <p>
1830 dpavlin 4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1831     <a href="20041018-mach_pmax.png"><img src="20041018-mach_pmax_small.png"></a>
1832    
1833     <p>
1834 dpavlin 2 The following steps should let you experiment with running Mach
1835     for DECstation in the emulator:
1836    
1837     <p>
1838     <ol>
1839     <li>Download the pmax binary distribution for Mach 3.0:<pre>
1840 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>
1841     <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>
1842 dpavlin 2 7263343 bytes, md5 = f9d76c240a6e169921a1df99ad560cc0
1843    
1844     </pre>
1845     <li>Extract the Mach kernel:<pre>
1846 dpavlin 12 <b>tar xfvz pmax.tar.Z pmax_mach/special/mach.boot.MK83.STD+ANY</b>
1847 dpavlin 2
1848     </pre>
1849     <li>Create an empty disk image:<pre>
1850 dpavlin 12 <b>dd if=/dev/zero of=disk.img bs=1 count=512 seek=400000000</b>
1851 dpavlin 2
1852     </pre>
1853     <li>Load the contents of pmax.tar.Z onto the disk image. This is
1854     complicated, and should be described in more detail some time.
1855     For now, use your imagination. (For example using OpenBSD/pmax:
1856     <i>disklabel -E rz1; newfs -O /dev/rz1a;
1857     mount /dev/rz1a /mnt; cd /mnt; download pmax.tar.Z using ftp;
1858     tar xzvf pmax.tar.Z; mv pmax_mach/* .; rmdir pmax_mach;
1859     mkdir mach_servers;
1860     cd mach_servers;
1861     cp ../etc/mach_init .;
1862     cp ../tests/test_service startup;
1863     dd if=/dev/zero of=paging_file bs=65536 count=400;
1864     cd /; sync; umount /mnt</i>)
1865     <p>
1866     <li>Start the emulator with the following command:<pre>
1867 dpavlin 34 <b>gxemul -c 'put w 0x800990e0, 0' -c 'put w 0x80099144, 0' \
1868     -c 'put w 0x8004aae8, 0' -e 3max -X -d disk.img \
1869 dpavlin 2 pmax_mach/special/mach.boot.MK83.STD+ANY</b>
1870    
1871     </pre>
1872     </ol>
1873    
1874 dpavlin 34 <p>Earlier versions of GXemul had a configure option to enable better
1875     R3000 cache emulation, but since Mach was more or less the only thing that
1876     used it, I removed it. Today's version of GXemul can thus not boot
1877     mach.boot.MK83.STD+ANY straight off, it has to be patched to skip the
1878     cache detection.
1879 dpavlin 2
1880 dpavlin 34 <p>The -c commands above patch the kernel to get past the cache detection.
1881     Thanks to Artur Bujdoso for these values.
1882 dpavlin 2
1883 dpavlin 34 <p>TODO: Better instructions on how to create the old-style UFS disk
1884     image.
1885 dpavlin 2
1886    
1887    
1888    
1889 dpavlin 34
1890 dpavlin 10 <p><br>
1891     <a name="openbsdsgiinstall"></a>
1892     <h3>OpenBSD/sgi:</h3>
1893 dpavlin 2
1894 dpavlin 10 <a href="http://www.openbsd.org/sgi.html">OpenBSD/sgi</a>
1895     can (almost) run in GXemul on an emulated O2 (SGI-IP32) with root on nfs.
1896    
1897     <p>
1898     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1899     <a href="20050617-openbsd-sgi.png"><img src="20050617-openbsd-sgi_small.png"></a>
1900    
1901     <p><font color="#ff0000">NOTE: I haven't succeeded all the way with
1902     this yet, and this shows/triggers many bugs in the emulator, but some of
1903     it works.</font>
1904    
1905     <p>GXemul does not yet emulate the AHC PCI SCSI controller in the O2. (I have
1906     mailed Adaptec several times, asking for documentation, but never received
1907 dpavlin 12 any reply.) OpenBSD/sgi can still run in the emulator, as long as it doesn't
1908     use SCSI. For a simple test with the ramdisk (install) kernel, try dowloading<pre>
1909 dpavlin 24 <a href="ftp://ftp.se.openbsd.org/pub/OpenBSD/3.9/sgi/">ftp://ftp.se.openbsd.org/pub/OpenBSD/3.9/sgi</a>/<a href="ftp://ftp.se.openbsd.org/pub/OpenBSD/3.9/sgi/bsd.rd">bsd.rd</a>
1910 dpavlin 10
1911 dpavlin 24 </pre>and run <b><tt>gxemul -xeo2 bsd.rd</tt></b>.
1912 dpavlin 10
1913     <p>It might also be possible to netboot. Another emulated machine must
1914     then be used as the nfs root server, and the emulated O2 machine must boot
1915 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>
1916 dpavlin 10 client. Performing this setup is quite time consuming, but necessary:
1917    
1918     <p>
1919     <ol>
1920     <li>First of all, the "<tt>nfs server</tt>" machine must be set up.
1921     This needs to have a 800 MB <tt>/tftpboot</tt> partition.
1922 dpavlin 32 <a href="#netbsdpmaxinstall">Install NetBSD/pmax 3.1 from CDROM</a>.
1923 dpavlin 12 (Don't forget to add the extra partition!)
1924 dpavlin 10 <p>
1925     <li>Configure the nfs server machine to act as an nfs server.
1926     Start up the emulated DECstation:<pre>
1927 dpavlin 24 <b>gxemul -e 3max -d nbsd_pmax.img</b>
1928 dpavlin 10 </pre>and enter the following commands as <tt>root</tt>
1929     inside the emulator:
1930     <table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
1931     <b>echo hostname=server &gt;&gt; /etc/rc.conf
1932     echo ifconfig_le0=\"inet 10.0.0.2\" &gt;&gt; /etc/rc.conf
1933     echo nameserver 10.0.0.254 &gt;&gt; /etc/resolv.conf
1934     echo 10.0.0.254 &gt; /etc/mygate
1935     echo /tftpboot -maproot=root 10.0.0.1 &gt; /etc/exports
1936     echo rpcbind=YES &gt;&gt; /etc/rc.conf
1937     echo nfs_server=YES &gt;&gt; /etc/rc.conf
1938     echo mountd=YES &gt;&gt; /etc/rc.conf
1939     echo bootparamd=YES &gt;&gt; /etc/rc.conf
1940     printf "client root=10.0.0.2:/tftpboot \\\n swap=10.0.0.2:/tftpboot/swap\n" &gt; /etc/bootparams
1941     echo "10:20:30:00:00:10 client" &gt; /etc/ethers
1942     echo 10.0.0.1 client &gt; /etc/hosts
1943     reboot</b>
1944     </pre></td></tr></table>
1945 dpavlin 12 <li>Start the DECstation emulation again, and enter the following
1946     commands to download the OpenBSD/sgi distribution:<br>(NOTE: This
1947 dpavlin 10 takes quite some time, even if you have a fast network connection.)
1948     <table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
1949     <b>cd /tftpboot; ftp -i ftp.se.openbsd.org</b>
1950     (log in as anonymous...)
1951 dpavlin 24 <b>cd pub/OpenBSD/3.9/sgi
1952     mget b*tgz c*tgz e* g* m*
1953 dpavlin 10 quit
1954     sh
1955     for a in *.tgz; do echo $a; tar zxfp $a; done
1956     echo 10.0.0.2:/tftpboot / nfs rw 0 0 &gt; /tftpboot/etc/fstab
1957 dpavlin 12 rm *.tgz
1958 dpavlin 10 dd if=/dev/zero of=swap bs=1024 count=32768
1959     halt</b>
1960     </pre></td></tr></table>
1961     <li>Download the OpenBSD/sgi GENERIC and RAMDISK kernels:<pre>
1962 dpavlin 24 <a href="ftp://ftp.se.openbsd.org/pub/OpenBSD/3.9/sgi/bsd">ftp://ftp.se.openbsd.org/pub/OpenBSD/3.9/sgi/bsd</a>
1963     <a href="ftp://ftp.se.openbsd.org/pub/OpenBSD/3.9/sgi/bsd.rd">ftp://ftp.se.openbsd.org/pub/OpenBSD/3.9/sgi/bsd.rd</a>
1964 dpavlin 10
1965     </pre>
1966     <li>Create a configuration file called <tt>config_client</tt>:
1967     <table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
1968 dpavlin 24 <font color="#2020cf">! Configuration file for running OpenBSD/sgi diskless with
1969 dpavlin 10 ! a NetBSD/pmax machine as the nfs server.
1970     !
1971     ! This config file is for the client.</font>
1972    
1973 dpavlin 24 <b> net(
1974 dpavlin 12 add_remote("localhost:12444") </b>! the server<b>
1975 dpavlin 10 local_port(12445) </b>! the client<b>
1976     )
1977    
1978     machine(
1979     name("client machine")
1980     serial_nr(1)
1981    
1982     type("sgi")
1983     subtype("o2")
1984    
1985     </b>! load("bsd")<b>
1986     load("bsd.rd")
1987     )
1988 dpavlin 24 </b>
1989 dpavlin 10 </pre></td></tr></table>
1990     ... and another configuration file for the server,
1991     <tt>config_server</tt>:
1992     <table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
1993 dpavlin 24 <b> net(
1994 dpavlin 10 local_port(12444) </b>! the server<b>
1995 dpavlin 12 add_remote("localhost:12445") </b>! the client<b>
1996 dpavlin 10 )
1997    
1998     machine(
1999     name("nfs server")
2000     serial_nr(2)
2001    
2002     type("dec")
2003     subtype("5000/200")
2004    
2005     disk("nbsd_pmax.img")
2006     )
2007 dpavlin 24 </b>
2008 dpavlin 10 </pre></td></tr></table>
2009     <li>Boot the "<tt>nfs server</tt>" and the OpenBSD/sgi
2010     "<tt>client machine</tt>" as two separate emulator instances:<pre>
2011     in one xterm:
2012 dpavlin 12 <b>gxemul @config_server</b>
2013 dpavlin 10
2014     and then, in another xterm:
2015 dpavlin 12 <b>gxemul @config_client</b>
2016 dpavlin 10
2017     </pre>
2018 dpavlin 12 <li>In the OpenBSD/sgi window, choose "<tt>s</tt>" (for Shell), and type:
2019 dpavlin 10 <table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
2020     <b>ifconfig mec0 10.0.0.1; route add default 10.0.0.254
2021     mount -v 10.0.0.2:/tftpboot /mnt
2022     cd /mnt/dev; ./MAKEDEV all; cd /; umount /mnt
2023     halt</b>
2024     </pre></td></tr></table>
2025 dpavlin 12 You might want to log in as <tt>root</tt> on the server machine, and
2026     run <tt>tcpdump -lnvv</tt> or similar, to see that what the client
2027     machine actually does on the network. The <tt>MAKEDEV</tt> script
2028     takes almost forever, so be patient.
2029 dpavlin 10 </ol>
2030    
2031    
2032     <p><font color="#ff0000">NOTE: Everything up to this point should work.
2033     However, the next step (in gray) doesn't actually work:</font>
2034    
2035     <p><font color="#888888">Once everything has been set up correctly, change
2036     <tt>bsd.rd</tt> in <tt>config_client</tt> to just <tt>bsd</tt> (the GENERIC
2037     kernel). It should now be possible to boot OpenBSD/sgi using the NetBSD/pmax
2038     nfs server. (When asked for "<tt>root device :</tt>" on the OpenBSD machine,
2039     enter <tt><b>mec0</b></tt>.)</font>
2040    
2041     <p><font color="#ff0000">But it doesn't work. Probably because GXemul's
2042     implementation of the mec (ethernet card used in the O2) is too much of
2043     a quick hack. For now, use the <tt>bsd.rd</tt> kernel, and (at every
2044     boot) type:</font><pre>
2045     <b>s</b> (for Shell)
2046     <b>ifconfig mec0 10.0.0.1; route add default 10.0.0.254</b>
2047     <b>mount -v 10.0.0.2:/tftpboot /mnt</b>
2048     <b>cd /mnt; usr/sbin/chroot .</b>
2049     <b>sh etc/rc</b>
2050     </pre>
2051    
2052     <p><font color="#ff0000">This will not cause OpenBSD to be booted
2053     normally, but at least a few basic things will work.
2054     By the way, the emulator performs so poorly, that you will have time to
2055     fetch several cups of coffee for each of the steps above.</font>
2056    
2057    
2058    
2059    
2060    
2061    
2062    
2063    
2064 dpavlin 22
2065 dpavlin 14 <p><br>
2066 dpavlin 22 <a name="openbsdarcinstall"></a>
2067     <h3>OpenBSD/arc:</h3>
2068    
2069     It is (almost) possible to install and run OpenBSD/arc on an emulated Acer
2070     PICA-61 in the emulator.
2071    
2072     <p><font color="#e00000">Earlier, I had this guest OS listed as
2073     officially working in the emulator, but for several reasons, it has
2074     been moved down here to the "informative-but-not-really-working"
2075     section.</font>
2076    
2077     <p>
2078     <ul>
2079     <li>The last OpenBSD/arc release was 2.3. This means that it is very
2080     old, it would not give a fair picture of what OpenBSD is (if you
2081     are just looking to find out what it is like), and it is not
2082     worth experimenting with it. See
2083     <a href="http://www.openbsd.org/arc.html">http://www.openbsd.org/arc.html</a>
2084     for more information.
2085     <li>OpenBSD/arc was (if I understood things correctly) never really
2086     stable, even on real hardare. Problems with too small an interrupt
2087     stack. Bugs are triggered in the emulator that have to do with
2088     issues such as this.
2089     </ul>
2090    
2091     <p>
2092     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2093     <a href="20041024-openbsd-arc-installed.gif"><img src="20041024-openbsd-arc-installed_small.gif"></a>
2094    
2095     <p>
2096     <font color="#e00000">Currently, I don't test for every release whether
2097     or not OpenBSD/arc can be installed. Releases prior to 0.3.7
2098     (but probably <i>not</i> 0.3.7) should work. Anyway, here are the
2099     old installation instructions:</font>
2100    
2101     <p>To install OpenBSD/arc onto an emulated harddisk image, follow these
2102     instructions:
2103    
2104     <p>
2105     <ol>
2106     <li>Create an empty harddisk image, which will be the root disk
2107     that OpenBSD installs itself onto:<pre>
2108     <b>dd if=/dev/zero of=obsd_arc.img bs=1024 count=1 seek=700000</b>
2109    
2110     </pre>
2111     <li>Download the entire arc directory from the ftp server: (approx. 75 MB)<pre>
2112     <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>
2113    
2114     </pre>
2115    
2116     <li>You now need to make an ISO image of the entire directory you downloaded.
2117     (I recommend using <tt>mkisofs</tt> for that purpose. If you don't
2118     already have <tt>mkisofs</tt> installed on your system, you need
2119     to install it in order to do this.)<pre>
2120     <b>mkisofs -o openbsd_arc_2.3.iso ftp.se.openbsd.org/pub/OpenBSD/</b>
2121    
2122     </pre>
2123     <li>Start the emulator using this command line:<pre>
2124 dpavlin 24 <b>gxemul -e pica -X -d obsd_arc.img -d b:openbsd_arc_2.3.iso -j 2.3/arc/bsd.rd</b>
2125 dpavlin 22
2126     </pre>
2127     and proceed like you would do if you were installing OpenBSD
2128     on a real Acer PICA-61. (Answer 'no' when asked if you want to
2129     configure networking, and then install from CD-ROM.)
2130     </ol>
2131    
2132     <p>
2133     Once the install has finished, the following command should let you
2134     boot from the harddisk image:
2135     <p>
2136     <pre>
2137     <b>gxemul -X -e pica -d obsd_arc.img ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd</b>
2138    
2139     </pre>
2140    
2141     The system is very sensitive to (I think) kernel stack overflow, so it
2142     crashes easily. If I remember correctly from mailing lists, this also
2143     happened on real hardware.
2144    
2145    
2146    
2147    
2148    
2149    
2150    
2151    
2152    
2153    
2154    
2155     <p><br>
2156     <a name="debiancats"></a>
2157     <h3>Debian GNU/Linux for CATS:</h3>
2158    
2159     Debian GNU/Linux for CATS (ARM) could <i>theoretically</i> run in GXemul,
2160     however:
2161    
2162     <ul>
2163     <li>The DEC 21143 NIC is not emulated well enough for Linux to accept it.
2164     <li>Development of Debian for CATS seems to have died? The latest
2165     install kernel is quite old.
2166     </ul>
2167    
2168     <p><font color="#ff0000">IT DOES <b>NOT</b> WORK YET!</font>
2169    
2170     <p>The following installation instructions would theoretically work:
2171    
2172     <p>
2173     <ol>
2174     <li>Create an empty harddisk image, which will be the root disk
2175     that Debian installs itself onto:<pre>
2176     <b>dd if=/dev/zero of=debian_cats.img bs=1024 count=1 seek=3300000</b>
2177    
2178     </pre>
2179     <li>Download the tftpboot install kernel:<pre>
2180     <a href="http://ftp.debian.org/debian/dists/oldstable/main/disks-arm/current/cats/tftpboot.img">http://ftp.debian.org/debian/dists/oldstable/main/disks-arm/current/cats/tftpboot.img</a>
2181    
2182     </pre>
2183     <li>Start the installation using the following command line:<pre>
2184     <b>gxemul -XEcats -d debian_cats.img tftpboot.img</b>
2185    
2186     </pre>
2187     </ol>
2188    
2189     <p>It doesn't work, though, because the NIC isn't working well enough.
2190    
2191     <p>The only use of Debian/CATS in the emulator right now is as a way to
2192     manipulate Linux disk images, if you are on a non-Linux host. By choosing
2193     "Execute a shell" in the installer's menu, you can have access to tools such as
2194     fdisk and mke2fs, which are useful for creating Linux paritions on disk images.
2195    
2196    
2197    
2198    
2199    
2200    
2201    
2202 dpavlin 32 <!--
2203     <p><br>
2204     <a name="linux_malta"></a>
2205     <h3>Linux/Malta:</h3>
2206 dpavlin 28
2207 dpavlin 32 <p>The Malta emulation mode is best suited for running <a
2208     href="#netbsdevbmipsinstall">NetBSD/evbmips</a>, however, it is possible
2209     to experiment with Linux/Malta as well.
2210    
2211     <p>The general idea behind Linux/Malta seems to be that the end user
2212     always compiles his/her own kernel, applies patches, downloads
2213     userland separately, etc. For that reason, Linux/Malta support in the
2214     emulator is not tested for every release (sometimes it works, sometimes it
2215     doesn't work), and these instructions are kind of "fuzzy".
2216    
2217     <p><ol start="1">
2218     <li>Create an empty harddisk image, which will be the root disk
2219     that Linux/Malta will be installed onto:<pre>
2220     <b>dd if=/dev/zero of=linux.img bs=1024 count=1 seek=5000000</b>
2221    
2222     </pre>
2223     <li>Download a MIPS root filesystem tree:<pre>
2224     <a href="ftp://ftp.linux-mips.org/pub/linux/mips/mipsel-linux/root/mipsel-root-20011216.tgz">ftp://ftp.linux-mips.org/pub/linux/mips/mipsel-linux/root/mipsel-root-20011216.tgz</a>
2225     19486676 bytes, md5 = 5bcb725c90209479cd7ead8ad0c4a414
2226    
2227     </pre>
2228     This is an old Redhat tree from 2001, but it seems to almost work.
2229     <p>
2230     <li>Download one precompiled Malta kernel, with ramdisk,
2231     and one without ramdisk (which will be used later on
2232     when booting from disk):<pre>
2233     TODO
2234    
2235     </pre>
2236     <li>Start the emulator with the ramdisk kernel, create a MS-DOS style
2237     MBR on the disk, create the filesystem, and extract the
2238     userland files:<pre>
2239     <b>gunzip vmlinux_2.*
2240     gunzip mipsel-root-20011216.tar
2241     gxemul -xemalta -d linux.img -d mipsel-root-20011216.tar vmlinux_2.4.33.2-ide-pci-ramdisk.elf</b>
2242     Inside GXemul: Log in as root and execute the following commands:
2243     <b>fdisk /dev/hda</b>
2244     (enter suitable commands, e.g. <b>n, p, 1, 1, 9921, w</b>)
2245     <b>mkfs /dev/hda1
2246     mount /dev/hda1 /mnt
2247     cd /mnt; tar -xf /dev/hdb; cd ..
2248     umount /mnt; sync; reboot</b>
2249    
2250     </pre>
2251     </ol>
2252    
2253     <p>It should now be possible to boot from the disk image, using the
2254     following command:
2255    
2256     <p><pre>
2257     <b> gxemul -xemalta -d linux.img -o "root=/dev/hda1 rw" vmlinux_2.6.18-rc4-ide-pci-novty.elf</b>
2258     </pre>
2259    
2260     <p>There's a slight problem with this specific Redhat tree, so when you
2261     see the message "Configuring kernel parameters: [ OK ]", press CTRL-C
2262     once.
2263     -->
2264    
2265    
2266    
2267    
2268    
2269    
2270 dpavlin 22 <p><br>
2271 dpavlin 28 <a name="linux_qemu_mips"></a>
2272     <h3>Linux/QEMU_MIPS:</h3>
2273    
2274     I've added a semi-bogus machine mode which tries to
2275     mimic the MIPS machine mode used in Fabrice Bellard's
2276     <a href="http://fabrice.bellard.free.fr/qemu/">QEMU</a>.
2277    
2278 dpavlin 34 <p>Download <a href="http://fabrice.bellard.free.fr/qemu/mips-test-0.1.tar.gz">mips-test-0.1.tar.gz</a>
2279     from <a href="http://fabrice.bellard.free.fr/qemu/download.html">http://fabrice.bellard.free.fr/qemu/download.html</a>,
2280     and extract its contents (<tt>tar zxvf mips-test-0.1.tar.gz</tt>).
2281 dpavlin 28
2282 dpavlin 34 <p>Test it in GXemul using the following command line:<pre>
2283 dpavlin 28 <b>gxemul -E qemu_mips -o 'console=ttyS0 root=/dev/ram
2284     rd_start=0x80800000 rd_size=10000000 init=/bin/sh'
2285     0x80800000:mips-test/initrd mips-test/vmlinux-r1</b>
2286    
2287     </pre>
2288     </ol>
2289    
2290    
2291    
2292    
2293    
2294    
2295    
2296    
2297     <p><br>
2298     <a name="windows_nt_mips"></a>
2299     <h3>Windows NT/MIPS:</h3>
2300    
2301     Old versions of Windows NT could run on MIPS hardware, e.g.
2302     the PICA 61. It is theoretically possible that the emulation provided by
2303     GXemul some day could be stable/complete enough to emulate
2304     such hardware well enough to fool Windows NT into thinking
2305     that it is running on a real machine.
2306     <font color="#ff0000">IT DOES <b>NOT</b> WORK YET!</font>
2307    
2308 dpavlin 36 <p>Installation steps similar to these would be required to install
2309 dpavlin 28 Windows NT onto a disk image:
2310    
2311     <ol>
2312     <li>Put a "Windows NT 4.0 for MIPS" CDROM (or similar) into
2313     your CDROM drive. (On FreeBSD systems, it is
2314     usually called <tt>/dev/cd0c</tt> or similar. Change
2315     that to whatever the CDROM is called on your system,
2316     or the name of a raw .iso image. I have tried this
2317     with the Swedish version, but it might work with
2318     other versions too.)
2319     <p>
2320     <li>Create an empty harddisk image, which will be the disk image
2321     that you will install Windows NT onto:<pre>
2322     $ <b><tt>dd if=/dev/zero of=winnt_test.img bs=1024 count=1 seek=999000</tt></b>
2323    
2324     </pre>
2325     <li>Run the ARC installer, to partition the disk image:<pre>
2326     $ <b><tt>gxemul -X -e pica -d winnt_test.img -d bc6:/dev/cd0c -j MIPS\\ARCINST</tt></b>
2327     </pre>
2328     Note that <tt>ARCINST</tt> <i>almost</i> works, but not quite.
2329     <p>
2330     <li>Run the SETUP program:<pre>
2331     $ <b><tt>gxemul -X -e pica -d winnt_test.img -d bc6:/dev/cd0c -j MIPS\\SETUPLDR</tt></b>
2332     </pre>
2333     </ol>
2334    
2335     <p><tt>SETUPLDR</tt> manages to load some drivers from the cdrom,
2336     but then it crashes because of incomplete emulation of some hardware devices.
2337    
2338    
2339    
2340    
2341    
2342    
2343    
2344 dpavlin 14
2345 dpavlin 24 <p><br>
2346 dpavlin 30 <a name="netbsdbeboxinstall"></a>
2347     <h3>NetBSD/bebox:</h3>
2348    
2349     There is an old snapshot of
2350     <a href="http://www.netbsd.org/Ports/bebox/">NetBSD/bebox</a>
2351     from 1998-11-19 available at NetBSD's ftp server. NetBSD/bebox
2352     could theoretically run in GXemul.
2353     <font color="#ff0000">IT DOES <b>NOT</b> WORK RIGHT NOW!</font>
2354    
2355     <p>The following instructions will let you install NetBSD/bebox onto a
2356     disk image, using a NetBSD/prep kernel temporarily during the install:
2357    
2358     <p>
2359     <ol>
2360     <li>Download a NetBSD/prep 2.1 install ramdisk kernel:<pre>
2361     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/prep/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/prep/binary/kernel/netbsd-INSTALL.gz</a>
2362     </pre>
2363     <p>
2364     <li>Create an empty harddisk image, which will be the disk image
2365     that you will install NetBSD onto:<pre>
2366     <b>dd if=/dev/zero of=nbsd_bebox.img bs=1024 count=1 seek=999000</b>
2367     </pre>
2368     <p>
2369     <li>Download the NetBSD/bebox snapshot, and create a suitable .iso
2370     image of the files:
2371     <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
2372     <b>wget -np -l 0 -r <a href="ftp://ftp.netbsd.org/pub/NetBSD/arch/bebox/snapshot/19981119/">ftp://ftp.netbsd.org/pub/NetBSD/arch/bebox/snapshot/19981119/</a>
2373     mv ftp.netbsd.org/pub/NetBSD/arch/bebox/snapshot/19981119/kern.tgz .
2374     tar zxvf kern.tgz
2375     rm -f kern.tgz
2376     mkisofs -o netbsd-bebox-19981119.iso ftp.netbsd.org/pub/NetBSD/arch/bebox/snapshot/19981119</b>
2377     </pre></td></tr></table>
2378     <p>
2379     <li>Now let's extract the files onto the Bebox disk image. Start NetBSD/prep
2380     with the following command line:<pre>
2381     <b>gxemul -x -e ibm6050 -d d:netbsd-bebox-19981119.iso -d nbsd_bebox.img netbsd-INSTALL.gz</b>
2382    
2383     </pre>Choose (S) for Shell, and execute the following commands:
2384     <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
2385     <b>disklabel -I -i wd1
2386     a
2387     4.2BSD
2388     1c
2389     750M
2390     b
2391     swap
2392     a
2393     200M
2394     W
2395     y
2396     Q
2397     newfs /dev/wd1a
2398     mount_cd9660 /dev/wd0c /mnt
2399     mount /dev/wd1a /mnt2
2400     cd mnt2
2401     for a in /mnt/*.tgz; do echo $a; tar zxfp $a; done
2402     cd dev; sh ./MAKEDEV all; cd ../etc
2403     echo rc_configured=YES &gt;&gt; rc.conf
2404     echo "/dev/wd0a / ffs rw 1 1" &gt; fstab
2405     echo "/dev/wd0b none swap sw 0 0" &gt;&gt; fstab
2406     cd /; umount /mnt; umount /mnt2
2407     sync; halt</b>
2408     </pre></td></tr></table>
2409     </ol>
2410    
2411     <p>You should now be able to boot NetBSD/bebox using this command:<pre>
2412     <b>gxemul -X -E bebox -d nbsd_bebox.img netbsd</b>
2413     </pre>
2414    
2415     <p>When asked for the root device, enter <b><tt>wd0a</tt></b>.
2416    
2417     <p><font color="#ff0000">IT DOES <b>NOT</b> WORK YET</font>, there are
2418     errors while uncompressing the tgz files, and the machine crashes when
2419     trying to run /sbin/init.
2420    
2421    
2422    
2423    
2424    
2425    
2426    
2427    
2428    
2429    
2430 dpavlin 36 <p><br>
2431     <a name="netbsdlandiskinstall"></a>
2432     <h3>NetBSD/landisk:</h3>
2433 dpavlin 30
2434 dpavlin 36 <a href="http://www.netbsd.org/Ports/landisk/">NetBSD/landisk</a> can
2435     run in GXemul.
2436    
2437     <p><b><font color="#ff0000">NOTE:</b></font> This is still highly
2438     experimental. Installation is very unsmooth.
2439    
2440     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2441     <a href="20070224-netbsd-landisk.png"><img src="20070224-netbsd-landisk_small.png"></a>
2442    
2443     <p>At the time of writing this, there are not yet any formal releases
2444     of NetBSD/landisk, only daily snapshot builds.
2445    
2446     <p>The NetBSD/landisk distribution does not include any INSTALL kernel,
2447     so it must be installed using another (emulated) machine.
2448    
2449     <p>The following instructions will let you install NetBSD/landisk onto a disk
2450     image, using an emulated CATS machine:
2451    
2452     <p>
2453     <ol>
2454     <li>Download a NetBSD/cats install kernel:<pre>
2455     <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/cats/binary/kernel/netbsd.aout-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/cats/binary/kernel/netbsd.aout-INSTALL.gz</a>
2456     </pre>
2457     <p>
2458     <li>Create an empty harddisk image, which will be the disk image
2459     that you will install NetBSD/landisk onto:<pre>
2460     <b>dd if=/dev/zero of=nbsd_landisk.img bs=1024 count=1 seek=900000</b>
2461    
2462     </pre>
2463    
2464     <b>TODO</b>
2465     download the .iso image
2466    
2467     <p>
2468     <li>TODO: Start the emulated CATS machine like this:<pre>
2469     <b>gxemul -XEcats -d nbsd_landisk.img -d landisk.iso netbsd.aout-INSTALL.gz</b>
2470    
2471     </pre>
2472     <li>Exit the installer, then execute the following commands:
2473     <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
2474     <b>
2475     disklabel -I -i wd0
2476     ... TODO
2477     newfs /dev/wd0a
2478     mount /dev/cd0c /mnt
2479     mkdir /mnt2; mount /dev/wd0a /mnt2
2480     cd /mnt2; sh
2481     for a in /mnt/*/binary/sets/[bcekmt]*.tgz; do echo $a; tar zxfp $a; done
2482     exit
2483     cd dev; sh ./MAKEDEV all; cd ../etc
2484     echo rc_configured=YES >> rc.conf
2485     echo "/dev/wd0a / ffs rw 1 1" > fstab
2486     echo "/dev/wd0b none swap sw 0 0" >> fstab
2487     cd /; umount /mnt; umount /mnt2; halt</b>
2488     </pre></td></tr></table>
2489     </ol>
2490    
2491     <p>You should now be able to boot NetBSD/landisk using this command:<pre>
2492     <b>gxemul -x -E landisk -d nbsd_landisk.img netbsd-GENERIC.gz</b>
2493     </pre>
2494    
2495    
2496    
2497    
2498    
2499    
2500    
2501    
2502    
2503     <p><br>
2504     <a name="openbsdlandiskinstall"></a>
2505     <h3>OpenBSD/landisk:</h3>
2506    
2507     It is possible to install and run
2508     <a href="http://www.openbsd.org/landisk.html">OpenBSD/landisk</a>
2509     in GXemul. There is at the time of writing this no stable release
2510     yet of OpenBSD/landisk, but there are snapshots available on the
2511     OpenBSD ftp site.
2512    
2513     <p>To install OpenBSD/landisk onto an emulated harddisk image,
2514     follow these instructions:
2515    
2516     <p>
2517     <ol>
2518     <li>Create an empty harddisk image, which will be the root disk
2519     that OpenBSD installs itself onto:<pre>
2520     <b>dd if=/dev/zero of=obsd_landisk.img bs=1024 count=1 seek=900000</b>
2521    
2522     </pre>
2523     <li>Download the entire landisk directory from the ftp server:<pre>
2524     <b>wget -np -l 0 -r <a href="ftp://ftp.se.openbsd.org/pub/OpenBSD/snapshots/landisk/">ftp://ftp.se.openbsd.org/pub/OpenBSD/snapshots/landisk/</a></b>
2525     <b>cp ftp.se.openbsd.org/pub/OpenBSD/snapshots/landisk/bsd .</b>
2526     <b>cp ftp.se.openbsd.org/pub/OpenBSD/snapshots/landisk/bsd.rd .</b>
2527    
2528     </pre>
2529     (Replace ftp.se.openbsd.org with a server closer to you, for
2530     increased download speed.)
2531     <p>
2532     <li>You now need to make an ISO image of the entire directory you downloaded.
2533     (I recommend using <tt>mkisofs</tt> for that purpose. If you don't
2534     already have <tt>mkisofs</tt> installed on your system, you need
2535     to install it in order to do this.)<pre>
2536     <b>mkisofs -allow-lowercase -o openbsd_landisk_snapshot.iso ftp.se.openbsd.org/pub/OpenBSD/</b>
2537     <b>rm -rf ftp.se.openbsd.org</b> <i>(this directory is not needed anymore)</i>
2538    
2539     </pre>
2540     <li>Start the emulator using this command line:<pre>
2541     <b>gxemul -x -Elandisk -d obsd_landisk.img -d d:openbsd_landisk_snapshot.iso bsd.rd</b>
2542    
2543     </pre>
2544     and proceed like you would do if you were installing OpenBSD
2545     on a real landisk. The following hints are useful to get you
2546     through the installation:
2547     <ul>
2548     <li>Terminal type = <b>xterm</b