/[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 24 - (show annotations)
Mon Oct 8 16:19:56 2007 UTC (16 years, 6 months ago) by dpavlin
File MIME type: text/html
File size: 77638 byte(s)
++ trunk/HISTORY	(local)
$Id: HISTORY,v 1.1256 2006/06/23 20:43:44 debug Exp $
20060219	Various minor updates. Removing the old MIPS16 skeleton code,
		because it will need to be rewritten for dyntrans anyway.
20060220-22	Removing the non-working dyntrans backend support.
		Continuing on the 64-bit dyntrans virtual memory generalization.
20060223	More work on the 64-bit vm generalization.
20060225	Beginning on MIPS dyntrans load/store instructions.
		Minor PPC updates (64-bit load/store, etc).
		Fixes for the variable-instruction-length framework, some
		minor AVR updates (a simple Hello World program works!).
		Beginning on a skeleton for automatically generating documen-
		tation (for devices etc.).
20060226	PPC updates (adding some more 64-bit instructions, etc).
		AVR updates (more instructions).
		FINALLY found and fixed the zs bug, making NetBSD/macppc
		accept the serial console.
20060301	Adding more AVR instructions.
20060304	Continuing on AVR-related stuff. Beginning on a framework for
		cycle-accurate device emulation. Adding an experimental "PAL
		TV" device (just a dummy so far).
20060305	Adding more AVR instructions.
		Adding a dummy epcom serial controller (for TS7200 emulation).
20060310	Removing the emul() command from configuration files, so only
		net() and machine() are supported.
		Minor progress on the MIPS dyntrans rewrite.
20060311	Continuing on the MIPS dyntrans rewrite (adding more
		instructions, etc).
20060315	Adding more instructions (sllv, srav, srlv, bgtz[l], blez[l],
		beql, bnel, slti[u], various loads and stores).
20060316	Removing the ALWAYS_SIGNEXTEND_32 option, since it was rarely
		used.
		Adding more MIPS dyntrans instructions, and fixing bugs.
20060318	Implementing fast loads/stores for MIPS dyntrans (big/little
		endian, 32-bit and 64-bit modes).
20060320	Making MIPS dyntrans the default configure option; use
		"--enable-oldmips" to use the old bintrans system.
		Adding MIPS dyntrans dmult[u]; minor updates.
20060322	Continuing... adding some more instructions.
		Adding a simple skeleton for demangling C++ "_ZN" symbols.
20060323	Moving src/debugger.c into a new directory (src/debugger/).
20060324	Fixing the hack used to load PPC ELFs (useful for relocated
		Linux/ppc kernels), and adding a dummy G3 machine mode.
20060325-26	Beginning to experiment with GDB remote serial protocol
		connections; adding a -G command line option for selecting
		which TCP port to listen to.
20060330	Beginning a major cleanup to replace things like "0x%016llx"
		with more correct "0x%016"PRIx64, etc.
		Continuing on the GDB remote serial protocol support.
20060331	More cleanup, and some minor GDB remote progress.
20060402	Adding a hack to the configure script, to allow compilation
		on systems that lack PRIx64 etc.
20060406	Removing the temporary FreeBSD/arm hack in dev_ns16550.c and
		replacing it with a better fix from Olivier Houchard.
20060407	A remote debugger (gdb or ddd) can now start and stop the
		emulator using the GDB remote serial protocol, and registers
		and memory can be read. MIPS only for now.
20060408	More GDB progress: single-stepping also works, and also adding
		support for ARM, PowerPC, and Alpha targets.
		Continuing on the delay-slot-across-page-boundary issue.
20060412	Minor update: beginning to add support for the SPARC target
		to the remote GDB functionality.
20060414	Various MIPS updates: adding more instructions for dyntrans
		(eret, add), and making some exceptions work. Fixing a bug
		in dmult[u].
		Implementing the first SPARC instructions (sethi, or).
20060415	Adding "magic trap" instructions so that PROM calls can be
		software emulated in MIPS dyntrans.
		Adding more MIPS dyntrans instructions (ddiv, dadd) and
		fixing another bug in dmult.
20060416	More MIPS dyntrans progress: adding [d]addi, movn, movz, dsllv,
		rfi, an ugly hack for supporting R2000/R3000 style faked caches,
		preliminary interrupt support, and various other updates and
		bugfixes.
20060417	Adding more SPARC instructions (add, sub, sll[x], sra[x],
		srl[x]), and useful SPARC header definitions.
		Adding the first (trivial) x86/AMD64 dyntrans instructions (nop,
		cli/sti, stc/clc, std/cld, simple mov, inc ax). Various other
		x86 updates related to variable instruction length stuff.
		Adding unaligned loads/stores to the MIPS dyntrans mode (but
		still using the pre-dyntrans (slow) imlementation).
20060419	Fixing a MIPS dyntrans exception-in-delay-slot bug.
		Removing the old "show opcode statistics" functionality, since
		it wasn't really useful and isn't implemented for dyntrans.
		Single-stepping (or running with instruction trace) now looks
		ok with dyntrans with delay-slot architectures.
20060420	Minor hacks (removing the -B command line option when compiled
		for non-bintrans, and some other very minor updates).
		Adding (slow) MIPS dyntrans load-linked/store-conditional.
20060422	Applying fixes for bugs discovered by Nils Weller's nwcc
		(static DEC memmap => now per machine, and adding an extern
		keyword in cpu_arm_instr.c).
		Finally found one of the MIPS dyntrans bugs that I've been
		looking for (copy/paste spelling error BIG vs LITTLE endian in
		cpu_mips_instr_loadstore.c for 16-bit fast stores).
		FINALLY found the major MIPS dyntrans bug: slti vs sltiu
		signed/unsigned code in cpu_mips_instr.c. :-)
		Adding more MIPS dyntrans instructions (lwc1, swc1, bgezal[l],
		ctc1, tlt[u], tge[u], tne, beginning on rdhwr).
		NetBSD/hpcmips can now reach userland when using dyntrans :-)
		Adding some more x86 dyntrans instructions.
		Finally removed the old Alpha-specific virtual memory code,
		and replaced it with the generic 64-bit version.
		Beginning to add disassembly support for SPECIAL3 MIPS opcodes.
