/[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 6 - (show annotations)
Mon Oct 8 16:18:11 2007 UTC (13 years, 3 months ago) by dpavlin
File MIME type: text/html
File size: 45738 byte(s)
++ trunk/HISTORY	(local)
$Id: HISTORY,v 1.772 2005/06/04 12:02:16 debug Exp $
20050428	Disabling the "-fmove-all-movables" option in the configure
		script, because it causes the compile to fail on OpenBSD/sgi.
20050502	Minor updates.
20050503	Removing the WRT54G mode (it was bogus anyway), and adding a
		comment about Windows NT for MIPS in doc/experiments.html.
		Minor updates to the x86 instruction decoding.
20050504	Adding some more x86 instructions.
		Adding support for reading files from ISO9660 CDROMs (including
		gzipped files). It's an ugly hack, but it seems to work.
		Various other minor updates (dev_vga.c, pc_bios.c etc).
20050505	Some more x86-related updates.
		Beginning (what I hope will be) a major code cleanup phase.
		"bootris" (an x86 bootsector) runs :-)
20050506	Adding some more x86 instructions.
20050507	tmpnam => mkstemp.
		Working on a hack to allow VGA charcells to be shown even when
		not running with X11.
		Adding more x86 instructions.
20050508	x86 32-bit SIB addressing fix, and more instructions.
20050509	Adding more x86 instructions.
20050510	Minor documentation updates, and other updates (x86 stuff etc.)
20050511	More x86-related updates.
20050513	Various updates, mostly x86-related. (Trying to fix flag 
		calculation, factoring out the ugly shift/rotate code, and
		some other things.)
20050514	Adding support for loading some old i386 a.out executables.
		Finally beginning the cleanup of machine/PROM/bios dependant
		info.
		Some minor documentation updates.
		Trying to clean up ARCBIOS stuff a little.
20050515	Trying to make it possible to actually use more than one disk
		type per machine (floppy, ide, scsi).
		Trying to clean up the kbd vs PROM console stuff. (For PC and
		ARC emulation modes, mostly.)
		Beginning to add an 8259 interrupt controller, and connecting
		it to the x86 emulation.
20050516	The first x86 interrupts seem to work (keyboard stuff).
		Adding a 8253/8254 programmable interval timer skeleton.
		FreeDOS now reaches a command prompt and can be interacted
		with.
20050517	After some bugfixes, MS-DOS also (sometimes) reaches a
		command prompt now.
		Trying to fix the pckbc to work with MS-DOS' keyb.com, but no
		success yet.
20050518	Adding a simple 32-bit x86 MMU skeleton.
20050519	Some more work on the x86 stuff. (Beginning the work on paging,
		and various other fixes).
20050520	More updates. Working on dev_vga (4-bit graphics modes), adding
		40 columns support to the PC bios emulation.
		Trying to add support for resizing windows when switching
		between graphics modes.
20050521	Many more x86-related updates.
20050522	Correcting the initial stack pointer's sign-extension for
		ARCBIOS emulation (thanks to Alec Voropay for noticing the
		error).
		Continuing on the cleanup (ARCBIOS etc).
		dev_vga updates.
20050523	More x86 updates: trying to add some support for protected mode
		interrupts (via gate descriptors) and many other fixes.
		More ARCBIOS cleanup.
		Adding a device flag which indicates that reads cause no
		side-effects. (Useful for the "dump" command in the debugger,
		and other things.)
		Adding support for directly starting up x86 ELFs, skipping the
		bootloader stage. (Most ELFs, however, are not suitable for
		this.)
20050524	Adding simple 32-bit x86 TSS task switching, but no privilege
		level support yet.
		More work on dev_vga. A small "Copper bars" demo works. :-)
		Adding support for Trap Flag (single-step exceptions), at least
		in real mode, and various other x86-related fixes.
20050525	Adding a new disk image prefix (gH;S;) which can be used to
		override the default nr of heads and sectors per track.
20050527	Various bug fixes, more work on the x86 mode (stack change on
		interrupts between different priv.levels), and some minor
		documentation updates.
20050528	Various fixes (x86 stuff).
20050529	More x86 fixes. An OpenBSD/i386 bootfloppy reaches userland
		and can be interacted with (although there are problems with
		key repetition). NetBSD/i386 triggers a serious CISC-related
		problem: instruction fetches across page boundaries, where
		the later part isn't actually part of the instruction.
20050530	Various minor updates. (Documentation updates, etc.)
20050531	Adding some experimental code (experiments/new_test_*) which
		could be useful for dynamic (but not binary) translation in
		the future.
20050602	Adding a dummy ARM skeleton.
		Fixing the pckbc key repetition problem (by adding release
		scancodes for all keypresses).
20050603	Minor updates for the next release.
20050604	Release testing. Minor updates.

==============  RELEASE 0.3.3  ==============

20050604	There'll probably be a 0.3.3.1 release soon, with some very
		very tiny updates.


