/[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 34 - (hide annotations)
Mon Oct 8 16:21:17 2007 UTC (13 years, 3 months ago) by dpavlin
File MIME type: text/html
File size: 90224 byte(s)
++ trunk/HISTORY	(local)
$Id: HISTORY,v 1.1480 2007/02/19 01:34:42 debug Exp $
20061029	Changing usleep(1) calls in the debugger to usleep(10000)
20061107	Adding a new disk image option (-d o...) which sets the ISO9660
		filesystem base offset; also making some other hacks to allow
		NetBSD/dreamcast and homebrew demos/games to boot directly
		from a filesystem image.
		Moving Dreamcast-specific stuff in the documentation to its
		own page (dreamcast.html).
		Adding a border to the Dreamcast PVR framebuffer.
20061108	Adding a -T command line option (again?), for halting the
		emulator on unimplemented memory accesses.
20061109	Continuing on various SH4 and Dreamcast related things.
		The emulator should now halt on more unimplemented device
		accesses, instead of just printing a warning, forcing me to
		actually implement missing stuff :)
20061111	Continuing on SH4 and Dreamcast stuff.
		Adding a bogus Landisk (SH4) machine mode.
20061112	Implementing some parts of the Dreamcast GDROM device. With
		some ugly hacks, NetBSD can (barely) mount an ISO image.
20061113	NetBSD/dreamcast now starts booting from the Live CD image,
		but crashes randomly quite early on in the boot process.
20061122	Beginning on a skeleton interrupt.h and interrupt.c for the
		new interrupt subsystem.
20061124	Continuing on the new interrupt system; taking the first steps
		to attempt to connect CPUs (SuperH and MIPS) and devices
		(dev_cons and SH4 timer interrupts) to it. Many things will
		probably break from now on.
20061125	Converting dev_ns16550, dev_8253 to the new interrupt system.
		Attempting to begin to convert the ISA bus.
20061130	Incorporating a patch from Brian Foley for the configure
		script, which checks for X11 libs in /usr/X11R6/lib64 (which
		is used on some Linux systems).
20061227	Adding a note in the man page about booting from Dreamcast
		CDROM images (i.e. that no external kernel is needed).
20061229	Continuing on the interrupt system rewrite: beginning to
		convert more devices, adding abort() calls for legacy interrupt
		system calls so that everything now _has_ to be rewritten!
		Almost all machine modes are now completely broken.
20061230	More progress on removing old interrupt code, mostly related
		to the ISA bus + devices, the LCA bus (on AlphaBook1), and
		the Footbridge bus (for CATS). And some minor PCI stuff.
		Connecting the ARM cpu to the new interrupt system.
		The CATS, NetWinder, and QEMU_MIPS machine modes now work with
		the new interrupt system :)
20061231	Connecting PowerPC CPUs to the new interrupt system.
		Making PReP machines (IBM 6050) work again.
		Beginning to convert the GT PCI controller (for e.g. Malta
		and Cobalt emulation). Some things work, but not everything.
		Updating Copyright notices for 2007.
20070101	Converting dev_kn02 from legacy style to devinit; the 3max
		machine mode now works with the new interrupt system :-]
20070105	Beginning to convert the SGI O2 machine to the new interrupt
		system; finally converting O2 (IP32) devices to devinit, etc.
20070106	Continuing on the interrupt system redesign/rewrite; KN01
		(PMAX), KN230, and Dreamcast ASIC interrupts should work again,
		moving out stuff from machine.h and devices.h into the
		corresponding devices, beginning the rewrite of i80321
		interrupts, etc.
20070107	Beginning on the rewrite of Eagle interrupt stuff (PReP, etc).
20070117	Beginning the rewrite of Algor (V3) interrupts (finally
		changing dev_v3 into devinit style).
20070118	Removing the "bus" registry concept from machine.h, because
		it was practically meaningless.
		Continuing on the rewrite of Algor V3 ISA interrupts.
20070121	More work on Algor interrupts; they are now working again,
		well enough to run NetBSD/algor. :-)
20070122	Converting VR41xx (HPCmips) interrupts. NetBSD/hpcmips
		can be installed using the new interrupt system :-)
20070123	Making the testmips mode work with the new interrupt system.
20070127	Beginning to convert DEC5800 devices to devinit, and to the
		new interrupt system.
		Converting Playstation 2 devices to devinit, and converting
		the interrupt system. Also fixing a severe bug: the interrupt
		mask register on Playstation 2 is bitwise _toggled_ on writes.
