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

Diff of /trunk/doc/guestoses.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

Legend:
Removed from v.8  
changed lines
  Added in v.34

  ViewVC Help
Powered by ViewVC 1.1.26