1 <html>
2 <head><title>GXemul documentation: Installing and running "guest OSes"</title>
3 </head>
4 <body bgcolor="#f8f8f8" text="#000000" link="#4040f0" vlink="#404040" alink="#ff0000">
5 <table border=0 width=100% bgcolor="#d0d0d0"><tr>
6 <td width=100% align=center valign=center><table border=0 width=100%><tr>
7 <td align="left" valign=center bgcolor="#d0efff"><font color="#6060e0" size="6">
8 <b>GXemul documentation:</b></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
9 <font color="#000000" size="6"><b>Installing and running "guest OSes"</b>
10 </font></td></tr></table></td></tr></table><p>
11 <!-- The first 10 lines are cut away by the homepage updating script. -->
12
13
14 <!--
15
16 $Id: guestoses.html,v 1.48 2005/06/04 01:11:01 debug Exp $
17
18 Copyright (C) 2003-2005 Anders Gavare. All rights reserved.
19
20 Redistribution and use in source and binary forms, with or without
21 modification, are permitted provided that the following conditions are met:
22
23 1. Redistributions of source code must retain the above copyright
24 notice, this list of conditions and the following disclaimer.
25 2. Redistributions in binary form must reproduce the above copyright
26 notice, this list of conditions and the following disclaimer in the
27 documentation and/or other materials provided with the distribution.
28 3. The name of the author may not be used to endorse or promote products
29 derived from this software without specific prior written permission.
30
31 THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
32 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
33 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
34 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
35 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
39 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
40 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
41 SUCH DAMAGE.
42
43 -->
44
45 <a href="./">Back to the index</a>
46
47 <p><br>
48 <h2>Installing and running "guest OSes"</h2>
49
50 <p>
51 <ul>
52 <li><a href="#generalnotes">General notes on running "guest OSes"</a>
53 <li><a href="#netbsdinstall">Installing NetBSD/pmax in GXemul</a>
54 <li><a href="#netbsdarcinstall">Installing NetBSD/arc in GXemul</a>
55 <li><a href="#netbsdhpcmipsinstall">Installing NetBSD/hpcmips in GXemul</a>
56 <li><a href="#netbsdcobaltinstall">Installing NetBSD/cobalt in GXemul</a>
57 <!--
58 <li><a href="#netbsdsgimips">Running NetBSD/sgimips in GXemul</a>
59 -->
60 <li><a href="#openbsdinstall">Installing OpenBSD/pmax in GXemul</a>
61 <li><a href="#openbsdarcinstall">Installing OpenBSD/arc in GXemul</a>
62 <!--
63 <li><a href="#openbsdsgiinstall">Running OpenBSD/sgi in GXemul</a>
64 -->
65 <li><a href="#ultrixinstall">Installing Ultrix/RISC in GXemul</a>
66 <li><a href="#sprite">Running Sprite for DECstation in GXemul</a>
67 <li><a href="#declinux">Installing Debian GNU/Linux for DECstation in GXemul</a>
68 <li><a href="#declinuxredhat">Running Redhat Linux for DECstation in GXemul</a>
69 <li><a href="#mach">Running Mach/PMAX in GXemul</a>
70 </ul>
71
72
73
74
75
76
77 <p><br>
78 <a name="generalnotes"></a>
79 <h3>General notes on running "guest OSes":</h3>
80
81 The emulator works well enough to run complete operating systems. These
82 are often refered to as "guest" operating systems.
83
84 <p>
85 Although it is possible to let a guest OS access real hardware, such as
86 harddisks, it is much more flexible and attractive to simulate harddisks
87 using files residing in the host's filesystem. On Unix-like systems, files
88 may contain holes, which makes this really simple. To the guest operating
89 system, the harddisk image looks and acts like a real disk.
90
91
92
93
94
95
96
97
98 <p><br>
99 <a name="netbsdinstall"></a>
100 <h3>Installing NetBSD/pmax in GXemul:</h3>
101
102 <p>
103 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
104 <a href="20050317-example.png"><img src="20050317-example_small.png"></a>
105
106 <p>
107 To install NetBSD/pmax onto a harddisk image in the emulator, follow these
108 instructions:
109
110 <p>
111 <ol start="1">
112 <li>Create an empty harddisk image, which will be the root disk
113 that NetBSD installs itself onto:<pre>
114 $ <b>dd if=/dev/zero of=nbsd_pmax.img bs=1 count=512 seek=1900000000</b>
115
116 </pre>
117 </ol>
118
119 <p>
120 From this point, there are two separate ways to continue the installation.
121 You can either download a CD-ROM iso image (and let the installation
122 program copy files from the CD-ROM image to the harddisk image), or you
123 can install via ftp. For an installation from a CD-ROM image, follow these
124 steps:
125 <p>
126 <ol start="2">
127
128 <li>Download a NetBSD CD-ROM iso image:<pre>
129 <a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/1.6.2/pmaxcd.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/1.6.2/pmaxcd.iso</a>
130 or
131 <a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/2.0/pmaxcd.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/2.0/pmaxcd.iso</a>
132
133 </pre>
134 <li>Start the emulator like this:<pre>
135 $ <b>gxemul -X -b -E dec -e 3max -d nbsd_pmax.img -d bc:pmaxcd.iso</b>
136 </pre>
137 </ol>
138 <p>
139 For an ftp install, substitute steps 2 and 3 above with these:
140 <p>
141 <ol start="2">
142
143 <li>Download a NetBSD pmax INSTALL kernel, and gunzip it:<pre>
144 <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/pmax/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/pmax/binary/kernel/netbsd-INSTALL.gz</a>
145 or
146 <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/pmax/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/pmax/binary/kernel/netbsd-INSTALL.gz</a>
147
148 $ <b>gunzip netbsd-INSTALL.gz</b>
149
150 </pre>
151 <li>Start the emulator like this:<pre>
152 $ <b>gxemul -X -b -E dec -e 3max -d nbsd_pmax.img -O netbsd-INSTALL</b>
153 </pre>
154 </ol>
155
156 <p>
157 (If you don't want to use a graphical framebuffer during the install,
158 you can remove <b>-X</b> from the command line, but then make sure you
159 choose 'vt100' when prompted with which terminal type to use, and not
160 'rcons'.)
161
162 <p>
163 Then proceed like you would do if you were installing NetBSD on a real
164 DECstation. If you are installing from the network, then suitable networking
165 parameters are as follows:<pre>
166 Which device shall I use? [le0]: <b>le0</b>
167 ..
168 Your DNS domain: <b>mydomain.com</b>
169 Your host name: <b>foo</b>
170 Your IPv4 number: <b>10.0.0.1</b>
171 IPv4 Netmask [0xff000000]: <b>0xff000000</b>
172 IPv4 gateway: <b>10.0.0.254</b>
173 IPv4 name server: <b>10.0.0.254</b>
174 </pre>
175
176 <p>
177 (If using 10.0.0.254 as the nameserver fails, then try entering the
178 IP number of a real-world nameserver instead.)
179
180 <p>
181 When the installation is completed, the following command should start
182 NetBSD from the harddisk image:<pre>
183 $ <b>gxemul -X -b -M64 -E dec -e 3max -d nbsd_pmax.img</b>
184 </pre>
185
186 <p>
187 Use <b>startx</b> to start X windows.
188
189 <p>
190 <font color="#ff0000">NOTE:</font> For some reason, NetBSD 2.0 doesn't
191 work with X out-of-the-box on pmax. It seems that this has to do with a
192 switch to WSCONS. For now, if you want X, then try NetBSD 1.6.2.
193
194 <p>
195 If you want to run without the X framebuffer, use this instead:<pre>
196 $ <b>gxemul -E dec -e 3max -b -d nbsd_pmax.img</b>
197 </pre>
198
199
200
201
202
203
204
205 <p><br>
206 <a name="netbsdarcinstall"></a>
207 <h3>Installing NetBSD/arc in GXemul:</h3>
208
209 It is possible to run NetBSD/arc on an emulated Acer PICA-61 in the emulator.
210
211 <p>
212 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
213 <a href="20041024-netbsd-arc-installed.gif"><img src="20041024-netbsd-arc-installed_small.gif"></a>
214
215 <p>
216 To install NetBSD/arc from a CDROM image onto an emulated harddisk image,
217 follow these instructions:
218
219 <p>
220 <ol start="1">
221 <li>Create an empty harddisk image, which will be the root disk
222 that NetBSD installs itself onto:<pre>
223 $ <b>dd if=/dev/zero of=nbsd_arc.img bs=1024 count=1 seek=900000</b>
224
225 </pre>
226 <li>Download a NetBSD/arc 1.6.2 CDROM image from ftp:<pre>
227 <a href="ftp://ftp.netbsd.org/pub/NetBSD/iso/1.6.2/arccd.iso">ftp://ftp.netbsd.org/pub/NetBSD/iso/1.6.2/arccd.iso</a>
228
229 </pre>
230 <li>Start the emulator using this command line:<pre>
231 $ <b>gxemul -E arc -e pica -x -b -d nbsd_arc.img -d bc:arccd.iso \
232 -j arc/binary/kernel/netbsd.RAMDISK.gz</b>
233
234 </pre>
235 (Try removing <tt>-x</tt> if you have problems with the xterm.)
236 <p>
237 <li>From now on, you have to use your imagination, as there is no
238 automatic installation program for NetBSD/arc. Here are some tips
239 and hints on how you can proceed with the install:<pre>
240 $ <b>mount /dev/cd0a /mnt2</b>
241 $ <b>disklabel -i -I sd0</b> (for example 'a', '4.2BSD', '1c',
242 '700M', 'b', 'swap', '701M', '$', 'P', 'W', 'y', and 'Q')
243 $ <b>newfs /dev/sd0a</b>
244 $ <b>mount /dev/sd0a /mnt</b>
245 $ <b>cd /mnt</b>
246 $ <b>for a in /mnt2/arc/binary/sets/*.tgz; do echo $a; tar xzpf $a; done</b>
247 $ <b>cd dev; sh MAKEDEV all</b>
248 $ <b>cd ../etc; echo "rc_configured=YES" &gt;&gt; rc.conf</b>
249 $ <b>cat > /mnt/etc/fstab</b>
250 /dev/sd0a / ffs rw 1 1
251 /dev/sd0b none swap sw 0 0
252 (ctrl-d)
253 $ <b>cd /; umount /mnt; umount /mnt2</b>
254 $ <b>halt</b>
255
256 </pre>
257 <li>Download a generic NetBSD/arc kernel,
258 and gunzip it:<pre>
259 <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/arc/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/arc/binary/kernel/netbsd-GENERIC.gz</a>
260
261 </pre>
262 </ol>
263
264 <p>
265 You can now use the generic NetBSD/arc kernel to boot from the harddisk
266 image, using the following command:
267 <p>
268 <pre>
269 $ <b>gxemul -E arc -e pica -xb -d nbsd_arc.img netbsd-GENERIC</b>
270
271 </pre>
272
273
274
275
276
277
278
279
280 <p><br>
281 <a name="netbsdhpcmipsinstall"></a>
282 <h3>Installing NetBSD/hpcmips in GXemul:</h3>
283
284 It is possible to install NetBSD/hpcmips onto a disk image, on an an
285 emulated MobilePro 770, 780, 800, or 880. The emulator treats the
286 different machine models as being almost identical; the most important
287 difference is regarding the framebuffer.
288
289 <p>
290 <table border="0">
291 <tr>
292 <td width="80">&nbsp;</td>
293 <td><u>Model:</u></td>
294 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
295 <td><u>Framebuffer size/depth:</u></td>
296 <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
297 <td><u>Framebuffer address:</u></td>
298 </tr>
299 <tr>
300 <td></td>
301 <td>MobilePro 770 (<super>*2</super>)</td>
302 <td></td>
303 <td>640 x 240, 16 bits</td>
304 <td></td>
305 <td>0xa000000</td>
306 </tr>
307 <tr>
308 <td></td>
309 <td>MobilePro 780</td>
310 <td></td>
311 <td>640 x 240, 16 bits</td>
312 <td></td>
313 <td>0xa180100 (<super>*</super>)</td>
314 </tr>
315 <tr>
316 <td></td>
317 <td>MobilePro 800</td>
318 <td></td>
319 <td>800 x 600, 16 bits</td>
320 <td></td>
321 <td>0xa000000</td>
322 </tr>
323 <tr>
324 <td></td>
325 <td>MobilePro 880</td>
326 <td></td>
327 <td>800 x 600, 16 bits</td>
328 <td></td>
329 <td>0xa0ea600 (<super>*</super>)</td>
330 </tr>
331 </table>
332
333 <p>
334 (<super>*</super>) = not aligned at a 4 KB boundary, so it will not work
335 efficiently with the current bintrans system. Using this mode will still
336 work, but each load and store will be emulated much more slowly than is
337 possible with an aligned framebuffer.
338
339 <p>
340 (<super>*2</super>) = The MobilePro 770's cursor keys work differently
341 than the other models, for some reason. (This is a known bug.)
342
343 <p>
344 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
345 <a href="20050427-netbsd-hpcmips-1.png"><img src="20050427-netbsd-hpcmips-1_small.png"></a>
346 &nbsp;&nbsp;&nbsp;
347 <a href="20050427-netbsd-hpcmips-2.png"><img src="20050427-netbsd-hpcmips-2_small.png"></a>
348
349 <p>
350 These instructions show an example of how to install
351 NetBSD/hpcmips on an emulated MobilePro 800:
352
353 <p>
354 <ol start="1">
355 <li>Create an empty harddisk image, which will be the root disk
356 that you will install NetBSD/hpcmips onto:<pre>
357 $ <b>dd if=/dev/zero of=nbsd_hpcmips.img bs=1024 count=1 seek=1990000</b>
358
359 </pre>
360 <li>Download the NetBSD 2.0 for hpcmips ISO image:<pre>
361 <a href="ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0/">ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0</a>/<a href="ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0/hpcmipscd.iso">hpcmipscd.iso</a>
362
363 </pre>(You may want to choose a mirror closer to you, if .se is slow.)
364 <p>
365 <li>Start the installation like this:<pre>
366 $ <b>gxemul -E hpc -e mobilepro800 -b -X -d nbsd_hpcmips.img \
367 -d b:hpcmipscd.iso -j hpcmips/installation/netbsd.gz</b>
368
369 </pre>
370 and proceed like you would do if you were installing NetBSD on a real
371 MobilePro 800. (Install onto wd0, choose "Use entire disk" when
372 doing the MBR partitioning, and choose wd1d (not cd0c) as the
373 CDROM device to install from.)
374 </ol>
375
376 <p>
377 If everything worked, NetBSD should now be installed on the disk image.
378 GXemul does not (yet) support reading the kernel directly from the
379 disk image, so you need to download a generic kernel separately:<pre>
380 <a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/binary/kernel/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/binary/kernel</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/binary/kernel/netbsd-GENERIC.gz">netbsd-GENERIC.gz</a>
381
382 </pre>
383
384 <p>
385 Once you have gunziped the generic kernel, you can now use it to boot from
386 the harddisk image, using the following command:<pre>
387 $ <b>gxemul -E hpc -e mobilepro800 -b -X -d nbsd_hpcmips.img netbsd-GENERIC</b>
388
389 </pre>
390
391 <p>
392 When you have logged in as root, you can use <b>startx</b> to start X
393 Windows. (Note: There is no mouse support yet; you can only use
394 keyboard input.)
395
396
397
398
399
400
401
402
403 <p><br>
404 <a name="netbsdcobaltinstall"></a>
405 <h3>Installing NetBSD/cobalt in GXemul:</h3>
406
407 <a href="http://www.netbsd.org/Ports/cobalt/">NetBSD/cobalt</a> is tricky
408 to install, because the Cobalt machines were designed for Linux, and not
409 very flexible. There is no INSTALL kernel for NetBSD/cobalt. One way to
410 install the NetBSD/cobalt distribution onto a disk image is to do it from
411 another (emulated) machine.
412
413 <p>
414 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
415 <a href="20050413-netbsd-cobalt.png"><img src="20050413-netbsd-cobalt_small.png"></a>
416
417 <p>
418 The following instructions will let you install NetBSD/cobalt onto a disk
419 image, from an emulated DECstation 3MAX machine:
420
421 <p>
422 <ol>
423 <li>Create an empty harddisk image, which will be the disk image
424 that you will install NetBSD/cobalt onto:<pre>
425 $ <b>dd if=/dev/zero of=nbsd_cobalt.img bs=1024 count=1 seek=1999000</b>
426
427 </pre>
428 <li>Download the generic kernel for Cobalt (and gunzip it) and
429 the 2.0 ISO image:<pre>
430 <a href="ftp://ftp.se.netbsd.org/pub/NetBSD/NetBSD-2.0/cobalt/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.se.netbsd.org/pub/NetBSD/NetBSD-2.0/cobalt/binary/kernel/netbsd-GENERIC.gz</a>
431 <a href="ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0/cobaltcd.iso">ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0/cobaltcd.iso</a>
432
433 </pre>(You may want to choose a mirror closer to you, if .se is slow.)
434 <p>
435 <li>Install NetBSD/pmax 2.0 according to instructions further up
436 on this page.
437 <p>
438 <li>Start NetBSD/pmax like this:<pre>
439 $ <b>gxemul -b -Edec -e3max -d nbsd_pmax.img -d cobaltcd.iso -d nbsd_cobalt.img</b>
440
441 </pre>
442 <li>Log in as root (on the emulated 3MAX machine), and execute the
443 following commands: (adjust according to taste)<pre>
444 # <b>newfs /dev/sd1c</b>
445 # <b>mount /dev/cd0c /mnt</b>
446 # <b>mkdir /mnt2; mount /dev/sd1c /mnt2</b>
447 # <b>cd /mnt2; sh</b>
448 # <b>for a in /mnt/cobalt/binary/sets/*.tgz; do echo $a; tar zxfp $a; done</b>
449 # <b>exit</b>
450 # <b>cd dev; sh ./MAKEDEV all; cd ../etc</b>
451 # <b>echo rc_configured=YES >> rc.conf</b>
452 # <b>echo "/dev/wd0d / ffs rw 1 1" > fstab</b>
453 # <b>cd /; umount /mnt; umount /mnt2; halt</b>
454 </pre>
455 </ol>
456
457 <p>
458 You should now be able to boot NetBSD/cobalt like this:<pre>
459 $ <b>gxemul -b -M128 -E cobalt -d nbsd_cobalt.img netbsd-GENERIC</b>
460 </pre>
461
462 Note that the installation instructions above create a filesystem
463 <i>without</i> a disklabel, so there is only one ffs partition and no
464 swap. You will need to enter the following things when booting with the
465 generic kernel:<pre>
466 root device (default wd0a): <b>wd0d</b>
467 dump device (default wd0b): <b>none</b>
468 file system (default generic): <b>ffs</b>
469 init path (default /sbin/init): <i>(just press enter here)</i>
470 </pre>
471
472
473
474
475
476
477
478 <!--
479
480 <p><br>
481 <a name="netbsdsgimips"></a>
482 <h3>Running NetBSD/sgimips in GXemul:</h3>
483
484 <a href="http://www.netbsd.org/Ports/sgimips/">NetBSD/sgimips</a>
485 can theoretically run in GXemul on an emulated O2 (SGI-IP32) with root on nfs.
486
487 <p>
488 <font color="#ff0000">NOTE: I haven't succeeded with this yet.</font>
489
490 <p>
491 See the section on <a href="#openbsdsgiinstall">how to run OpenBSD/sgi</a>
492 for more information.
493
494 <p>
495 TODO...
496
497 <pre>
498 cd /tftpboot; ftp -i ftp.se.netbsd.org
499 ..
500 cd pub/NetBSD/NetBSD-2.0/sgimips/binary/sets
501 mget *.tgz
502 exit
503 sh
504 for a in etc.tgz base.tgz comp.tgz; do tar zxvfp $a; done
505
506 </pre>
507
508 -->
509
510
511
512
513
514
515
516 <p><br>
517 <a name="openbsdinstall"></a>
518 <h3>Installing OpenBSD/pmax in GXemul:</h3>
519
520 Installing OpenBSD/pmax is a bit harder than installing NetBSD/pmax.
521 You should first read the section above on how to install NetBSD/pmax,
522 before continuing here. If you have never installed OpenBSD on any
523 architecture, then you need a great deal of patience to do this.
524 If, on the other hand you are used to installing OpenBSD, then
525 this should be no problem for you.
526
527 <p>
528 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
529 <a href="20040710-openbsd-pmax.png"><img src="20040710-openbsd-pmax_small.png"></a>
530 &nbsp;&nbsp;&nbsp;
531 <a href="openbsd-pmax-20040710.png"><img src="openbsd-pmax-20040710_small.png"></a>
532
533 <p>
534 OpenBSD/pmax died at release 2.8 of OpenBSD, so you should be
535 aware of the fact that this will not give you an up-to-date OpenBSD
536 system.
537
538 <p>
539 Following these instructions <i>might</i> work. If not, then use
540 common sense and imagination to modify them as you see fit.
541
542 <p>
543 <ol>
544 <li>Create an empty harddisk image, which will be the root disk
545 that OpenBSD installs itself onto:<pre>
546 $ <b>dd if=/dev/zero of=obsd_pmax.img bs=1 count=512 seek=900000000</b>
547
548 </pre>
549 <li>Download the entire pmax directory from the ftp server: (approx. 99 MB)<pre>
550 $ <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>
551
552 </pre>
553
554 <li>Execute the following commands:<pre>
555 $ <b>mv ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/simpleroot28.fs.gz .</b>
556 $ <b>gunzip simpleroot28.fs.gz</b>
557 $ <b>chmod +w simpleroot28.fs</b> &lt;--- make sure
558
559 </pre>
560 <li>You now need to make an ISO image of the entire directory you downloaded.
561 I recommend using <tt>mkisofs</tt> for that purpose. If you don't
562 already have <tt>mkisofs</tt> installed on your system, you need
563 to install it in order to do this.<pre>
564 $ <b>mkisofs -o openbsd_pmax_2.8.iso ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax</b>
565
566 </pre>
567 <li>Start the emulator with all three (!) disk images:<pre>
568 $ <b>gxemul -E dec -e 3max -b -d obsd_pmax.img -d b:simpleroot28.fs -j bsd -d c:openbsd_pmax_2.8.iso</b>
569
570 </pre>
571 (If you add <tt><b>-X</b></tt>, you will run with the graphical
572 framebuffer. This is <i>REALLY</i> slow because the console has to
573 scroll a lot during the install. I don't recommend it.)
574 <p>
575 <li>Go on with the installation as you would do if you were installing on a real machine.
576 If you are not used to the OpenBSD installer, then this will most likely
577 be a very uncomfortable experience. Some important things to keep in mind are:
578 <ul>
579 <li>rz0 is the rootdisk you wish to install onto.
580 <li>rz1 is the simpleroot image.
581 <li>rz2 is the CDROM containing the "install sets".
582 <li>When asked for the "<b>root device?</b>", enter <b>rz1</b>.
583 <li>At "<b>Enter pathname of shell or RETURN for sh:</b>", press enter.
584 <li>At the # prompt, do the following:<pre>
585 $ <b>fsck /dev/rz1a</b> (and mark the filesystem as clean)
586 $ <b>mount /dev/rz1a /</b>
587 $ <b>mount -t kernfs kern kern</b>
588 $ <b>./install</b>
589
590 </pre>
591 and proceed with the install. Good luck. :-)
592 <li>Answer "<b>y</b>" when asked if you wish to configure the network.
593 (See the section about installing NetBSD/pmax for suitable
594 network settings.)
595 <li>Install from "<b>c</b>" (cdrom), choose "<b>rz2</b>" as the cdrom device, and "<b>/</b>" as
596 the directory containing the install sets.
597 </ul>
598 <p>
599 <li>
600 For some unknown reason, the install script does not set the root
601 password! The first time you boot up OpenBSD after the install, you
602 need to go into single user mode and run <b>passwd root</b> to set
603 the root password, or you will not be able to log in at all!
604 <pre>
605 $ <b>gxemul -E dec -e 3max -b -d obsd_pmax.img -d 2c:openbsd_pmax_2.8.iso -j bsd -o '-s'</b>
606 </pre>
607 While you are at it, you might want to extract the X11 install sets
608 as well, as the installer seems to ignore them too. (Perhaps due to a bug
609 in the installer, perhaps because of the way I used mkisofs.)
610 <p>
611 Execute the following commands in the emulator:
612 <pre>
613 # <b>fsck /dev/rz0a</b>
614 # <b>mount /</b>
615 # <b>passwd root</b>
616
617 # <b>cd /; mount -t cd9660 /dev/rz2c /mnt; sh</b>
618 # <b>for a in /mnt/[xX]*; do tar zxvf $a; done</b>
619 # <b>ln -s /usr/X11R6/bin/Xcfbpmax /usr/X11R6/bin/X</b>
620 # <b>ln -s /dev/fb0 /dev/mouse</b>
621 # <b>echo /usr/X11R6/lib >> /etc/ld.so.conf</b>
622 # <b>ldconfig</b>
623
624 # <b>sync</b>
625 # <b>halt</b>
626 </pre>
627 </ol>
628
629 <p>
630 NOTE: It is also possible to install via ftp instead of using a CDROM image.
631 This is not much less awkward, you still need the simpleroot filesystem
632 image, and you still have to manually add the X11 install sets and set the
633 root password, and so on.
634
635 <p>
636 Once you have completed the installation procedure, the following command
637 will let you boot from the new rootdisk image:
638 <pre>
639 $ <b>gxemul -E dec -e 3max -b -X -M64 -o '-aN' -d obsd_pmax.img -j bsd</b>
640 </pre>
641
642 <p>
643 (Normally, you would be asked about which root device to use (<tt>rz0</tt>),
644 but using <b><tt>-o '-aN'</tt></b> supresses that.)
645
646 <p>
647 When asked for which terminal type to use, when logging in as root,
648 enter <b><tt>rcons</tt></b> if you are using the graphical framebuffer,
649 <b><tt>vt100</tt></b> for text-mode.
650 <br>Use <b><tt>startx</tt></b> to start X windows.
651
652
653
654
655
656
657 <p><br>
658 <a name="openbsdarcinstall"></a>
659 <h3>Installing OpenBSD/arc in GXemul:</h3>
660
661 It is possible to run OpenBSD/arc on an emulated Acer PICA-61 in the
662 emulator.
663
664 <p>
665 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
666 <a href="20041024-openbsd-arc-installed.gif"><img src="20041024-openbsd-arc-installed_small.gif"></a>
667
668 <p>
669 (You should be aware of the fact that OpenBSD for the ARC platform died at
670 release 2.3, so this will not give you an up-to-date OpenBSD system.
671 See
672 <a href="http://www.openbsd.org/arc.html">http://www.openbsd.org/arc.html</a>
673 for more information.)
674
675 <p>
676 To install OpenBSD/arc onto an emulated harddisk image, follow these
677 instructions:
678
679 <p>
680 <ol>
681 <li>Create an empty harddisk image, which will be the root disk
682 that OpenBSD installs itself onto:<pre>
683 $ <b>dd if=/dev/zero of=obsd_arc.img bs=1024 count=1 seek=700000</b>
684
685 </pre>
686 <li>Download the entire arc directory from the ftp server: (approx. 75 MB)<pre>
687 $ <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>
688
689 </pre>
690
691 <li>You now need to make an ISO image of the entire directory you downloaded.
692 I recommend using <tt>mkisofs</tt> for that purpose. If you don't
693 already have <tt>mkisofs</tt> installed on your system, you need
694 to install it in order to do this.<pre>
695 $ <b>mkisofs -o openbsd_arc_2.3.iso ftp.se.openbsd.org/pub/OpenBSD/</b>
696
697 </pre>
698 <li>Start the emulator using this command line:<pre>
699 $ <b>gxemul -X -b -E arc -e pica -d obsd_arc.img -d b:openbsd_arc_2.3.iso -j 2.3/arc/bsd.rd</b>
700
701 </pre>
702 and proceed like you would do if you were installing OpenBSD
703 on a real Acer PICA-61. (Answer 'no' when asked if you want to
704 configure networking, and then install from CD-ROM.)
705 </ol>
706
707 <p>
708 Once the install has finished, the following command should let you
709 boot from the harddisk image:
710 <p>
711 <pre>
712 $ <b>gxemul -X -b -E arc -e pica -d obsd_arc.img ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd</b>
713
714 </pre>
715
716
717
718
719
720 <!--
721
722 <p><br>
723 <a name="openbsdsgiinstall"></a>
724 <h3>Running OpenBSD/sgi in GXemul:</h3>
725
726 <a href="http://www.openbsd.org/sgi.html">OpenBSD/sgi</a>
727 can theoretically run in GXemul on an emulated O2 (SGI-IP32) with root on nfs.
728
729 <p>
730 <font color="#ff0000">NOTE: I haven't succeeded with this yet.</font>
731
732 <p>
733 GXemul does not yet emulate the AHC PCI SCSI controller in the O2, so
734 another emulated machine must be used as the nfs root server, and the
735 emulated O2 machine must boot as a
736 <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=diskless&manpath=OpenBSD+Current&format=html">diskless</a>
737 client. Performing this setup is very time consuming, but necessary.
738
739 <p>
740 <ol>
741 <li><a href="#netbsdinstall">Install NetBSD/pmax 2.0 from CDROM</a>
742 (or install some other similar OS) inside the emulator. This will
743 be the "nfs server" machine. Create a 600 MB <tt>/tftpboot</tt>
744 partition during the installation.
745 <p>
746 <li>Configure the nfs server machine to act as an nfs server.<pre>
747 # <b>echo hostname=server &gt;&gt; /etc/rc.conf</b>
748 # <b>echo ifconfig_le0=\"inet 10.0.0.2\" &gt;&gt; /etc/rc.conf</b>
749 # <b>echo nameserver 10.0.0.254 &gt;&gt; /etc/rc.conf</b>
750 # <b>echo 10.0.0.254 &gt; /etc/mygate</b>
751 # <b>echo /tftpboot -maproot=root 10.0.0.1 &gt; /etc/exports</b>
752 # <b>echo rpcbind=YES &gt;&gt; /etc/rc.conf</b>
753 # <b>echo nfs_server=YES &gt;&gt; /etc/rc.conf</b>
754 # <b>echo mountd=YES &gt;&gt; /etc/rc.conf</b>
755 # <b>echo bootparamd=YES &gt;&gt; /etc/rc.conf</b>
756 # <b>printf "client root=10.0.0.2:/tftpboot \\\n swap=10.0.0.2:/tftpboot/swap\n" &gt; /etc/bootparams</b>
757 # <b>echo 10.0.0.1 client &gt; /etc/hosts</b>
758
759 Reboot. Then download the OpenBSD/sgi distribution: (NOTE: This
760 takes quite some time, even if you have a fast network connection.)
761
762 # <b>cd /tftpboot; ftp -i ftp.se.openbsd.org</b>
763 ...
764 <b>cd pub/OpenBSD/3.7/sgi</b>
765 <b>mget *</b>
766
767 # <b>sh</b>
768 # <b>for a in base* etc* misc*; do tar vzxfp $a; done</b>
769 # <b>dd if=/dev/zero of=swap bs=1024 count=16384</b>
770
771 </pre>
772 <p>
773 <li>Create a configuration file along these lines:<pre>
774 <font color="#2020cf">!!gxemul
775 !
776 ! Configuration file for running OpenBSD/sgi diskless with
777 ! a NetBSD/pmax machine as the nfs server.
778 !
779 ! Change the filenames to suit your setup.</font>
780
781 <b>emul(
782 net()
783
784 machine(
785 name("client machine")
786 type("sgi")
787 subtype("ip32")
788 bintrans(yes)
789 load("openbsd-sgi-20050202-bsd")
790 start_paused(yes)
791 )
792
793 machine(
794 name("nfs server")
795 type("dec")
796 subtype("5000/200")
797 bintrans(yes)
798 disk("nbsd_pmax.img")
799 )
800 )</b>
801
802 </pre>
803 <li>Boot the nfs server and the OpenBSD/sgi client machine like this:<pre>
804 $ <b>gxemul @myconf</b>
805
806 </pre>
807 You might want to log in as root on the server machine, and
808 run <b>tcpdump -lnvv</b> or similar, to see that what the client
809 machine actually does on the network.
810 <p>
811 The OpenBSD box ("client machine") will be paused, so when you
812 are ready to unpause it, press CTRL-C in the main GXemul
813 window and use the <b>focus</b> and <b>pause</b> commands to
814 unpause the main CPU in that machine, and then <b>continue</b>
815 to resume execution.
816 <p>
817 When asked for "root device :", enter <b>mec0</b>.
818 </ol>
819
820 <p>
821 TODO...
822
823 -->
824
825
826
827
828
829 <p><br>
830 <a name="ultrixinstall"></a>
831 <h3>Installing Ultrix/RISC in GXemul:</h3>
832
833 Ultrix 4.x can run in GXemul on an emulated DECstation 5000/200.
834
835 <p>
836 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
837 <a href="20040504-ultrix45-boot1.png"><img src="20040504-ultrix45-boot1_small.gif"></a>
838 &nbsp;&nbsp;&nbsp;
839 <a href="ultrix4.5-20040706.png"><img src="ultrix4.5-20040706_small.gif"></a>
840
841 <p>
842 The following instructions should let you install Ultrix onto a disk image:
843
844 <ol>
845 <li>Create an empty harddisk image, which will be the root disk
846 that Ultrix installs itself onto:<pre>
847 $ <b>dd if=/dev/zero of=rootdisk.img bs=1024 count=1 seek=800000</b>
848
849 </pre>
850 <li>Place your Ultrix installation media in your CDROM drive.
851 (On FreeBSD and similar systems, it is called <tt>/dev/cd0c</tt>.
852 Replace that with the name of your CDROM drive, or the name of a
853 .iso image file.) Then, start the emulator like this:<pre>
854 $ <b>gxemul -X -b -M64 -E dec -e 3max -d rootdisk.img -d bc:/dev/cd0c -j vmunix</b>
855
856 </pre>
857 <li>Once the first stage of the installation is done (restoring the root
858 filesystem), you need to restart the emulator, booting from the
859 new rootdisk, to continue the installation process.
860 This is done by removing the bootflag ('<tt>b</tt>') from the second
861 diskimage argument:<pre>
862 $ <b>gxemul -X -b -M64 -E dec -e 3max -d rootdisk.img -d c:/dev/cd0c -j vmunix</b>
863
864 </pre>
865 </ol>
866
867 <p>
868 When the installation is completed, the following command should start
869 Ultrix from the harddisk image:<pre>
870 $ <b>gxemul -X -b -M64 -E dec -e 3max -j vmunix -d rootdisk.img</b>
871 </pre>
872
873 <p>
874 Ultrix mostly seems to work with dynamic binary translation (enabled by
875 the <b><tt>-b</tt></b> command line option). If you have a very fast
876 host machine, and use bintrans, you might experience a weird timer related
877 bug, which makes it impossible to logon to the system. It is triggered
878 when the emulation goes faster than any real DECstation machine was
879 capable of running. A temporary workaround is to add <b><tt>-I33000000</tt></b>
880 to fix the emulated clock speed to 33 million instructions per emulated
881 second. (When using <tt><b>-CR4400</b></tt>, <b><tt>-I16000000</tt></b>
882 should be used instead.)
883
884 <p>
885 You can experiment with adding <b><tt>-Z2</tt></b> (for emulating a
886 dual-headed workstation) or even <b><tt>-Z3</tt></b> (tripple-headed), and
887 also the <b><tt>-Y2</tt></b> option for scaling down the framebuffer
888 windows by a factor 2x2.
889 There is also a <b><tt>-z</tt></b> option for supplying names of X11
890 displays to use. The following example starts Ultrix on an emulated
891 tripple-headed workstation, on three different displays (<tt>remote1:0.0</tt>,
892 <tt>localhost:0.0</tt>, and <tt>remote2:0.0</tt>), using no scaledown:<pre>
893 $ <b>gxemul -M64 -bN -E dec -e 3max -jgenvmunix -d rootdisk.img \
894 -XZ3 -z remote1:0.0 -z localhost:0.0 -z remote2:0.0</b>
895 </pre>
896
897 <p>
898 The photo below shows a single Ultrix session running tripple-headed in
899 GXemul on an Alpha 21164PC, with displays on a Sun Ultra1 (to the left),
900 on the Alpha itself (in the middle), and on an HP700/RX X-terminal (8-bit
901 color depth, running off the Alpha) to the right.
902
903 <p>
904 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
905 <a href="20041209-ultrix-tripplehead.jpg"><img src="20041209-ultrix-tripplehead_small.jpg"></a>
906
907 <p>
908 The X11 displays may differ in bit depth and endianness. Unfortunately,
909 there is no way yet to set the scaledown factor on a per-window basis, so
910 the scaledown factor affects all windows.
911
912 <p>
913 (If you didn't use <tt><b>-Z<i>n</i></b></tt> during the installation, and
914 compiled your own <tt>/vmunix</tt>, then it will not contain support for
915 multiple graphics cards. To overcome this problem, use the generic kernel,
916 <tt><b>-j genvmunix</b></tt>, whenever you are running the emulator with a
917 different setup than the one you used when Ultrix was installed.)
918
919 <p>
920 A note for the historically interested: OSF/1 for MIPS was quite similar
921 to Ultrix, so that is possible to run as well. If you are unsuccessful
922 in installing Ultrix or OSF/1 directly in the emulator, you can always
923 install it on your real machine onto a real SCSI disk, and then copy the
924 contents of that SCSI disk into a file (using <b><tt>dd(1)</tt></b>), and use
925 that file as a disk image file in the emulator.
926
927
928
929
930
931
932 <p><br>
933 <a name="sprite"></a>
934 <h3>Running Sprite for DECstation in GXemul:</h3>
935
936 Sprite was a research operating system at the University of Berkeley.
937 The Unix Heritage Society (TUHS, <a href="http://www.tuhs.org">www.tuhs.org</a>)
938 has made available a copy of a Sprite harddisk image for a DECstation 5000/200.
939 If you want to find out more about Sprite in general, read
940 <a href="http://www.cs.berkeley.edu/projects/sprite/retrospective.html">
941 http://www.cs.berkeley.edu/projects/sprite/retrospective.html</a>.
942
943 <p>
944 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
945 <a href="20040711-sprite-1.png"><img src="20040711-sprite-1_small.png"></a>
946 &nbsp;&nbsp;&nbsp;
947 <a href="sprite-20040711.png"><img src="sprite-20040711_small.png"></a>
948
949 <p>
950 The following instructions should let you run Sprite in the emulator:
951
952 <p>
953 <ol>
954 <li>Download the Sprite harddisk image using ftp or http:<pre>
955 <a href="http://www.es.embnet.org/Services/ftp/misc/TUHS/other_os/Sprite/">http://www.es.embnet.org/Services/ftp/misc/TUHS/other_os/Sprite</a>/<a href="http://www.es.embnet.org/Services/ftp/misc/TUHS/other_os/Sprite/ds5000.bt">ds5000.bt</a>
956 or <a href="ftp://ftp.es.embnet.org/misc/TUHS/other_os/Sprite/ds5000.bt">ftp://ftp.es.embnet.org/misc/TUHS/other_os/Sprite/ds5000.bt</a>
957 83973120 bytes, MD5 = ec84eeeb20fe77b758370d5e312e4a5e
958
959 </pre>
960 <li>Start the emulator with the following command line:<pre>
961 $ <b>gxemul -X -b -E dec -e 3max -M128 -d ds5000.bt -j vmsprite -o ''</b>
962
963 </pre>
964 </ol>
965
966 <p>
967 The first time you boot up with the disk image, you will be asked a number
968 of questions regarding network settings. If you feel like entering correct
969 values, then you should use the following:
970 <p>
971
972 <pre>
973 Your machine's Ethernet address: 10:20:30:40:50:60
974 Your machine's IP: 10.0.0.1
975 Subnet mask: 0xff000000
976 Gateway's Ethernet address: 60:50:40:30:20:10
977 Gateway's IP: 10.0.0.254
978 </pre>
979
980 <p>
981 Unfortunately, at the end of <a href="http://www.es.embnet.org/Services/ftp/misc/TUHS/other_os/Sprite/boot.txt">
982 http://www.es.embnet.org/Services/ftp/misc/TUHS/other_os/Sprite/boot.txt</a>, the
983 following sad statement can be found:
984 <pre>
985 The bootable Sprite image is meant to be a demonstration of Sprite, not
986 a robust Sprite system. There are several missing things, such as
987 floating point and network support.
988 </pre>
989
990 <p>
991 Once you are logged in as root, running <b>xinit</b> will start the X11
992 environment.
993
994
995
996
997
998 <p><br>
999 <a name="declinux"></a>
1000 <h3>Installing Debian GNU/Linux for DECstation in GXemul:</h3>
1001
1002 <font color="#ef0000">NOTE: This is experimental, and <i>extremely</i>
1003 unstable. During my tests, even pressing the wrong key during the install
1004 (for example the wrong cursor key) can cause a kernel Oops.
1005 I <i>think</i> this has to do with interrupts from the serial controller.
1006 Hopefully using the <tt><b>-U</b></tt> command line option will reduce the
1007 risk for such crashes. (I haven't had time to come up with a clean
1008 solution to this yet; it feels like a buffer overflow in Linux' serial
1009 driver for the 5000/200, but it is also likely that it is a bug in GXemul.)
1010 </font>
1011
1012 <p>
1013 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1014 <a href="20041212-debian_1.png"><img src="20041212-debian_1_small.gif"></a>
1015 &nbsp;&nbsp;&nbsp;
1016 <a href="20041212-debian_2.png"><img src="20041212-debian_2_small.gif"></a>
1017 &nbsp;&nbsp;&nbsp;
1018 <a href="20041213-debian_3.png"><img src="20041213-debian_3_small.gif"></a>
1019 &nbsp;&nbsp;&nbsp;
1020 <a href="20041213-debian_4.png"><img src="20041213-debian_4_small.gif"></a>
1021
1022 <p>
1023 The following steps should let you install Debian GNU/Linux for DECstation
1024 onto a harddisk image:
1025
1026 <p>
1027 <ol>
1028 <li>Create an empty harddisk image, which will be the root disk
1029 that Debian installs itself onto:<pre>
1030 $ <b>dd if=/dev/zero of=debian.img bs=1024 count=1 seek=2000000</b>
1031
1032 </pre>
1033 <li>Download an install kernel:<pre>
1034 <a href="http://http.us.debian.org/debian/dists/testing/main/installer-mipsel/current/images/r3k-kn02/boot.img">http://http.us.debian.org/debian/dists/testing/main/</a>
1035 <a href="http://http.us.debian.org/debian/dists/testing/main/installer-mipsel/current/images/r3k-kn02/boot.img">installer-mipsel/current/images/r3k-kn02/boot.img</a>
1036 or
1037 <a href="http://http.us.debian.org/debian/dists/unstable/main/installer-mipsel/current/images/r3k-kn02/boot.img">http://http.us.debian.org/debian/dists/unstable/main/</a>
1038 <a href="http://http.us.debian.org/debian/dists/unstable/main/installer-mipsel/current/images/r3k-kn02/boot.img">installer-mipsel/current/images/r3k-kn02/boot.img</a>
1039
1040 </pre>
1041 depending on whether you want to install Debian "Testing" or
1042 "Unstable".
1043 <p>
1044 <li>For a text-mode installation, start the emulator like this:<pre>
1045 $ <b>gxemul -E dec -e 3max -b -U -M64 -o 'console=ttyS3' -d debian.img -O boot.img</b>
1046
1047 </pre>
1048 </ol>
1049
1050 <p>
1051 Debian GNU/Linux on DECstation works reasonably fine with dynamic
1052 binary translation, enabled by the <b><tt>-b</tt></b> command line option.
1053 (Without this option, the emulator might be less buggy, but also too slow
1054 to be useful when running Linux as a guest OS.)
1055
1056 <p>
1057 (If you want to, you can try <b>-X</b> instead of <b>-o 'console=ttyS3'</b> on
1058 the command line. This will cause Linux to use the graphical framebuffer.
1059 Unfortunately, Linux does not seem to have a driver for the DZ11 keyboard
1060 controller yet, so you cannot interact with the system. You will see the
1061 penguin in the upper lefthand corner while booting, and nicely rendered Unicode
1062 characters, but that's about it.)
1063
1064 <p>
1065 You need to enter some values during the installation procedure, for example
1066 network settings. The following should work:
1067 <p>
1068 <pre>
1069 DHCP: No, choose "Configure network manually"
1070 IP address: 10.0.0.1
1071 Netmask: 255.0.0.0
1072 Gateway: 10.0.0.254
1073 Name server addresses: 10.0.0.254
1074 </pre>
1075
1076 <p>
1077 <ol start="4">
1078 <li>Once the first phase of the install has finished, the following command
1079 should let you boot into Debian, and perform post-install
1080 configuration:<pre>
1081 $ <b>gxemul -E dec -e 3max -U -b -M64 -o 'console=ttyS3' -d debian.img</b>
1082
1083 </pre>
1084 </ol>
1085
1086 <p>
1087 It seems that there's a problem with getting a login prompt on serial
1088 console (at least when I've done test installs), so when the installation
1089 is finished and you're supposed to get a login prompt, you need to press
1090 CTRL-C and type <b>quit</b>, and then:
1091
1092 <p>
1093 <ol start="5">
1094 <li>Download a normal kernel (<i>not</i> a RAMDISK kernel):<pre>
1095 <a href="http://http.us.debian.org/debian/dists/testing/main/installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02">http://http.us.debian.org/debian/dists/testing/main/</a>
1096 <a href="http://http.us.debian.org/debian/dists/testing/main/installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02">installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02</a>
1097
1098 </pre>
1099 <li>Boot Debian using the following command line:<pre>
1100 $ <b>gxemul -E dec -e 3max -U -b -M64 -o \
1101 'console=ttyS3 root=/dev/sda1 rw init=/bin/sh' \
1102 -d debian.img vmlinux-2.4.27-r3k-kn02</b>
1103
1104 </pre>
1105 You'll enter single-user mode. You need to add a line to
1106 /etc/inittab, to enable logins via serial console.<pre>
1107 sh-2.05b# <b>echo 'T3:23:respawn:/sbin/getty -L ttyS3 9600 vt100' >> /etc/inittab</b>
1108 sh-2.05b# <b>echo 'ttyS3' >> /etc/securetty</b>
1109 sh-2.05b# <b>sync; umount /</b>
1110 </pre>
1111 </ol>
1112
1113 <p>
1114 The system should now be ready for everyday use.
1115
1116 <p>
1117 Use this command to boot from the completely installed disk image:<pre>
1118 $ <b>gxemul -E dec -e 3max -U -b -M64 -o 'console=ttyS3' -d debian.img</b>
1119
1120 </pre>
1121
1122 <p>
1123 [&nbsp;<font color="#ff0000">UPDATE 2005-01-19:</font>&nbsp;
1124 Kaj-Michael Lang noticed that the current CVS-version of
1125 <a href="http://www.linux-mips.org/">linux-mips</a> has
1126 support for keyboards now, on DECstation 5000/200, so it is
1127 possible to run Debian GNU/Linux with framebuffer/keyboard.
1128 (Add <b><tt>-X</tt></b> (or <b><tt>-XY2</tt></b>) and remove the
1129 <b><tt>console=ttyS3</tt></b> option.) He has made a kernel available here:
1130 <a href="http://home.tal.org/~milang/o2/kernels/vmlinux-2.4.29-rc2-r3k-mipsel-decstation">
1131 http://home.tal.org/~milang/o2/kernels/vmlinux-2.4.29-rc2-r3k-mipsel-decstation</a>
1132 It has other problems (ethernet doesn't seem to work, for
1133 example), but at least it doesn't Oops that often.&nbsp;]
1134
1135
1136
1137
1138
1139
1140 <p><br>
1141 <a name="declinuxredhat"></a>
1142 <h3>Running Redhat Linux for DECstation in GXemul:</h3>
1143
1144 <font color="#ff0000">NOTE: This is experimental, and <i>extremely</i>
1145 unstable. Read the note about <b><tt>-U</tt></b> in the section on how to
1146 install Debian.
1147 </font>
1148
1149 <p>
1150 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1151 <a href="20041129-redhat_mips.png"><img src="20041129-redhat_mips_small.png"></a>
1152
1153 <p>
1154 The following steps should let you run Redhat Linux for DECstation in GXemul:
1155
1156 <p>
1157 <ol>
1158 <li>Download a kernel. This is a Debian kernel, but it works fine:<pre>
1159 <a href="http://http.us.debian.org/debian/dists/testing/main/installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02">http://http.us.debian.org/debian/dists/testing/main/</a>
1160 <a href="http://http.us.debian.org/debian/dists/testing/main/installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02">installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02</a>
1161
1162 </pre>
1163 <li>Download a root filesystem tree:<pre>
1164 <a href="ftp://ftp.uni-wuppertal.de/pub/linux/mips/mipsel-linux/root/mipsel-root-20011216.tgz">ftp://ftp.uni-wuppertal.de/pub/linux/mips/</a>
1165 <a href="ftp://ftp.uni-wuppertal.de/pub/linux/mips/mipsel-linux/root/mipsel-root-20011216.tgz">mipsel-linux/root/mipsel-root-20011216.tgz</a>
1166 19486676 bytes, md5 = 5bcb725c90209479cd7ead8ad0c4a414
1167
1168 </pre>
1169 <li>This is the tricky part: Create an ext2 filesystem image called redhat.img using
1170 the filesystem tree you just downloaded. The disk image should have a MS-DOS
1171 partition table (!), and then one or more ext2 partitions.
1172 (Use loopback mount, or similar. This is probably easiest to do on a Linux host.)
1173 However, in order to actually boot the system you need to modify /etc/fstab.
1174 Change<pre>
1175 /dev/root / nfs defaults 1 1
1176 #/dev/sdc1 / ext2 defaults 1 1
1177 none /proc proc defaults 0 0
1178 none /dev/pts devpts mode=0622 0 0
1179
1180 </pre>to<pre>
1181 #/dev/root / nfs defaults 1 1
1182 /dev/sda1 / ext2 defaults 1 1
1183 none /proc proc defaults 0 0
1184 none /dev/pts devpts mode=0622 0 0
1185
1186 </pre>(Note sda1 instead of sdc1.)
1187 <p>
1188 <li>To boot Linux, start the emulator like this:<pre>
1189 $ <b>gxemul -E dec -e 3max -U -b -M128 -o \
1190 "console=ttyS3 root=/dev/sda1 ro" -d redhat.img vmlinux-2.4.27-r3k-kn02</b>
1191
1192 </pre>
1193 </ol>
1194
1195 <p>
1196 If you need to boot into single user mode, try the following:<pre>
1197 $ <b>gxemul -E dec -e 3max -U -b -o "console=ttyS3 root=/dev/sda1 rw init=/bin/sh" \
1198 -d redhat.img vmlinux-2.4.27-r3k-kn02</b>
1199
1200 </pre>
1201
1202 <p>
1203 Redhat Linux on DECstation in R3000 mode should work fine with dynamic binary
1204 translation (enabled by the <b>-b</b> command line option).
1205
1206 <p>
1207 NOTE: You can add <b>-X</b> and remove <b>console=ttyS3</b> from the command
1208 line, if you want to use a graphical framebuffer. Unfortunately, Linux
1209 doesn't have support for keyboards on DECstation 5000/200 yet, so you cannot
1210 actually interact with the sytem. :-(
1211
1212 <p>
1213 [&nbsp;<font color="#ff0000">UPDATE 2005-01-22:</font>&nbsp;
1214 Read the 2005-01-19 update in the Debian section above, and then, if
1215 you do not need ethernet support, try Kaj-Michael Lang's kernel compiled
1216 from <a href="http://www.linux-mips.org/">linux-mips</a>' CVS.
1217 <a href="http://home.tal.org/~milang/o2/patches/vmlinux-2.4.29-rc2-r3k-mipsel-decstation">
1218 http://home.tal.org/~milang/o2/patches/vmlinux-2.4.29-rc2-r3k-mipsel-decstation</a>
1219 It should work with framebuffer/keyboard.&nbsp;]
1220
1221
1222
1223
1224
1225
1226 <p><br>
1227 <a name="mach"></a>
1228 <h3>Running Mach/PMAX in GXemul:</h3>
1229
1230 Read the following link if you want to know more about Mach in general:
1231 <a href="http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html">
1232 http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html</a>
1233
1234 <p>
1235 <font color="#ff0000">NOTE: Mach for DECstation requires some files
1236 (called 'startup' and 'emulator') which I haven't been able to find
1237 on the web. Without these, Mach will not get very far. These
1238 installation instructions are preliminary.
1239 </font>
1240
1241 <p>
1242 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1243 <a href="20041018-mach_pmax.png"><img src="20041018-mach_pmax_small.png"></a>
1244
1245 <p>
1246 The following steps should let you experiment with running Mach
1247 for DECstation in the emulator:
1248
1249 <p>
1250 <ol>
1251 <li>Compile gxemul with cache emulation: (<b>NOTE: --enable-caches</b>)<pre>
1252 $ <b>./configure --enable-caches; make</b>
1253
1254 </pre>
1255 <li>Download the pmax binary distribution for Mach 3.0:<pre>
1256 <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/daveg/Info/Links/Mach/src/release/pmax.tar.Z</a>
1257 7263343 bytes, md5 = f9d76c240a6e169921a1df99ad560cc0
1258
1259 </pre>
1260 <li>Extract the Mach kernel:<pre>
1261 $ <b>tar xfvz pmax.tar.Z pmax_mach/special/mach.boot.MK83.STD+ANY</b>
1262
1263 </pre>
1264 <li>Create an empty disk image:<pre>
1265 $ <b>dd if=/dev/zero of=disk.img bs=1 count=512 seek=400000000</b>
1266
1267 </pre>
1268 <li>Load the contents of pmax.tar.Z onto the disk image. This is
1269 complicated, and should be described in more detail some time.
1270 For now, use your imagination. (For example using OpenBSD/pmax:
1271 <i>disklabel -E rz1; newfs -O /dev/rz1a;
1272 mount /dev/rz1a /mnt; cd /mnt; download pmax.tar.Z using ftp;
1273 tar xzvf pmax.tar.Z; mv pmax_mach/* .; rmdir pmax_mach;
1274 mkdir mach_servers;
1275 cd mach_servers;
1276 cp ../etc/mach_init .;
1277 cp ../tests/test_service startup;
1278 dd if=/dev/zero of=paging_file bs=65536 count=400;
1279 cd /; sync; umount /mnt</i>)
1280 <p>
1281 <li>Start the emulator with the following command:<pre>
1282 $ <b>gxemul -E dec -e 3max -X -d disk.img \
1283 pmax_mach/special/mach.boot.MK83.STD+ANY</b>
1284
1285 </pre>
1286 </ol>
1287
1288
1289
1290
1291
1292
1293
1294
1295 </p>
1296
1297 </body>
1298 </html>

  ViewVC Help
Powered by ViewVC 1.1.26