20070128	Removing the dummy NetGear machine mode and the 8250 device
		(which was only used by the NetGear machine).
		Beginning to convert the MacPPC GC (Grand Central) interrupt
		controller to the new interrupt system.
		Converting Jazz interrupts (PICA61 etc.) to the new interrupt
		system. NetBSD/arc can be installed again :-)
		Fixing the JAZZ timer (hardcoding it at 100 Hz, works with
		NetBSD and it is better than a completely dummy timer as it
		was before).
		Converting dev_mp to the new interrupt system, although I
		haven't had time to actually test it yet.
		Completely removing src/machines/interrupts.c, cpu_interrupt
		and cpu_interrupt_ack in src/cpu.c, and
		src/include/machine_interrupts.h! Adding fatal error messages
		+ abort() in the few places that are left to fix.
		Converting dev_z8530 to the new interrupt system.
		FINALLY removing the md_int struct completely from the
		machine struct.
		SH4 fixes (adding a PADDR invalidation in the ITLB replacement
		code in memory_sh.c); the NetBSD/dreamcast LiveCD now runs
		all the way to the login prompt, and can be interacted with :-)
		Converting the CPC700 controller (PCI and interrupt controller
		for PM/PPC) to the new interrupt system.
20070129	Fixing MACE ISA interrupts (SGI IP32 emulation). Both NetBSD/
		sgimips' and OpenBSD/sgi's ramdisk kernels can now be
		interacted with again.
20070130	Moving out the MIPS multi_lw and _sw instruction combinations
		so that they are auto-generated at compile time instead.
20070131	Adding detection of amd64/x86_64 hosts in the configure script,
		for doing initial experiments (again :-) with native code
		generation.
		Adding a -k command line option to set the size of the dyntrans
		cache, and a -B command line option to disable native code
		generation, even if GXemul was compiled with support for
		native code generation for the specific host CPU architecture.
20070201	Experimenting with a skeleton for native code generation.
		Changing the default behaviour, so that native code generation
		is now disabled by default, and has to be enabled by using
		-b on the command line.
20070202	Continuing the native code generation experiments.
		Making PCI interrupts work for Footbridge again.
20070203	More native code generation experiments.
		Removing most of the native code generation experimental code,
		it does not make sense to include any quick hacks like this.
		Minor cleanup/removal of some more legacy MIPS interrupt code.
20070204	Making i80321 interrupts work again (for NetBSD/evbarm etc.),
		and fixing the timer at 100 Hz.
20070206	Experimenting with removing the wdc interrupt slowness hack.
20070207	Lowering the number of dyntrans TLB entries for MIPS from
		192 to 128, resulting in a minor speed improvement.
		Minor optimization to the code invalidation routine in
		cpu_dyntrans.c.
20070208	Increasing (experimentally) the nr of dyntrans instructions per
		loop from 60 to 120.
20070210	Commenting out (experimentally) the dyntrans_device_danger
		detection in memory_rw.c.
		Changing the testmips and baremips machines to use a revision 2
		MIPS64 CPU by default, instead of revision 1.
		Removing the dummy i960, IA64, x86, AVR32, and HP PA-RISC
		files, the PC bios emulation, and the Olivetti M700 (ARC) and
		db64360 emulation modes.
20070211	Adding an "mp" demo to the demos directory, which tests the
		SMP functionality of the testmips machine.
		Fixing PReP interrupts some more. NetBSD/prep now boots again.
20070216	Adding a "nop workaround" for booting Mach/PMAX to the
		documentation; thanks to Artur Bujdoso for the values.
		Converting more of the MacPPC interrupt stuff to the new
		system.
		Beginning to convert BeBox interrupts to the new system.
		PPC603e should NOT have the PPC_NO_DEC flag! Removing it.
		Correcting BeBox clock speed (it was set to 100 in the NetBSD
		bootinfo block, but should be 33000000/4), allowing NetBSD
		to start without using the (incorrect) PPC_NO_DEC hack.
20070217	Implementing (slow) AltiVec vector loads and stores, allowing
		NetBSD/macppc to finally boot using the GENERIC kernel :-)
		Updating the documentation with install instructions for
		NetBSD/macppc.
20070218-19	Regression testing for the release.

==============  RELEASE 0.4.4  ==============


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

  ViewVC Help
Powered by ViewVC 1.1.26