/[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 32 - (show annotations)
Mon Oct 8 16:20:58 2007 UTC (16 years, 5 months ago) by dpavlin
File MIME type: text/html
File size: 91462 byte(s)
++ trunk/HISTORY	(local)
$Id: HISTORY,v 1.1421 2006/11/06 05:32:37 debug Exp $
20060816	Adding a framework for emulated/virtual timers (src/timer.c),
		using only setitimer().
		Rewriting the mc146818 to use the new timer framework.
20060817	Adding a call to gettimeofday() every now and then (once every
		second, at the moment) to resynch the timer if it drifts.
		Beginning to convert the ISA timer interrupt mechanism (8253
		and 8259) to use the new timer framework.
		Removing the -I command line option.
20060819	Adding the -I command line option again, with new semantics.
		Working on Footbridge timer interrupts; NetBSD/NetWinder and
		NetBSD/CATS now run at correct speed, but unfortunately with
		HUGE delays during bootup.
20060821	Some minor m68k updates. Adding the first instruction: nop. :)
		Minor Alpha emulation updates.
20060822	Adding a FreeBSD development specific YAMON environment
		variable ("khz") (as suggested by Bruce M. Simpson).
		Moving YAMON environment variable initialization from
		machine_evbmips.c into promemul/yamon.c, and adding some more
		variables.
		Continuing on the LCA PCI bus controller (for Alpha machines).
20060823	Continuing on the timer stuff: experimenting with MIPS count/
		compare interrupts connected to the timer framework.
20060825	Adding bogus SCSI commands 0x51 (SCSICDROM_READ_DISCINFO) and
		0x52 (SCSICDROM_READ_TRACKINFO) to the SCSI emulation layer,
		to allow NetBSD/pmax 4.0_BETA to be installed from CDROM.
		Minor updates to the LCA PCI controller.
20060827	Implementing a CHIP8 cpu mode, and a corresponding CHIP8
		machine, for fun. Disassembly support for all instructions,
		and most of the common instructions have been implemented: mvi,
		mov_imm, add_imm, jmp, rand, cls, sprite, skeq_imm, jsr,
		skne_imm, bcd, rts, ldr, str, mov, or, and, xor, add, sub,
		font, ssound, sdelay, gdelay, bogus skup/skpr, skeq, skne.
20060828	Beginning to convert the CHIP8 cpu in the CHIP8 machine to a
		(more correct) RCA 180x cpu. (Disassembly for all 1802
		instructions has been implemented, but no execution yet, and
		no 1805 extended instructions.)
20060829	Minor Alpha emulation updates.
20060830	Beginning to experiment a little with PCI IDE for SGI O2.
		Fixing the cursor key mappings for MobilePro 770 emulation.
		Fixing the LK201 warning caused by recent NetBSD/pmax.
		The MIPS R41xx standby, suspend, and hibernate instructions now
		behave like the RM52xx/MIPS32/MIPS64 wait instruction.
		Fixing dev_wdc so it calculates correct (64-bit) offsets before
		giving them to diskimage_access().
20060831	Continuing on Alpha emulation (OSF1 PALcode).
20060901	Minor Alpha updates; beginning on virtual memory pagetables.
		Removed the limit for max nr of devices (in preparation for
		allowing devices' base addresses to be changed during runtime).
		Adding a hack for MIPS [d]mfc0 select 0 (except the count
		register), so that the coproc register is simply copied.
		The MIPS suspend instruction now exits the emulator, instead
		of being treated as a wait instruction (this causes NetBSD/
		hpcmips to get correct 'halt' behavior).
		The VR41xx RTC now returns correct time.
		Connecting the VR41xx timer to the timer framework (fixed at
		128 Hz, for now).
		Continuing on SPARC emulation, adding more instructions:
		restore, ba_xcc, ble. The rectangle drawing demo works :)
		Removing the last traces of the old ENABLE_CACHE_EMULATION
		MIPS stuff (not usable with dyntrans anyway).
20060902	Splitting up src/net.c into several smaller files in its own
		subdirectory (src/net/).
20060903	Cleanup of the files in src/net/, to make them less ugly.
20060904	Continuing on the 'settings' subsystem.
		Minor progress on the SPARC emulation mode.
