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

Contents of /trunk/doc/guestoses.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 34 - (show 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 <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 <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 <b>Gavare's eXperimental Emulator:</b></font><br>
8 <font color="#000000" size="6"><b>Installing and running "guest OSes"</b>
9 </font></td></tr></table></td></tr></table><p>
10
11 <!--
12
13 $Id: guestoses.html,v 1.202 2007/02/19 01:34:42 debug Exp $
14
15 Copyright (C) 2003-2007 Anders Gavare. All rights reserved.
16
17 Redistribution and use in source and binary forms, with or without
18 modification, are permitted provided that the following conditions are met:
19
20 1. Redistributions of source code must retain the above copyright
21 notice, this list of conditions and the following disclaimer.
22 2. Redistributions in binary form must reproduce the above copyright
23 notice, this list of conditions and the following disclaimer in the
24 documentation and/or other materials provided with the distribution.
25 3. The name of the author may not be used to endorse or promote products
26 derived from this software without specific prior written permission.
27
28 THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
29 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
32 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
36 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
38 SUCH DAMAGE.
39
40 -->
41
42
43 <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 <li><a href="#netbsdpmaxinstall">NetBSD/pmax 3.1 or 1.6.2</a>
52 <li><a href="#netbsdarcinstall">NetBSD/arc 1.6.2</a>
53 <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 <li><a href="#netbsdevbarminstall">NetBSD/evbarm 2.1</a>
60 <li><a href="#netbsdnetwinderinstall">NetBSD/netwinder 3.1</a>
61 <li><a href="#netbsdprepinstall">NetBSD/prep 2.1</a>
62 <li><a href="#netbsdmacppcinstall">NetBSD/macppc 3.1</a>
63 <li><a href="#netbsddreamcast">NetBSD/dreamcast 3.1</a>
64 <li><a href="#openbsdpmaxinstall">OpenBSD/pmax 2.8-BETA</a>
65 <li><a href="#openbsdcatsinstall">OpenBSD/cats 4.0</a>
66 <li><a href="#ultrixinstall">Ultrix/RISC 4.5</a>
67 <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 </ul>
71
72
73
74
75
76
77 <p><br>
78 <a name="generalnotes"></a>
79 <h3>General notes on running "guest OSes":</h3>
80
81 The emulator works well enough to run complete operating systems. These
82 are often refered to as <i>guest</i> operating systems, in contrast to the
83 <i>host</i> operating system which the emulator is running under.
84
85 <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 system, the harddisk image looks and acts like a real disk.
90
91 <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
96 <p>In addition to the "working" guest operating systems listed above,
97 you might find the following information interesting:
98
99 <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 <!-- <li><a href="#linux_malta">Linux/Malta</a> -->
105 <li><a href="#linux_qemu_mips">Linux/QEMU_MIPS</a>
106 <li><a href="#windows_nt_mips">Windows NT/MIPS</a>
107 <li><a href="#netbsdbeboxinstall">NetBSD/bebox 19981119</a>
108 </ul>
109
110 <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 <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
121
122
123
124
125
126
127 <p><br>
128 <a name="netbsdpmaxinstall"></a>
129 <h3>NetBSD/pmax:</h3>
130
131 <p><a href="http://www.netbsd.org/Ports/pmax/">NetBSD/pmax</a> was the
132 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
138 <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
143 <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 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
149 <a href="20050317-example.png"><img src="20050317-example_small.png"></a>
150
151 <p>To install NetBSD/pmax onto a harddisk image in the emulator,
152 follow these instructions:
153
154 <p><ol start="1">
155 <li>Create an empty harddisk image, which will be the root disk
156 that NetBSD installs itself onto:<pre>
157 <b>dd if=/dev/zero of=nbsd_pmax.img bs=1024 count=1 seek=3000000</b>
158
159 </pre>
160 </ol>
161
162 <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 <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 or
174 <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
176 </pre>
177 <li>Start the emulator like this:<pre>
178 <b>gxemul -e 3max -d nbsd_pmax.img -d bc:pmaxcd-3.1.iso</b>
179 (or <b>pmaxcd.iso</b>)
180 </pre>
181 and proceed like you would do if you were installing NetBSD on a real
182 DECstation. Remember to choose <tt>vt100</tt> as your terminal
183 type, and not <tt>rcons</tt>.
184 </ol>
185 <p>
186 For an ftp install, substitute steps 2 and 3 above with these:
187 <p>
188 <ol start="2">
189
190 <li>Download a NetBSD pmax INSTALL kernel:<pre>
191 <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 or
193 <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
195 </pre>
196 <li>Start the emulator like this:<pre>
197 <b>gxemul -e 3max -d nbsd_pmax.img -O netbsd-INSTALL.gz</b>
198 </pre>
199 and proceed like you would do if you were installing NetBSD on a real
200 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 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 (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
216 <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
222 <p>When the installation is finished, the following command should start
223 NetBSD from the harddisk image:<pre>
224 <b>gxemul -e 3max -d nbsd_pmax.img</b>
225 </pre>
226
227 <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 <b>gxemul -X -e 3max -d nbsd_pmax.img</b>
230 </pre>
231 and log in as <tt>root</tt> and type <tt>startx</tt> to start X windows.
232
233
234
235
236
237
238
239
240 <p><br>
241 <a name="netbsdarcinstall"></a>
242 <h3>NetBSD/arc:</h3>
243
244 It is possible to install and run an old version of <a
245 href="http://www.netbsd.org/Ports/arc/">NetBSD/arc</a>
246 on an emulated Acer PICA-61 in the emulator.
247
248 <p>
249 &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 To install NetBSD/arc 1.6.2 from a CDROM image onto an emulated
254 harddisk image, follow these instructions:
255
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 <b>dd if=/dev/zero of=nbsd_arc.img bs=1024 count=1 seek=2000000</b>
261
262 </pre>
263 <li>Download a NetBSD/arc 1.6.2 CDROM image, and a generic NetBSD/arc
264 kernel:<pre>
265 <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
268 </pre>
269 <li>Start the emulator using this command line:<pre>
270 <b>gxemul -e pica -x -d nbsd_arc.img -d bc:arccd.iso -j arc/binary/kernel/netbsd.RAMDISK.gz</b>
271
272 </pre>
273 (Try removing <tt>-x</tt> if you have problems with the xterm.)
274 <p>
275 <li>From now on, you have to use your imagination, as there is no
276 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 <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 </b>(press ctrl-d)
292 <b>cd /; umount /mnt; umount /mnt2
293 halt</b>
294 </pre></td></tr></table>
295 </ol>
296
297 <p>You can now use the generic NetBSD/arc kernel to boot from the harddisk
298 image, using the following command:<pre>
299 <b>gxemul -e pica -x -d nbsd_arc.img netbsd-GENERIC.gz</b>
300
301 </pre>
302
303 <p>When asked for "<tt>root device: </tt>", enter <b><tt>sd0</tt></b>.
304
305
306
307
308
309
310
311 <p><br>
312 <a name="netbsdhpcmipsinstall"></a>
313 <h3>NetBSD/hpcmips:</h3>
314
315 It is possible to install <a
316 href="http://www.netbsd.org/Ports/hpcmips/">NetBSD/hpcmips</a> onto a disk
317 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
321 <p>
322 &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 These instructions show an example of how to install
329 NetBSD/hpcmips on an emulated MobilePro 770:
330
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 <b>dd if=/dev/zero of=nbsd_hpcmips.img bs=1024 count=1 seek=3000000</b>
336
337 </pre>
338 <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
342 </pre>
343 <p>
344 <li>Start the installation like this:<pre>
345 <b>gxemul -e mobilepro770 -X -d nbsd_hpcmips.img -d b:hpcmipscd-3.1.iso -j hpcmips/installation/netbsd.gz</b>
346
347 </pre>
348 and proceed like you would do if you were installing NetBSD on a real
349 MobilePro 770. (Install onto wd0, choose "Use entire disk" when
350 doing the MBR partitioning, and choose to install from CD-ROM.)
351 </ol>
352
353 <p>
354 If everything worked, NetBSD should now be installed on the disk image.
355 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
358 </pre>
359
360 <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
364
365
366
367
368
369
370
371 <p><br>
372 <a name="netbsdcobaltinstall"></a>
373 <h3>NetBSD/cobalt:</h3>
374
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 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
381 <p>
382 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
383 <a href="20060812-netbsd-cobalt-3.0.1.png"><img src="20060812-netbsd-cobalt-3.0.1_small.png"></a>
384
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 <li>Download a NetBSD/pmax (DECstation) install RAMDISK kernel:<pre>
392 <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 </pre>
394 <p>
395 <li>Create an empty harddisk image, which will be the disk image
396 that you will install NetBSD/cobalt onto:<pre>
397 <b>dd if=/dev/zero of=nbsd_cobalt.img bs=1024 count=1 seek=700000</b>
398
399 </pre>
400 <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
404 </pre>
405 <li>Start the emulated DECstation machine like this:<pre>
406 <b>gxemul -e 3max -d nbsd_cobalt.img -d cobaltcd-3.1.iso netbsd-INSTALL.gz</b>
407
408 </pre>
409 <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 <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
412 <b>newfs /dev/sd0c
413 mount /dev/cd0c /mnt
414 mkdir /mnt2; mount /dev/sd0c /mnt2
415 cd /mnt2; sh
416 for a in /mnt/*/binary/sets/[bcekmt]*.tgz; do echo $a; tar zxfp $a; done
417 exit
418 cd dev; sh ./MAKEDEV all; cd ../etc
419 echo rc_configured=YES >> rc.conf
420 echo "/dev/wd0d / ffs rw 1 1" > fstab
421 cd /; umount /mnt; umount /mnt2; halt</b>
422 </pre></td></tr></table>
423 </ol>
424
425 <p>
426 You should now be able to boot NetBSD/cobalt like this:<pre>
427 <b>gxemul -E cobalt -d nbsd_cobalt.img netbsd-GENERIC.gz</b>
428 </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 init path (default /sbin/init): <i>(just press enter here)</i>
438 </pre>
439
440
441
442
443
444
445
446 <p><br>
447 <a name="netbsdevbmipsinstall"></a>
448 <h3>NetBSD/evbmips:</h3>
449
450 <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
454 <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
457 <p>One way to install the NetBSD/evbmips distribution onto a disk
458 image is to install the files using another (emulated) machine.
459
460 <p>
461 The following instructions will let you install NetBSD/evbmips onto a disk
462 image, from an emulated DECstation 3MAX machine:
463
464 <p>
465 <ol>
466 <li>Download a NetBSD/pmax (DECstation) install RAMDISK kernel:<pre>
467 <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 </pre>
469 <p>
470 <li>Create an empty harddisk image, which will be the disk image
471 that you will install NetBSD onto:<pre>
472 <b>dd if=/dev/zero of=nbsd_malta.img bs=1024 count=1 seek=700000</b>
473
474 </pre>
475 <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
479 </pre>
480 <p>
481 <li>Start the emulated DECstation machine like this:<pre>
482 <b>gxemul -e 3max -d nbsd_malta.img -d evbmips-mipselcd-3.1.iso netbsd-INSTALL.gz</b>
483
484 </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 <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
488 <b>newfs /dev/sd0c
489 mount /dev/cd0c /mnt
490 mkdir /mnt2; mount /dev/sd0c /mnt2
491 cd /mnt2; sh
492 for a in /mnt/*/binary/sets/[bcemt]*.tgz; do echo $a; tar zxfp $a; done
493 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 </ol>
500
501 <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 </pre>
504
505 <p>NOTE: To select a 4Kc (MIPS32) CPU instead of the default 5Kc
506 (MIPS64) CPU, add <tt><b>-C 4Kc</b></tt> to the command line. With NetBSD
507 3.1, however, there will be little or no difference in functionality, as
508 NetBSD still runs in 32-bit mode on 64-bit MIPS CPUs. There are two things
509 that differ:<ol>
510 <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 <li>4Kc only has 16 TLB entries, whereas 5Kc has 48. This makes 4Kc
513 emulation slower in general, because there are more TLB misses.
514 </ol>
515
516 <p>The installation instructions above create a filesystem
517 <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 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 </pre>
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539 <p><br>
540 <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 <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 </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 <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
570 </pre>
571 <p>
572 <li>Start the emulated DECstation machine like this:<pre>
573 <b>gxemul -e 3max -d nbsd_algor.img -d algorcd-3.1.iso netbsd-INSTALL.gz</b>
574
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 <a name="netbsdsgimips"></a>
619 <h3>NetBSD/sgimips:</h3>
620
621 <p>
622 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
623 <a href="20060623-netbsd-sgimips-3.0.png"><img src="20060623-netbsd-sgimips-3.0_small.png"></a>
624
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 NetBSD can still run in the emulator, as long as it doesn't use SCSI.
630
631 <p>For a simple test with the ramdisk/install kernel, try
632 dowloading<pre>
633 <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
635 </pre>and run&nbsp;&nbsp;<b><tt>gxemul -x -e o2 netbsd-INSTALL32_IP3x.gz</tt></b>.
636
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 <a href="#netbsdpmaxinstall">Install NetBSD/pmax 3.1 from CDROM</a>.
646 (Don't forget to add the extra partition!)
647 <p>
648 <li>Configure the nfs server machine to act as an nfs server.
649 Start up the emulated DECstation:<pre>
650 <b>gxemul -e 3max -d nbsd_pmax.img</b>
651 </pre>and enter the following commands as <tt>root</tt>
652 inside the emulator:
653 <p><table border="0"><tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td><pre>
654 <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 <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 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 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 </pre></td></tr></table>
702 <p>
703 <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 <font color="#2020cf">! Configuration file for running NetBSD/sgimips diskless with
706 ! a NetBSD/pmax machine as the nfs server.</font>
707
708 <b> net(
709 add_remote("localhost:12444") </b>! the server<b>
710 local_port(12445) </b>! the client<b>
711 )
712
713 machine(
714 name("client machine")
715 serial_nr(1)
716
717 type("sgi")
718 subtype("o2")
719
720 load("netbsd-INSTALL32_IP3x.gz")</b>
721 ! load("netbsd-GENERIC32_IP3x.gz")<b>
722 )
723 </b>
724 </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 <b> net(
729 local_port(12444) </b>! the server<b>
730 add_remote("localhost:12445") </b>! the client<b>
731 )
732
733 machine(
734 name("nfs server")
735 serial_nr(2)
736
737 type("dec")
738 subtype("5000/200")
739
740 disk("nbsd_pmax.img")
741 )
742 </b>
743 </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 <b>gxemul @config_server</b>
748
749 and then, in another xterm:
750 <b>gxemul @config_client</b>
751
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 </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 <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 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 </pre>
777
778 <p>When asked for "<tt>root device:</tt>" etc. on the client machine, enter
779 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 <p><br>
804 <a name="netbsdcatsinstall"></a>
805 <h3>NetBSD/cats:</h3>
806
807 It is possible to install and run
808 <a href="http://www.netbsd.org/Ports/cats/">NetBSD/cats</a> in GXemul.
809
810 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
811 <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 that you will install NetBSD/cats onto:<pre>
820 <b>dd if=/dev/zero of=nbsd_cats.img bs=1024 count=1 seek=3000000</b>
821
822 </pre>
823 <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
828 </pre>
829 <p>
830 <li>Start the installation like this:<pre>
831 <b>gxemul -XEcats -d nbsd_cats.img -d catscd-3.1.iso netbsd.aout-INSTALL.gz</b>
832
833 </pre>
834 and proceed like you would do if you were installing NetBSD on a real
835 CATS from CDROM.
836 </ol>
837
838 <p>Alternatively, to install from FTP, you can skip downloading the ISO,
839 and start the install without <tt>-d catscd-3.1.iso</tt>. Suitable network
840 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 <p>If everything worked, NetBSD should now be installed on the disk image.
844 Use the following command line to boot the emulated CATS machine:<pre>
845 <b>gxemul -XEcats -d nbsd_cats.img netbsd.aout-GENERIC.gz</b>
846
847 </pre>
848
849
850
851
852
853
854
855 <p><br>
856 <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 <li>Install NetBSD/cats 3.1 according to instructions
875 <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 <li>The first step is to copy the distribution .tgz files onto the CATS
889 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
928
929
930 <p><br>
931 <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 <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 </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 <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
963 </pre>
964 <p>
965 <li>Start the emulated DECstation machine like this:<pre>
966 <b>gxemul -e 3max -d nbsd_netwinder.img -d netwindercd-3.1.iso netbsd-INSTALL.gz</b>
967
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 <a name="netbsdprepinstall"></a>
1029 <h3>NetBSD/prep:</h3>
1030
1031 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
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 <b>gxemul -X -e ibm6050 -d nbsd_prep.img -d rdb:prepcd.iso -j prep/binary/kernel/netbsd-INSTALL.gz</b>
1057
1058 </pre>
1059 <p>
1060 <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 Creating an MBR slice and a disklabel with sysinst bugs out, so
1064 some things have to be done manually:<p>
1065 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 <b>gxemul -X -e ibm6050 -d nbsd_prep.img netbsd-GENERIC.gz</b>
1110
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
1123
1124
1125
1126
1127
1128 <p><br>
1129 <a name="netbsdmacppcinstall"></a>
1130 <h3>NetBSD/macppc:</h3>
1131
1132 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
1137 <p>To install NetBSD/macppc onto a disk image, follow these instructions:
1138
1139 <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
1145 </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
1150 </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
1155 </pre>
1156 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
1167 </pre>
1168 </ol>
1169
1170 <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 </pre>
1177
1178 <p>If asked about <tt>root device</tt>, enter <tt><b>wd0</b></tt>.
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192 <p><br>
1193 <a name="netbsddreamcast"></a>
1194 <h3>NetBSD/dreamcast:</h3>
1195
1196 Moved <a href="dreamcast.html#netbsd_generic_md">here</a>.
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211 <p><br>
1212 <a name="openbsdpmaxinstall"></a>
1213 <h3>OpenBSD/pmax:</h3>
1214
1215 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 href="#netbsdpmaxinstall">section above</a> on how to install NetBSD/pmax,
1218 before continuing here. If you have never installed OpenBSD on any
1219 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
1223 <p>
1224 &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 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 <b>dd if=/dev/zero of=obsd_pmax.img bs=1 count=512 seek=900000000</b>
1243
1244 </pre>
1245 <li>Download the entire pmax directory from the ftp server: (approx. 99 MB)<pre>
1246 <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
1248 </pre>
1249
1250 <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 <li>You now need to make an ISO image of the entire directory you downloaded.
1257 (I recommend using <tt>mkisofs</tt> for that purpose. If you don't
1258 already have <tt>mkisofs</tt> installed on your system, you need
1259 to install it in order to do this.)<pre>
1260 <b>mkisofs -o openbsd_pmax_2.8.iso ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax</b>
1261 <b>rm -rf ftp.se.openbsd.org</b> <i>(this directory is not needed anymore)</i>
1262
1263 </pre>
1264 <li>Start the emulator with all three (!) disk images:<pre>
1265 <b>gxemul -e 3max -d obsd_pmax.img -d b:simpleroot28.fs -j bsd -d c:openbsd_pmax_2.8.iso</b>
1266
1267 </pre>
1268 (If you add <tt>-X</tt>, you will run with the graphical
1269 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 <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 <b>fsck /dev/rz1a</b> (and mark the filesystem as clean)
1283 <b>mount /dev/rz1a /</b>
1284 <b>mkdir /kern</b>
1285 <b>mkdir /mnt2</b>
1286 <b>mount -t kernfs kern kern</b>
1287 <b>./install</b>
1288
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 <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 <b>gxemul -e 3max -d obsd_pmax.img -d 2c:openbsd_pmax_2.8.iso -j bsd -o '-s'</b>
1303 </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 <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
1314 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
1321 sync
1322 halt</b>
1323 </pre></td></tr></table>
1324 </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 <b>gxemul -e 3max -X -o '-aN' -d obsd_pmax.img -j bsd</b>
1337 </pre>
1338
1339 <p>
1340 (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
1343 <p>
1344 When asked for which terminal type to use, when logging in as root,
1345 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
1349
1350
1351
1352
1353
1354
1355
1356
1357 <p><br>
1358 <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 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
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 <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
1386 </pre>
1387 (Replace ftp.se.openbsd.org with a server closer to you, for
1388 increased download speed.)
1389 <p>
1390 <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 <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
1397 </pre>
1398 <li>Start the emulator using this command line:<pre>
1399 <b>gxemul -XEcats -d obsd_cats.img -d openbsd_cats_4.0.iso bsd.rd</b>
1400
1401 </pre>
1402 and proceed like you would do if you were installing OpenBSD
1403 on a real CATS. (Install onto <tt>wd0</tt>, don't configure the
1404 network, install from CD.)
1405 </ol>
1406
1407 <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 <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
1416 <p>Once the install has finished, the following command should let you
1417 boot from the harddisk image:
1418
1419 <p><pre>
1420 <b>gxemul -XEcats -d obsd_cats.img bsd</b>
1421
1422 </pre>
1423
1424
1425
1426
1427
1428
1429
1430 <p><br>
1431 <a name="ultrixinstall"></a>
1432 <h3>Ultrix/RISC:</h3>
1433
1434 Ultrix 4.x can run in GXemul on an emulated DECstation 5000/200.
1435 (Ultrix was the native OS for these machines, but
1436 <a href="#netbsdpmaxinstall">NetBSD/pmax</a> is also usable.)
1437
1438 <p>
1439 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1440 <a href="20040504-ultrix45-boot1.png"><img src="20040504-ultrix45-boot1_small.png"></a>
1441 &nbsp;&nbsp;&nbsp;
1442 <a href="ultrix4.5-20040706.png"><img src="ultrix4.5-20040706_small.png"></a>
1443
1444 <p>
1445 The following instructions should let you install Ultrix onto a disk image:
1446
1447 <ol>
1448 <li>Create an empty harddisk image, which will be the root disk
1449 that Ultrix installs itself onto:<pre>
1450 <b>dd if=/dev/zero of=rootdisk.img bs=1024 count=1 seek=800000</b>
1451
1452 </pre>
1453 <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 <b>gxemul -X -e 3max -d rootdisk.img -d bc:/dev/cd0c -j vmunix</b>
1458
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 This is done by removing the bootflag ('<tt>b</tt>') from the second
1464 diskimage argument:<pre>
1465 <b>gxemul -X -e 3max -d rootdisk.img -d c:/dev/cd0c -j vmunix</b>
1466
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 <b>gxemul -X -e 3max -j vmunix -d rootdisk.img</b>
1474 </pre>
1475
1476 <p>If you have a very fast host machine, you might experience a weird
1477 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 instructions per emulated second.
1482
1483 <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 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 <b>gxemul -N -e 3max -jgenvmunix -d rootdisk.img \
1497 -XZ3 -z remote1:0.0 -z localhost:0.0 -z remote2:0.0</b>
1498 </pre>
1499
1500 <p>The photo below shows a single Ultrix session running tripple-headed in
1501 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 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1506 <a href="20041209-ultrix-tripplehead.jpg"><img src="20041209-ultrix-tripplehead_small.jpg"></a>
1507
1508 <p>The X11 displays may differ in bit depth and endianness. Unfortunately,
1509 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 <p>(If you didn't use <tt><b>-Z<i>n</i></b></tt> during the installation, and
1513 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
1518 <p>A note for the historically interested: OSF/1 for MIPS was quite similar
1519 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 contents of that SCSI disk into a file (using <b><tt>dd(1)</tt></b>), and use
1523 that file as a disk image file in the emulator.
1524
1525
1526
1527
1528
1529
1530 <p><br>
1531 <a name="sprite"></a>
1532 <h3>Sprite for DECstation:</h3>
1533
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 &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 The following instructions should let you run Sprite in the emulator:
1549
1550 <p>
1551 <ol>
1552 <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 83973120 bytes, MD5 = ec84eeeb20fe77b758370d5e312e4a5e
1555
1556 </pre>
1557 <li>Start the emulator with the following command line:<pre>
1558 <b>gxemul -X -e 3max -M128 -d ds5000.bt -j vmsprite -o ''</b>
1559
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 Your machine's Ethernet address: 10:20:30:00:00:10
1571 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 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 <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 <p>Once you are logged in as root, running <b><tt>xinit</tt></b> will
1587 start the X11 environment.
1588
1589
1590
1591
1592
1593
1594 <p><br>
1595 <a name="declinux"></a>
1596 <h3>Debian GNU/Linux for DECstation:</h3>
1597
1598 It is possible to run Debian GNU/Linux for DECstation in the emulator,
1599 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 (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 <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 </ul>
1628
1629 <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
1633 <p>The following steps should let you install Debian GNU/Linux for
1634 DECstation onto a harddisk image in the emulator:
1635
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 <b>dd if=/dev/zero of=debian_pmax.img bs=1024 count=1 seek=6000000</b>
1641
1642 </pre>
1643 <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
1647 </pre>
1648 <p>
1649 <li>Start the installation like this:<pre>
1650 <b>gxemul -X -e3max -d debian_pmax.img -d debian-31r0a-mipsel-netinst.iso vmlinux-2.4.31</b>
1651 </pre>
1652
1653 <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 <p>
1673 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 <p>
1676 When you reach the network configuration part of the install, choose
1677 <b>Configure network manually</b> and enter the following values:<pre>
1678 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
1683 </pre>
1684 <p>Choose <b>Erase entire disk</b> in the partitioner.
1685
1686 <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 <p>When asked about whether the hardware clock is set to GMT or
1705 not, answer Yes.
1706
1707 <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 </ol>
1720
1721 <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
1725 </pre>
1726
1727
1728
1729
1730
1731
1732
1733 <p><br>
1734 <a name="declinuxredhat"></a>
1735 <h3>Redhat Linux for DECstation:</h3>
1736
1737
1738 <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
1742 <p>
1743 The following steps should let you run Redhat Linux for DECstation in GXemul:
1744
1745 <p>
1746 <ol>
1747 <li>Download a kernel. David Muse' Debian-install kernel works fine:<pre>
1748 <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
1750 </pre>
1751 <li>Download a root filesystem tree:<pre>
1752 <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 19486676 bytes, md5 = 5bcb725c90209479cd7ead8ad0c4a414
1754
1755 </pre>
1756 <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 <p>I recommend you run fdisk and mke2fs and untar the archive from within
1764 Debian/DECstation or <a href="#debiancats">Debian/CATS</a> running
1765 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 <p>
1770 In order to actually boot the system you need to modify /etc/fstab.
1771 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 <p>To boot Redhat linux from the disk image, use the following command line:<pre>
1787 <b>gxemul -X -e3max -o "root=/dev/sda1 ro" -d redhat_mips.img vmlinux-2.4.31</b>
1788
1789 </pre>
1790 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
1793
1794
1795
1796
1797
1798
1799 <p><br>
1800 <hr>
1801
1802
1803
1804
1805
1806
1807
1808 <p><br>
1809 <a name="mach"></a>
1810 <h3>Mach/PMAX:</h3>
1811
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 &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 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 <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 7263343 bytes, md5 = f9d76c240a6e169921a1df99ad560cc0
1837
1838 </pre>
1839 <li>Extract the Mach kernel:<pre>
1840 <b>tar xfvz pmax.tar.Z pmax_mach/special/mach.boot.MK83.STD+ANY</b>
1841
1842 </pre>
1843 <li>Create an empty disk image:<pre>
1844 <b>dd if=/dev/zero of=disk.img bs=1 count=512 seek=400000000</b>
1845
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 <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 pmax_mach/special/mach.boot.MK83.STD+ANY</b>
1864
1865 </pre>
1866 </ol>
1867
1868 <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
1874 <p>The -c commands above patch the kernel to get past the cache detection.
1875 Thanks to Artur Bujdoso for these values.
1876
1877 <p>TODO: Better instructions on how to create the old-style UFS disk
1878 image.
1879
1880
1881
1882
1883
1884 <p><br>
1885 <a name="openbsdsgiinstall"></a>
1886 <h3>OpenBSD/sgi:</h3>
1887
1888 <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 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 <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
1905 </pre>and run <b><tt>gxemul -xeo2 bsd.rd</tt></b>.
1906
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 as a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=diskless&amp;manpath=OpenBSD+Current&amp;format=html">diskless</a>
1910 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 <a href="#netbsdpmaxinstall">Install NetBSD/pmax 3.1 from CDROM</a>.
1917 (Don't forget to add the extra partition!)
1918 <p>
1919 <li>Configure the nfs server machine to act as an nfs server.
1920 Start up the emulated DECstation:<pre>
1921 <b>gxemul -e 3max -d nbsd_pmax.img</b>
1922 </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 <li>Start the DECstation emulation again, and enter the following
1940 commands to download the OpenBSD/sgi distribution:<br>(NOTE: This
1941 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 <b>cd pub/OpenBSD/3.9/sgi
1946 mget b*tgz c*tgz e* g* m*
1947 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 rm *.tgz
1952 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 <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
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 <font color="#2020cf">! Configuration file for running OpenBSD/sgi diskless with
1963 ! a NetBSD/pmax machine as the nfs server.
1964 !
1965 ! This config file is for the client.</font>
1966
1967 <b> net(
1968 add_remote("localhost:12444") </b>! the server<b>
1969 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 </b>
1983 </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 <b> net(
1988 local_port(12444) </b>! the server<b>
1989 add_remote("localhost:12445") </b>! the client<b>
1990 )
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 </b>
2002 </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 <b>gxemul @config_server</b>
2007
2008 and then, in another xterm:
2009 <b>gxemul @config_client</b>
2010
2011 </pre>
2012 <li>In the OpenBSD/sgi window, choose "<tt>s</tt>" (for Shell), and type:
2013 <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 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 </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
2059 <p><br>
2060 <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 <b>gxemul -e pica -X -d obsd_arc.img -d b:openbsd_arc_2.3.iso -j 2.3/arc/bsd.rd</b>
2119
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 <!--
2197 <p><br>
2198 <a name="linux_malta"></a>
2199 <h3>Linux/Malta:</h3>
2200
2201 <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 <p><br>
2265 <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 <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
2276 <p>Test it in GXemul using the following command line:<pre>
2277 <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
2339 <p><br>
2340 <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 </p>
2426
2427 </body>
2428 </html>

  ViewVC Help
Powered by ViewVC 1.1.26