/[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 4 - (show annotations)
Mon Oct 8 16:18:00 2007 UTC (16 years, 6 months ago) by dpavlin
File MIME type: text/html
File size: 45938 byte(s)
++ trunk/HISTORY	(local)
$Id: HISTORY,v 1.707 2005/04/27 16:37:33 debug Exp $
20050408	Some minor updates to the wdc. Linux now doesn't complain
		anymore if a disk is non-present.
20050409	Various minor fixes (a bintrans bug, and some other things).
		The wdc seems to work with Playstation2 emulation, but there
		is a _long_ annoying delay when disks are detected.
		Fixing a really important bintrans bug (when devices and RAM
		are mixed within 4KB pages), which was triggered with
		NetBSD/playstation2 kernels.
20050410	Adding a dummy dev_ps2_ether (just so that NetBSD doesn't
		complain as much during bootup).
		Symbols starting with '$' are now ignored.
		Renaming dev_ps2_ohci.c to dev_ohci.c, etc.
20050411	Moving the bintrans-cache-isolation check from cpu_mips.c to
		cpu_mips_coproc.c. (I thought this would give a speedup, but
		it's not noticable.)
		Better playstation2 sbus interrupt code.
		Skip ahead many ticks if the count register is read manually.
		(This increases the speed of delay-loops that simply read
		the count register.)
20050412	Updates to the playstation2 timer/interrupt code.
		Some other minor updates.
20050413	NetBSD/cobalt runs from a disk image :-) including userland;
		updating the documentation on how to install NetBSD/cobalt
		using NetBSD/pmax (!).
		Some minor bintrans updates (no real speed improvement) and
		other minor updates (playstation2 now uses the -o options).
20050414	Adding a dummy x86 (and AMD64) mode.
20050415	Adding some (32-bit and 16-bit) x86 instructions.
		Adding some initial support for non-SCSI, non-IDE floppy
		images. (The x86 mode can boot from these, more or less.)
		Moving the devices/ and include/ directories to src/devices/
		and src/include/, respectively.
20050416	Continuing on the x86 stuff. (Adding pc_bios.c and some simple
		support for software interrupts in 16-bit mode.)
20050417	Ripping out most of the x86 instruction decoding stuff, trying
		to rewrite it in a cleaner way.
		Disabling some of the least working CPU families in the
		configure script (sparc, x86, alpha, hppa), so that they are
		not enabled by default.
20050418	Trying to fix the bug which caused problems when turning on
		and off bintrans interactively, by flushing the bintrans cache
		whenever bintrans is manually (re)enabled.
20050419	Adding the 'lswi' ppc instruction.
		Minor updates to the x86 instruction decoding.
20050420	Renaming x86 register name indices from R_xx to X86_R_xx (this
		makes building on Tru64 nicer).
20050422	Adding a check for duplicate MIPS TLB entries on tlbwr/tlbwi.
20050427	Adding screenshots to guestoses.html.
		Some minor fixes and testing for the next release.

==============  RELEASE 0.3.2  ==============


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

  ViewVC Help
Powered by ViewVC 1.1.26