20060905	Cleanup of various things, and connecting the settings
		infrastructure to various subsystems (emul, machine, cpu, etc).
		Changing the lk201 mouse update routine to not rely on any
		emulated hardware framebuffer cursor coordinates, but instead
		always do (semi-usable) relative movements.
20060906	Continuing on the lk201 mouse stuff. Mouse behaviour with
		multiple framebuffers (which was working in Ultrix) is now
		semi-broken (but it still works, in a way).
		Moving the documentation about networking into its own file
		(networking.html), and refreshing it a bit. Adding an example
		of how to use ethernet frame direct-access (udp_snoop).
20060907	Continuing on the settings infrastructure.
20060908	Minor updates to SH emulation: for 32-bit emulation: delay
		slots and the 'jsr @Rn' instruction. I'm putting 64-bit SH5 on
		ice, for now.
20060909-10	Implementing some more 32-bit SH instructions. Removing the
		64-bit mode completely. Enough has now been implemented to run
		the rectangle drawing demo. :-)
20060912	Adding more SH instructions.
20060916	Continuing on SH emulation (some more instructions: div0u,
		div1, rotcl/rotcr, more mov instructions, dt, braf, sets, sett,
		tst_imm, dmuls.l, subc, ldc_rm_vbr, movt, clrt, clrs, clrmac).
		Continuing on the settings subsystem (beginning on reading/
		writing settings, removing bugs, and connecting more cpus to
		the framework).
20060919	More work on SH emulation; adding an ldc banked instruction,
		and attaching a 640x480 framebuffer to the Dreamcast machine
		mode (NetBSD/dreamcast prints the NetBSD copyright banner :-),
		and then panics).
20060920	Continuing on the settings subsystem.
20060921	Fixing the Footbridge timer stuff so that NetBSD/cats and
		NetBSD/netwinder boot up without the delays.
20060922	Temporarily hardcoding MIPS timer interrupt to 100 Hz. With
		'wait' support disabled, NetBSD/malta and Linux/malta run at
		correct speed.
20060923	Connecting dev_gt to the timer framework, so that NetBSD/cobalt
		runs at correct speed.
		Moving SH4-specific memory mapped registers into its own
		device (dev_sh4.c).
		Running with -N now prints "idling" instead of bogus nr of
		instrs/second (which isn't valid anyway) while idling.
20060924	Algor emulation should now run at correct speed.
		Adding disassembly support for some MIPS64 revision 2
		instructions: ext, dext, dextm, dextu.
20060926	The timer framework now works also when the MIPS wait
		instruction is used.
20060928	Re-implementing checks for coprocessor availability for MIPS
		cop0 instructions. (Thanks to Carl van Schaik for noticing the
		lack of cop0 availability checks.)
20060929	Implementing an instruction combination hack which treats
		NetBSD/pmax' idle loop as a wait-like instruction.
20060930	The ENTRYHI_R_MASK was missing in (at least) memory_mips_v2p.c,
		causing TLB lookups to sometimes succeed when they should have
		failed. (A big thank you to Juli Mallett for noticing the
		problem.)
		Adding disassembly support for more MIPS64 revision 2 opcodes
		(seb, seh, wsbh, jalr.hb, jr.hb, synci, ins, dins, dinsu,
		dinsm, dsbh, dshd, ror, dror, rorv, drorv, dror32). Also
		implementing seb, seh, dsbh, dshd, and wsbh.
		Implementing an instruction combination hack for Linux/pmax'
		idle loop, similar to the NetBSD/pmax case.
20061001	Changing the NetBSD/sgimips install instructions to extract
		files from an iso image, instead of downloading them via ftp.
20061002	More-than-31-bit userland addresses in memory_mips_v2p.c were
		not actually working; applying a fix from Carl van Schaik to
		enable them to work + making some other updates (adding kuseg
		support).
		Fixing hpcmips (vr41xx) timer initialization.
		Experimenting with O(n)->O(1) reduction in the MIPS TLB lookup
		loop. Seems to work both for R3000 and non-R3000.
20061003	Continuing a little on SH emulation (adding more control
		registers; mini-cleanup of memory_sh.c).
20061004	Beginning on a dev_rtc, a clock/timer device for the test
		machines; also adding a demo, and some documentation.
		Fixing a bug in SH "mov.w @(disp,pc),Rn" (the result wasn't
		sign-extended), and adding the addc and ldtlb instructions.
20061005	Contining on SH emulation: virtual to physical address
		translation, and a skeleton exception mechanism.
20061006	Adding more SH instructions (various loads and stores, rte,
		negc, muls.w, various privileged register-move instructions).
20061007	More SH instructions: various move instructions, trapa, div0s,
		float, fdiv, ftrc.
		Continuing on dev_rtc; removing the rtc demo.
20061008	Adding a dummy Dreamcast PROM module. (Homebrew Dreamcast
		programs using KOS libs need this.)
		Adding more SH instructions: "stc vbr,rn", rotl, rotr, fsca,
		fmul, fadd, various floating-point moves, etc. A 256-byte
		demo for Dreamcast runs :-)