20060423	Continuing on the delay-slot-across-page-boundary issue;
		adding an end_of_page2 ic slot (like I had planned before, but
		had removed for some reason).
		Adding a quick-and-dirty fallback to legacy coprocessor 1
		code (i.e. skipping dyntrans implementation for now).
		NetBSD/hpcmips and NetBSD/pmax (when running on an emulated
		R4400) can now be installed and run. :-)  (Many bugs left
		to fix, though.)
		Adding more MIPS dyntrans instructions: madd[u], msub[u].
		Cleaning up the SPECIAL2 vs R5900/TX79/C790 "MMI" opcode
		maps somewhat (disassembly and dyntrans instruction decoding).
20060424	Adding an isa_revision field to mips_cpu_types.h, and making
		sure that SPECIAL3 opcodes cause Reserved Instruction
		exceptions on MIPS32/64 revisions lower than 2.
		Adding the SPARC 'ba', 'call', 'jmpl/retl', 'and', and 'xor'
		instructions.
20060425	Removing the -m command line option ("run at most x 
		instructions") and -T ("single_step_on_bad_addr"), because
		they never worked correctly with dyntrans anyway.
		Freshening up the man page.
20060428	Adding more MIPS dyntrans instructions: bltzal[l], idle.
		Enabling MIPS dyntrans compare interrupts.
20060429	FINALLY found the weird dyntrans bug, causing NetBSD etc. to
		behave strangely: some floating point code (conditional
		coprocessor branches) could not be reused from the old
		non-dyntrans code. The "quick-and-dirty fallback" only appeared
		to work. Fixing by implementing bc1* for MIPS dyntrans.
		More MIPS instructions: [d]sub, sdc1, ldc1, dmtc1, dmfc1, cfc0.
		Freshening up MIPS floating point disassembly appearance.
20060430	Continuing on C790/R5900/TX79 disassembly; implementing 128-bit
		"por" and "pextlw".
20060504	Disabling -u (userland emulation) unless compiled as unstable
		development version.
		Beginning on freshening up the testmachine include files,
		to make it easier to reuse those files (placing them in
		src/include/testmachine/), and beginning on a set of "demos"
		or "tutorials" for the testmachine functionality.
		Minor updates to the MIPS GDB remote protocol stub.
		Refreshing doc/experiments.html and gdb_remote.html.
		Enabling Alpha emulation in the stable release configuration,
		even though no guest OSes for Alpha can run yet.
20060505	Adding a generic 'settings' object, which will contain
		references to settable variables (which will later be possible
		to access using the debugger).
20060506	Updating dev_disk and corresponding demo/documentation (and
		switching from SCSI to IDE disk types, so it actually works
		with current test machines :-).
20060510	Adding a -D_LARGEFILE_SOURCE hack for 64-bit Linux hosts,
		so that fseeko() doesn't give a warning.
		Updating the section about how dyntrans works (the "runnable
		IR") in doc/intro.html.
		Instruction updates (some x64=1 checks, some more R5900
		dyntrans stuff: better mul/mult separation from MIPS32/64,
		adding ei and di).
		Updating MIPS cpuregs.h to a newer one (from NetBSD).
		Adding more MIPS dyntrans instructions: deret, ehb.
20060514	Adding disassembly and beginning implementation of SPARC wr
		and wrpr instructions.
20060515	Adding a SUN SPARC machine mode, with dummy SS20 and Ultra1
		machines. Adding the 32-bit "rd psr" instruction.
20060517	Disassembly support for the general SPARC rd instruction.
		Partial implementation of the cmp (subcc) instruction.
		Some other minor updates (making sure that R5900 processors
		start up with the EIE bit enabled, otherwise Linux/playstation2
		receives no interrupts).
20060519	Minor MIPS updates/cleanups.
20060521	Moving the MeshCube machine into evbmips; this seems to work
		reasonably well with a snapshot of a NetBSD MeshCube kernel.
		Cleanup/fix of MIPS config0 register initialization.
20060529	Minor MIPS fixes, including a sign-extension fix to the
		unaligned load/store code, which makes NetBSD/pmax on R3000
		work better with dyntrans. (Ultrix and Linux/DECstation still
		don't work, though.)
20060530	Minor updates to the Alpha machine mode: adding an AlphaBook
		mode, an LCA bus (forwarding accesses to an ISA bus), etc.
20060531	Applying a bugfix for the MIPS dyntrans sc[d] instruction from
		Ondrej Palkovsky. (Many thanks.)
20060601	Minifix to allow ARM immediate msr instruction to not give
		an error for some valid values.
		More Alpha updates.
20060602	Some minor Alpha updates.
20060603	Adding the Alpha cmpbge instruction. NetBSD/alpha prints its
		first boot messages :-) on an emulated Alphabook 1.
20060612	Minor updates; adding a dev_ether.h include file for the
		testmachine ether device. Continuing the hunt for the dyntrans
		bug which makes Linux and Ultrix on DECstation behave
		strangely... FINALLY found it! It seems to be related to
		invalidation of the translation cache, on tlbw{r,i}. There
		also seems to be some remaining interrupt-related problems.
20060614	Correcting the implementation of ldc1/sdc1 for MIPS dyntrans
		(so that it uses 16 32-bit registers if the FR bit in the
		status register is not set).
20060616	REMOVING BINTRANS COMPLETELY!
		Removing the old MIPS interpretation mode.
		Removing the MFHILO_DELAY and instruction delay stuff, because
		they wouldn't work with dyntrans anyway.
20060617	Some documentation updates (adding "NetBSD-archive" to some
		URLs, and new Debian/DECstation installation screenshots).
		Removing the "tracenull" and "enable-caches" configure options.
		Improving MIPS dyntrans performance somewhat (only invalidate
		translations if necessary, on writes to the entryhi register,
		instead of doing it for all cop0 writes).
20060618	More cleanup after the removal of the old MIPS emulation.
		Trying to fix the MIPS dyntrans performance bugs/bottlenecks;
		only semi-successful so far (for R3000).
20060620	Minor update to allow clean compilation again on Tru64/Alpha.
20060622	MIPS cleanup and fixes (removing the pc_last stuff, which
		doesn't make sense with dyntrans anyway, and fixing a cross-
		page-delay-slot-with-exception case in end_of_page).
		Removing the old max_random_cycles_per_chunk stuff, and the
		concept of cycles vs instructions for MIPS emulation.
		FINALLY found and fixed the bug which caused NetBSD/pmax
		clocks to behave strangely (it was a load to the zero register,
		which was treated as a NOP; now it is treated as a load to a
		dummy scratch register).
20060623	Increasing the dyntrans chunk size back to
		N_SAFE_DYNTRANS_LIMIT, instead of N_SAFE_DYNTRANS_LIMIT/2.
		Preparing for a quick release, even though there are known
		bugs, and performance for non-R3000 MIPS emulation is very
		poor. :-/
		Reverting to half the dyntrans chunk size again, because
		NetBSD/cats seemed less stable with full size chunks. :(
		NetBSD/sgimips 3.0 can now run :-)  (With release 0.3.8, only
		NetBSD/sgimips 2.1 worked, not 3.0.)

==============  RELEASE 0.4.0  ==============


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

  ViewVC Help
Powered by ViewVC 1.1.26