20061012	Adding the SH "lds Rm,pr" and bsr instructions.
20061013	More SH instructions: "sts fpscr,rn", tas.b, and some more
		floating point instructions, cmp/str, and more moves.
		Adding a dummy dev_pvr (Dreamcast graphics controller).
20061014	Generalizing the expression evaluator (used in the built-in
		debugger) to support parentheses and +-*/%^&|.
20061015	Removing the experimental tlb index hint code in
		mips_memory_v2p.c, since it didn't really have any effect.
20061017	Minor SH updates; adding the "sts pr,Rn", fcmp/gt, fneg,
		frchg, and some other instructions. Fixing missing sign-
		extension in an 8-bit load instruction.
20061019	Adding a simple dev_dreamcast_rtc.
		Implementing memory-mapped access to the SH ITLB/UTLB arrays.
20061021	Continuing on various SH and Dreamcast things: sh4 timers,
		debug messages for dev_pvr, fixing some virtual address
		translation bugs, adding the bsrf instruction.
		The NetBSD/dreamcast GENERIC_MD kernel now reaches userland :)
		Adding a dummy dev_dreamcast_asic.c (not really useful yet).
		Implementing simple support for Store Queues.
		Beginning on the PVR Tile Accelerator.
20061022	Generalizing the PVR framebuffer to support off-screen drawing,
		multiple bit-depths, etc. (A small speed penalty, but most
		likely worth it.)
		Adding more SH instructions (mulu.w, fcmp/eq, fsub, fmac,
		fschg, and some more); correcting bugs in "fsca" and "float".
20061024	Adding the SH ftrv (matrix * vector) instruction. Marcus
		Comstedt's "tatest" example runs :) (wireframe only).
		Correcting disassembly for SH floating point instructions that
		use the xd* registers.
		Adding the SH fsts instruction.
		In memory_device_dyntrans_access(), only the currently used
		range is now invalidated, and not the entire device range.
20061025	Adding a dummy AVR32 cpu mode skeleton.
20061026	Various Dreamcast updates; beginning on a Maple bus controller.
20061027	Continuing on the Maple bus. A bogus Controller, Keyboard, and
		Mouse can now be detected by NetBSD and KOS homebrew programs.
		Cleaning up the SH4 Timer Management Unit, and beginning on
		SH4 interrupts.
		Implementing the Dreamcast SYSASIC.
20061028	Continuing on the SYSASIC.
		Adding the SH fsqrt instruction.
		memory_sh.c now actually scans the ITLB.
		Fixing a bug in dev_sh4.c, related to associative writes into
		the memory-mapped UTLB array. NetBSD/dreamcast now reaches
		userland stably, and prints the "Terminal type?" message :-]
		Implementing enough of the Dreamcast keyboard to make NetBSD
		accept it for input.
		Enabling SuperH for stable (non-development) builds.
		Adding NetBSD/dreamcast to the documentation, although it
		doesn't support root-on-nfs yet.
20061029	Changing usleep(1) calls in the debugger to to usleep(10000)
		(according to Brian Foley, this makes GXemul run better on
		MacOS X).
		Making the Maple "Controller" do something (enough to barely
		interact with dcircus.elf).
20061030-31	Some progress on the PVR. More test programs start running (but
		with strange output).
		Various other SH4-related updates.
20061102	Various Dreamcast and SH4 updates; more KOS demos run now.
20061104	Adding a skeleton dev_mb8696x.c (the Dreamcast's LAN adapter).
20061105	Continuing on the MB8696x; NetBSD/dreamcast detects it as mbe0.
		Testing for the release.

==============  RELEASE 0.4.3  ==============


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

  ViewVC Help
Powered by ViewVC 1.1.26