/[gxemul]/trunk/doc/experiments.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

Annotation of /trunk/doc/experiments.html

Parent Directory Parent Directory | Revision Log Revision Log


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

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


1 dpavlin 2 <html>
2     <head><title>GXemul documentation: Experimenting with GXemul</title>
3     </head>
4 dpavlin 4 <body bgcolor="#f8f8f8" text="#000000" link="#4040f0" vlink="#404040" alink="#ff0000">
5     <table border=0 width=100% bgcolor="#d0d0d0"><tr>
6     <td width=100% align=center valign=center><table border=0 width=100%><tr>
7     <td align="left" valign=center bgcolor="#d0efff"><font color="#6060e0" size="6">
8     <b>GXemul documentation:</b></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
9     <font color="#000000" size="6"><b>Experimenting with GXemul</b>
10     </font></td></tr></table></td></tr></table><p>
11 dpavlin 2 <!-- The first 10 lines are cut away by the homepage updating script. -->
12    
13    
14     <!--
15    
16 dpavlin 4 $Id: experiments.html,v 1.60 2005/04/16 00:29:45 debug Exp $
17 dpavlin 2
18     Copyright (C) 2003-2005 Anders Gavare. All rights reserved.
19    
20     Redistribution and use in source and binary forms, with or without
21     modification, are permitted provided that the following conditions are met:
22    
23     1. Redistributions of source code must retain the above copyright
24     notice, this list of conditions and the following disclaimer.
25     2. Redistributions in binary form must reproduce the above copyright
26     notice, this list of conditions and the following disclaimer in the
27     documentation and/or other materials provided with the distribution.
28     3. The name of the author may not be used to endorse or promote products
29     derived from this software without specific prior written permission.
30    
31     THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
32     ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
33     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
34     ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
35     FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36     DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37     OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
39     LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
40     OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
41     SUCH DAMAGE.
42    
43     -->
44    
45     <a href="./">Back to the index</a>
46    
47     <p><br>
48     <h2>Experimenting with GXemul</h2>
49    
50     <p>
51     <ul>
52     <li><a href="#hello">Hello world</a>
53     <li><a href="#expdevices">Experimental devices</a>
54     <li><a href="#experiments">Experiments with other kernels and guest OSes</a>
55     </ul>
56    
57    
58    
59    
60    
61    
62     <p><br>
63     <a name="hello"></a>
64     <h3>Hello world:</h3>
65    
66     You might want to use the emulator to develop programs on your own,
67     not just run precompiled kernels such as NetBSD. To get started, I recommend
68     that you do two things:
69    
70     <p>
71     <ul>
72     <li>Build and install a cross-compiler for MIPS.
73     <li>Compile this hello world program, and run it in the emulator.
74     </ul>
75    
76     <p>
77     The emulator has several modes where it doesn't emulate any real machine.
78     It can either run in "bare" mode, where no devices are included by default
79     (just the CPU), or in a "test" mode where some simple devices are
80     emulated.
81    
82     <p>
83     <table border="0"><tr><td width="40">&nbsp;</td><td>
84     <pre>
85     <font color=#f00000>/* Hello world for GXemul */
86    
87     /* Note: The cast to a signed int causes the address to be sign-extended
88     correctly to 0xffffffffb00000xx when compiled in 64-bit mode */
89     </font><font color=#a0a0a0>#define PUTCHAR_ADDRESS ((signed int)0xb0000000)
90     #define HALT_ADDRESS ((signed int)0xb0000010)
91    
92     </font><font color=#c000c0>void </font><font color=#000000><a name="printchar">printchar</a>(</font><font color=#c000c0>char </font><font color=#000000>ch)
93     {
94     *((</font><font color=#c000c0>volatile unsigned char </font><font color=#000000>*) PUTCHAR_ADDRESS) = ch;
95     }
96    
97     </font><font color=#c000c0>void </font><font color=#000000><a name="halt">halt</a>(</font><font color=#c000c0>void</font><font color=#000000>)
98     {
99     *((</font><font color=#c000c0>volatile unsigned char </font><font color=#000000>*) HALT_ADDRESS) = 0;
100     }
101    
102     </font><font color=#c000c0>void </font><font color=#000000><a name="printstr">printstr</a>(</font><font color=#c000c0>char </font><font color=#000000>*s)
103     {
104     </font><font color=#c000c0>while </font><font color=#000000>(*s)
105     printchar(*s++);
106     }
107    
108     </font><font color=#c000c0>void </font><font color=#000000>f(</font><font color=#c000c0>void</font><font color=#000000>)
109     {
110     printstr(</font><font color=#00c000>"Hello world\n"</font><font color=#000000>);
111     halt();
112     }
113     </font></pre>
114     </td></tr></table>
115    
116     This hello world program is available here as well:
117     <a href="hello_mips.c">hello_mips.c</a>
118     <p>
119     I recommend that you build a GCC cross compiler for the
120     <b>mips64-unknown-elf</b> target, and install it. Other compilers could
121     work too, but GCC is good because of its portability. Then try to compile
122     the hello world program:
123     <pre>
124     $ <b>mips64-unknown-elf-gcc -O2 hello_mips.c -mips4 -mabi=64 -c</b>
125     $ <b>mips64-unknown-elf-ld -Ttext 0xa800000000030000 -e f hello_mips.o -o hello_mips --oformat=elf64-bigmips</b>
126     $ <b>file hello_mips</b>
127     hello_mips: ELF 64-bit MSB mips-4 executable, MIPS R3000_BE, version 1 (SYSV), statically linked, not stripped
128     $ <b>gxemul -q -E testmips hello_mips</b>
129     Hello world
130    
131     $ <b>mips64-unknown-elf-gcc -O2 hello_mips.c -c</b>
132     $ <b>mips64-unknown-elf-ld -Ttext 0x80030000 -e f hello_mips.o -o hello_mips</b>
133     $ <b>file hello_mips</b>
134     hello_mips: ELF 32-bit MSB mips-3 executable, MIPS R3000_BE, version 1 (SYSV), statically linked, not stripped
135     $ <b>gxemul -q -E testmips hello_mips</b>
136     Hello world
137     </pre>
138    
139     <p>
140     As you can see above, a GCC configured for mips64-unknown-elf can produce
141     both 64-bit and 32-bit binaries. If you don't want to run the entire
142     Hello World program, but want to single-step through the execution to
143     learn more about how MIPS programs run, then add -V to the command line:
144    
145     <p>
146     <pre>
147     $ <b>gxemul -V -E testmips hello_mips</b>
148     ..
149     GXemul&gt; <b>r</b>
150     cpu0: pc = a800000000030078 <f>
151     cpu0: hi = 0000000000000000 lo = 0000000000000000
152     cpu0: zr = 0000000000000000 at = 0000000000000000
153     cpu0: v0 = 0000000000000000 v1 = 0000000000000000
154     ..
155     cpu0: gp = a8000000000780c0 sp = ffffffffa0007f00
156     cpu0: fp = 0000000000000000 ra = 0000000000000000
157     GXemul&gt; <b>s 15</b>
158     &lt;f&gt;
159     a800000000030078: 67bdfff0 daddiu sp,sp,-16
160     a80000000003007c: 3c04a800 lui a0,0xa800
161     a800000000030080: 3c010003 lui at,0x3
162     a800000000030084: 64840000 daddiu a0,a0,0
163     a800000000030088: 642100b8 daddiu at,at,184
164     a80000000003008c: 0004203c dsll32 a0,a0,0
165     a800000000030090: 0081202d daddu a0,a0,at
166     a800000000030094: ffbf0000 sd ra,0(sp) [0xffffffffa0007ef0, data=0x0000000000000000]
167     a800000000030098: 0c00c00a jal 0xa800000000030028 &lt;printstr&gt;
168     a80000000003009c: 00000000 (d) nop
169     &lt;printstr("Hello world\n",0,0,0,..)&gt;
170     &lt;printstr&gt;
171     a800000000030028: 67bdfff0 daddiu sp,sp,-16
172     a80000000003002c: ffb00000 sd s0,0(sp) [0xffffffffa0007ee0, data=0x0000000000000000]
173     a800000000030030: ffbf0008 sd ra,8(sp) [0xffffffffa0007ee8, data=0xa8000000000300a0]
174     a800000000030034: 90820000 lbu v0,0(a0) [0xa8000000000300b8 = $LC0, data=0x48]
175     a800000000030038: 00021600 sll v0,v0,24
176     GXemul&gt; <b>print v0</b>
177     v0 = 0x0000000048000000
178     GXemul&gt; <b><blink>_</blink></b>
179     </pre>
180    
181     <p>
182     The syntax of the single-step debugger shouldn't be too hard to grasp.
183     Type 's' to single-step one instruction. Just pressing enter after that
184     will repeat the 's' command. Type 'quit' to quit.
185    
186     <p>
187     Hopefully this is enough to get you inspired. :-)
188    
189    
190    
191     <p><br>
192     <h4>Hello World for GXemul's PPC mode</h4>
193    
194     GXemul also has an experimental PowerPC emulation mode.
195     <a href="hello_ppc.c">hello_ppc.c</a> is similar to hello_mips.c, but
196     should be compiled and run as follows:
197     <p>
198     <pre>
199     $ <b>ppc-unknown-elf-gcc -O2 hello_ppc.c -c</b>
200     $ <b>ppc-unknown-elf-ld -e f hello_ppc.o -o hello_ppc</b>
201     $ <b>file hello_ppc</b>
202     hello_ppc: ELF 32-bit MSB executable, PowerPC or cisco 4500,
203     version 1 (SYSV), statically linked, not stripped
204     $ <b>gxemul -q -E testppc hello_ppc</b>
205     Hello world
206     </pre>
207    
208     <p>
209     [&nbsp;2005-02-18: I haven't yet been able to build a GCC for ppc64 (only the
210     binutils toolchain), because the gcc sources seem to include Linux header files
211     that aren't present on my FreeBSD system. 32-bit PPC works ok, though.&nbsp;]
212    
213    
214    
215    
216    
217    
218     <p><br>
219     <a name="expdevices"></a>
220     <h3>Experimental devices:</h3>
221    
222     The "test" MIPS machine has the following experimental devices:
223    
224     <p>
225     <center><table border="0" width="80%">
226    
227     <tr>
228     <td align="left" valign="top" width="200">
229     <b>cons:</b>
230     <p>This is a simple console device, for writing
231     characters to the controlling terminal.
232     <p>Source code:&nbsp;&nbsp;<font color="#0000f0">devices/dev_cons.c</font>
233     <br>Default physical address:&nbsp&nbsp;<font color="#0000f0">0x10000000</font>
234     </td>
235     <td align="left" valign="top" width="25">&nbsp;</td>
236     <td align="left" valign="top">
237     <table border="0">
238     <tr>
239     <td align="left" valign="top"><i><u>Offset:</u></i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
240     <td align="left" valign="top"><i><u>Effect:</u></i></td>
241     </tr>
242     <tr>
243     <td align="left" valign="top">0x0000</td>
244     <td align="left" valign="top">
245     Read: <b>getchar()</b> (non-blocking)<br>
246     Write: <b>putchar(ch)</b></td>
247     </tr>
248     <tr>
249     <td align="left" valign="top">0x0010</td>
250     <td align="left" valign="top">Read or write: <b>halt()</b><br>
251     (Useful for exiting the emulator.)</td>
252     </tr>
253     </table>
254     </td>
255     </tr>
256    
257     <tr height="15">
258     <td height="15">&nbsp;</td>
259     </tr>
260    
261     <tr>
262     <td align="left" valign="top">
263     <b>mp:</b>
264     <p>This device controls the behaviour of CPUs in an emulated
265     multi-processor system.
266     <p>Source code:&nbsp;&nbsp;<font color="#0000f0">devices/dev_mp.c</font>
267     <br>Default physical address:&nbsp&nbsp;<font color="#0000f0">0x11000000</font>
268     </td>
269     <td></td>
270     <td align="left" valign="top">
271     <table border="0">
272     <tr>
273     <td align="left" valign="top"><i><u>Offset:</u></i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
274     <td align="left" valign="top"><i><u>Effect:</u></i></td>
275     </tr>
276     <tr>
277     <td align="left" valign="top">0x0000</td>
278     <td align="left" valign="top">Read: <b>whoami()</b>.
279     Returns the id of the CPU doing the read.</td>
280     </tr>
281     <tr>
282     <td align="left" valign="top">0x0010</td>
283     <td align="left" valign="top">Read: <b>ncpus()</b>.
284     Returns the number of CPUs in the system.</td>
285     </tr>
286     <tr>
287     <td align="left" valign="top">0x0020</td>
288     <td align="left" valign="top">Write: <b>startupcpu(i)</b>.
289     Starts CPU i. It begins execution at the address
290     set by a write to startupaddr (see below).</td>
291     </tr>
292     <tr>
293     <td align="left" valign="top">0x0030</td>
294     <td align="left" valign="top">Write: <b>startupaddr(addr)</b>.
295     Sets the starting address for CPUs.</td>
296     </tr>
297     <tr>
298     <td align="left" valign="top">0x0040</td>
299     <td align="left" valign="top">Write: <b>pause_addr(addr)</b>.
300     Sets the pause address. (TODO: This is not
301     used anymore?)</td>
302     </tr>
303     <tr>
304     <td align="left" valign="top">0x0050</td>
305     <td align="left" valign="top">Write: <b>pause_cpu(i)</b>.
306     Stops all CPUs <i>except</i> CPU i.</td>
307     </tr>
308     <tr>
309     <td align="left" valign="top">0x0060</td>
310     <td align="left" valign="top">Write: <b>unpause_cpu(i)</b>.
311     Unpauses all CPUs <i>except</i> CPU i.</td>
312     </tr>
313     <tr>
314     <td align="left" valign="top">0x0070</td>
315     <td align="left" valign="top">Write: <b>startupstack(addr)</b>.
316     Sets the startup stack address. (CPUs started with
317     startupcpu() above will have their stack pointer
318     set to this value.)</td>
319     </tr>
320     <tr>
321     <td align="left" valign="top">0x0080</td>
322     <td align="left" valign="top">Read: <b>hardware_random()</b>.
323     This produces a "random" number.</td>
324     </tr>
325     <tr>
326     <td align="left" valign="top">0x0090</td>
327     <td align="left" valign="top">Read: <b>memory()</b>.
328     Returns the number of bytes of RAM in the system.</td>
329     </tr>
330     </table>
331     </td>
332     </tr>
333    
334     <tr height="15">
335     <td height="15">&nbsp;</td>
336     </tr>
337    
338     <tr>
339     <td align="left" valign="top">
340     <b>fb:</b>
341     <p>A simple linear framebuffer, for graphics output.
342     640 x 480 pixels, 3 bytes per pixel (red, green, blue, 8 bits each).
343     <p>Source code:&nbsp;&nbsp;<font color="#0000f0">devices/dev_fb.c</font>
344     <br>Default physical address:&nbsp&nbsp;<font color="#0000f0">0x12000000</font>
345     </td>
346     <td></td>
347     <td align="left" valign="top">
348     <table border="0">
349     <tr>
350     <td align="left" valign="top"><i><u>Offset:</u></i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
351     <td align="left" valign="top"><i><u>Effect:</u></i></td>
352     </tr>
353     <tr>
354     <td align="left" valign="top">...</td>
355     <td align="left" valign="top">Read: read pixel values.
356     <br>Write: write pixel values.</td>
357     </tr>
358     </table>
359     </td>
360     </tr>
361    
362     </table></center>
363    
364     <p>
365     While these devices may resemble real-world hardware, they are
366     intentionally made simpler to use. (An exception is the framebuffer;
367     some machines actually have simple linear framebuffers like this.)
368    
369     <p>
370     If the physical address is 0x10000000, then for MIPS that means that it
371     can be accessed at virtual address 0xffffffffb0000000. (Actually it can be
372     accessed at 0xffffffff90000000 too, but devices should usually be accessed
373     in a non-cached manner.)
374    
375     <p>
376     (When using the PPC test machine, "testppc", the addresses are
377     0x10000000, 0x11000000 etc., so no need to add any virtual displacement.)
378    
379     <p>
380     The <b>mp</b> device is agnostic when it comes to
381     word-length. For example, when reading offset 0x0000 of the <b>mp</b>
382     device, you may use any kind of read (an 8-bit read will work just as well
383     as a 64-bit read, although the value will be truncated to 8 bits in the
384     first case).
385    
386     <p>
387     The <b>cons</b> device should be accessed using 8-bit reads and writes.
388     Doing a getchar() (ie reading from offset 0x0000) returns 0x00 if no
389     character was available.
390    
391     <p>
392     On MIPS, the <b>cons</b> device is hardwired to interrupt 2 (the lowest
393     hardware interrupt). Whenever a character is available, the interrupt is
394     asserted. When there are no more available characters, the interrupt is
395     deasserted. (Remember that the interrupt has to be enabled in the status
396     register of the system coprocessor.)
397    
398    
399    
400    
401    
402    
403     <p><br>
404     <a name="experiments"></a>
405     <h3>Experiments with other kernels and guest OSes:</h3>
406    
407     <p>
408     Operating system kernels and other test programs can be downloaded from
409     various places. Here are links to some of the kernels that I usually
410     experiment with.
411    
412     <p>
413     <font color="#ff0000">
414     NOTE: This is <i>not</i> a list of kernels that work in the emulator.
415     It is a list of kernels that I experiment with.
416     </font>
417    
418     <p>
419     For more information about which of these that actually work, read the
420     <a href="intro.html#guestos">section in the Introduction chapter</a>
421     that lists guest operating systems. If a system is not listed there, it
422     probably doesn't work in GXemul.
423    
424     <p>
425     <ul>
426     <li>DECstation:
427     <ul>
428     <li><a href="http://www.netbsd.org/Ports/pmax/">NetBSD/pmax</a>:
429     <br><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>
430     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/pmax/binary/kernel/netbsd-INSTALL.symbols.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/pmax/binary/kernel/netbsd-INSTALL.symbols.gz</a>
431     <br>gunzip the files, and run the emulator with <b>-E dec -e 3max -q -N -XY2</b>
432     for a graphical framebuffer console. Remove <b>-XY2</b> and <b>-N</b> to use serial (stdin/stdout) console.
433     Read <a href="guestoses.html#netbsdinstall">this section</a> about how to install NetBSD/pmax onto a harddisk image.
434     <p>
435     <li><a href="http://www.openbsd.org/pmax.html">OpenBSD/pmax</a>:
436     <br><a href="ftp://ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/bsd">ftp://ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/bsd</a>
437     <br>This is an old OpenBSD kernel in a.out format. Try <b>-E dec -e 3max</b>.
438     <br>Read <a href="guestoses.html#openbsdinstall">this section</a> about how to install OpenBSD/pmax onto a harddisk image.
439     It's a bit more complicated than installing NetBSD/pmax, but might work.
440     <p>
441     <li>Linux for DECstation:
442     <br>Here is a Debian package containing a Linux 2.4.26 kernel for
443     DECstation which supports framebuffer!
444     <br><a href="http://ftp.debian.org/debian/pool/main/k/kernel-patch-2.4.26-mips/kernel-image-2.4.26-r3k-kn02_2.4.26-0.040505.1_mipsel.deb">http://ftp.debian.org/debian/pool/main/k/kernel-patch-2.4.26-mips/
445     <br>kernel-image-2.4.26-r3k-kn02_2.4.26-0.040505.1_mipsel.deb</a>
446     <br>Run the following commands to extract the kernel:<pre>
447     <b>ar x kernel-image-2.4.26-r3k-kn02_2.4.26-0.040505.1_mipsel.deb data.tar.gz</b>
448     <b>tar xfzv data.tar.gz ./boot/vmlinux-2.4.26-r3k-kn02</b>
449     <b>mv boot/vmlinux-* .; rmdir boot</b>
450     </pre>
451     <br>To try with the framebuffer: <b>-E dec -e 3max -X vmlinux-2.4.26-r3k-kn02</b>
452     <br>To try with serial console: <b>-E dec -e 3max -o 'console=ttyS3' vmlinux-2.4.26-r3k-kn02</b>
453     <br>Read <a href="guestoses.html#declinux">this section</a> about how to run a Debian Linux install kernel.
454     <br>Here are some older kernels (these don't support framebuffer, I think):
455     <a href="http://www.xs4all.nl/~vhouten/mipsel/kernels.html">http://www.xs4all.nl/~vhouten/mipsel/kernels.html</a>
456     <br>Note: Make sure you add <b>-CR4400</b> to the command line for
457     R4000 kernels, as Linux doesn't autodetect CPU type at runtime.
458     <p>
459     <li>Sprite:
460     <br>The Unix Heritage Society (TUHS, <a href="http://www.tuhs.org">www.tuhs.org</a>)
461     has preserved a copy of a harddisk image for a DECstation 5000/200:
462     <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>
463     <br>(MD5 (ds5000.bt) = ec84eeeb20fe77b758370d5e312e4a5e)
464     <br>Read <a href="guestoses.html#sprite">this section</a> for more information
465     about running this harddisk image in the emulator.
466     <p>
467     <li><a href="http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html">Mach</a>:
468     <br>Important! Run <b>./configure --caches; make</b>
469     <br>Download <a href="http://lost-contact.mit.edu/afs/athena/user/d/a/daveg/Info/Links/Mach/src/release/">http://lost-contact.mit.edu/afs/athena/user/d/a/daveg/Info/Links/Mach/src/release</a>/<a href="http://lost-contact.mit.edu/afs/athena/user/d/a/daveg/Info/Links/Mach/src/release/pmax.tar.Z">pmax.tar.Z</a>
470     <br>tar xfvz pmax.tar.Z pmax_mach/special/mach.boot.MK83.STD+ANY
471     <br><b>gxemul -E dec -e 3max -X pmax_mach/special/mach.boot.MK83.STD+ANY</b>
472     </ul>
473     </li>
474    
475     <p>
476    
477     <li>SGI:
478     <ul>
479     <li><a href="http://www.netbsd.org/Ports/sgimips/">NetBSD/sgimips</a>:
480     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.gz</a>
481     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.symbols.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.symbols.gz</a>
482     <br>gunzip, and try running with <b>-E sgi -e ip32</b>.
483     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP2x.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP2x.gz</a>
484     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP2x.symbols.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP2x.symbols.gz</a>
485     <br>gunzip, and try running with <b>-E sgi -e ip22</b> (or <b>-e ip24</b> or <b>-e ip20</b>).
486     <p>
487     <li>Linux/SGI:
488     <br>Some kernels are available here: <a href="http://www.linux-mips.org/~glaurung/">http://www.linux-mips.org/~glaurung/</a>
489     <br>Try running with <b>-E sgi -e ip32 -X</b> for a graphical framebuffer, or
490     <b>-E sgi -e ip32 -o 'console=ttyS0'</b> for serial console.
491     <br>Adding -b (bintrans) might work sometimes.
492     <br>(You need to add <b>-CR5000</b> if you're trying to run
493     a kernel compiled for R5000, because Linux
494     doesn't autodetect CPU at runtime.)
495     <br>Also: <a href="http://www.tal.org/~milang/o2/kernels/">http://www.tal.org/~milang/o2/kernels</a>/<a href="http://home.tal.org/~milang/o2/kernels/vmlinux64-2.6.8.1-IP32">vmlinux64-2.6.8.1-IP32</a>
496     <br>Try <b>-E sgi -e ip32 -b -X -CR5000 vmlinux64-2.6.8.1-IP32</b>.
497     <br>And also some IP27 kernels:
498     <a href="http://www.total-knowledge.com/progs/mips/kernels/vmlinux.ip27-20040428">http://www.total-knowledge.com/progs/mips/kernels/vmlinux.ip27-20040428</a>
499     and
500     <a href="http://www.total-knowledge.com/progs/mips/kernels/vmlinux.ip27-20040528.bz2">http://www.total-knowledge.com/progs/mips/kernels/vmlinux.ip27-20040528.bz2</a>
501     (but unfortunately these lack symbols).
502     <br>Try the IP27 kernels with <b>-E sgi -e ip27 -t</b>.
503     <p>
504     <li><a href="http://www.openbsd.org/sgi.html">OpenBSD/sgi</a>:
505     <br>Snapshots can be found at <a href="ftp://ftp.OpenBSD.org/pub/OpenBSD/snapshots/sgi/">ftp://ftp.OpenBSD.org/pub/OpenBSD/snapshots/sgi/</a>.
506     <br>Try <b>gxemul -b -E sgi -e ip32 bsd.rd</b>
507     <p>
508     <li><a href="http://www.freebsd.org/platforms/mips.html">FreeBSD/MIPS</a>:
509     I don't think public binary snapshots are available yet.
510     <p>
511     <li>arcdiag:
512     <br>The NetBSD people have also made available an "arcdiag" for SGI-IP22:
513     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/arch/sgimips/arcdiag.ip22">ftp://ftp.netbsd.org/pub/NetBSD/arch/sgimips/arcdiag.ip22</a>
514     <br>Try running <b>gxemul -E sgi -e ip22 -x arcdiag.ip22</b>.
515     </ul>
516     </li>
517    
518     <p>
519    
520     <li>ARC:
521     <ul>
522     <li><a href="http://www.netbsd.org/Ports/arc/">NetBSD/arc</a>:
523     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/arc/binary/kernel/netbsd-RAMDISK.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/arc/binary/kernel/netbsd-RAMDISK.gz</a>
524     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/arc/binary/kernel/netbsd-RAMDISK.symbols.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/arc/binary/kernel/netbsd-RAMDISK.symbols.gz</a>
525     <br>gunzip, and try with <b>-E arc -e rd94</b>.
526     <br>(You may also try other ARC models.)
527     <br>Read <a href="guestoses.html#netbsdarcinstall">this section</a> about how
528     to install NetBSD/arc onto a harddisk image.
529     <p>
530     <li><a href="http://www.openbsd.org/arc.html">OpenBSD/arc</a>:
531     <br><a href="ftp://ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd.rd.elf">ftp://ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd.rd.elf</a>
532     <br>Try running with <b>-X -E arc -e pica</b> or <b>-X -E arc -e tyne</b>.
533     <br>Read <a href="guestoses.html#openbsdarcinstall">this section</a> about how
534     to install OpenBSD/arc onto a harddisk image.
535     <p>
536     <li>Linux:
537     <br><a href="ftp://ftp.linux-mips.org/pub/linux/mips/mipsel-linux/boot/vmlinux-m700-2.1.131.gz">ftp://ftp.linux-mips.org/pub/linux/mips/mipsel-linux/boot/vmlinux-m700-2.1.131.gz</a>
538     <br>gunzip, and run with <b>-v -J -X -N -E arc -e m700</b> (Olivetti M700)
539     <p>
540     <li>Pandora:
541     <br><a href="ftp://ftp.linux-mips.org/pub/linux/mips/ancient/milo/">ftp://ftp.linux-mips.org/pub/linux/mips/ancient/milo</a>/<a href="ftp://ftp.linux-mips.org/pub/linux/mips/ancient/milo/milo-0.27.1.tar.gz">milo-0.27.1.tar.gz</a>
542     <br>A generic test/diagnostics program for ARC-based machines.
543     <br>Run with <b>-E arc -e r94 milo-0.27.1/pandora</b>
544     <p>
545     <li>arcdiag:
546     <br>Precompiled binary:<a href="ftp://ftp.netbsd.org/pub/NetBSD/arch/arc/arcdiag">ftp://ftp.netbsd.org/pub/NetBSD/arch/arc/arcdiag</a>
547     <br>(alternative: <a href="http://www.sensi.org/~alec/mips/arcdiag">http://www.sensi.org/~alec/mips/arcdiag</a>)
548     <br>A generic test/diagnostics program for ARC-based machines.
549     <br>Run with <b>-E arc -e pica arcdiag</b> (or some other ARC mode).
550     <br>Example arcdiag output (from real machines):
551     <br><a href="http://mail-index.netbsd.org/port-arc/2000/10/18/0001.html">http://mail-index.netbsd.org/port-arc/2000/10/18/0001.html</a> (Olivetti M700-10)
552     <br><a href="http://www.sensi.org/~alec/mips/arcdiag.txt">http://www.sensi.org/~alec/mips/arcdiag.txt</a> (PICA-61)
553     <br><a href="http://mail-index.netbsd.org/port-arc/2000/10/14/0000.html">http://mail-index.netbsd.org/port-arc/2000/10/14/0000.html</a> (Deskstation Tyne)
554     <br><a href="http://mail-index.netbsd.org/port-arc/2004/02/01/0001.html">http://mail-index.netbsd.org/port-arc/2004/02/01/0001.html</a> (NEC RISCserver 4200)
555     <br><a href="http://mirror.aarnet.edu.au/pub/NetBSD/misc/chs/arcdiag.out">http://mirror.aarnet.edu.au/pub/NetBSD/misc/chs/arcdiag.out</a> (NEC-R96)
556     </ul>
557     </li>
558    
559     <p>
560    
561     <li>HPCmips:
562     <ul>
563     <li><a href="http://www.netbsd.org/Ports/hpcmips/">NetBSD/hpcmips</a>:
564     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/installation/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/installation</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/installation/netbsd.gz">netbsd.gz</a>
565     <br>Try <b>gxemul -X -b -E hpc -e mobilepro770 netbsd</b>
566     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/binary/kernel/netbsd-GENERIC.gz</a>
567     <br>Try <b>gxemul -X -b -E hpc -e mobilepro770 netbsd-GENERIC</b>
568     <p>
569     <li>Linux for BE300:
570     <br><a href="http://www.linux4.be/2004/linux4be20040908.zip">http://www.linux4.be/2004/linux4be20040908.zip</a>
571     <br>Try <b>gxemul -X -b -E hpc -e be300 vmlinux</b>
572     <p>
573     <li>Linux for Agenda VR3:
574     <br>Download <a href="http://agenda-snow.sourceforge.net/kernel-old-versions/binary/">http://agenda-snow.sourceforge.net/kernel-old-versions/binary</a>/<a href="http://agenda-snow.sourceforge.net/kernel-old-versions/binary/root1.2.6.kernel-8.00">root1.2.6.kernel-8.00</a>
575     <br>and <a href="http://vr3.uid0.sk/cd/Software/VR3_Distributions/H2O/">http://vr3.uid0.sk/cd/Software/VR3_Distributions/H2O</a>/<a href="http://vr3.uid0.sk/cd/Software/VR3_Distributions/H2O/root1.2.6.cramfs">root1.2.6.cramfs</a>.
576     <br>(or <a href="http://www.ipsec.info/~www/agenda/dream-1-noxip.cramfs">http://www.ipsec.info/~www/agenda/dream-1-noxip.cramfs</a>)
577 dpavlin 4 <br>Try <b>gxemul -b -X -E hpc -e vr3 -x 0xbf200000:root1.2.6.cramfs 0xbf000000:0:0xbf0005e0:root1.2.6.kernel-8.00</b>
578 dpavlin 2 <br>(or replace root1.2.6.cramfs with dream-1-noxip.cramfs)
579     <br>Remove <b>-X</b> to try with serial console instead of X, and
580     remove <b>-b</b> to try without (old) bintrans.
581     <br>Add <b>-o 'init=/bin/sh'</b> to boot into a single-user shell.
582     <br>Add <b>-o 'init=/sbin/restore_defaults'</b> to run
583     a /sbin/restore_defaults (attempt to initialize the flash
584     memory).
585     <p>
586     <li>Linux for MobilePro etc.:
587     <br><a href="http://pc1.peanuts.gr.jp/~kei/Hard-Float/Kernels/">http://pc1.peanuts.gr.jp/~kei/Hard-Float/Kernels/</a>
588     <br>Uncompress the archive to get a kernel, vmlinux-800 for example.
589     <br>Try <b>./gxemul -b -X -o 'root=/dev/hda1' -d r:disk.img -d r:disk.img -Ehpc -e mobilepro800 vmlinux-800</b>
590     <br>where disk.img is an ext2fs filesystem with contents from
591     <a href="http://pc1.peanuts.gr.jp/~kei/Hard-Float/Miniroots/miniroot-20010330.tar.bz2">http://pc1.peanuts.gr.jp/~kei/Hard-Float/Miniroots/miniroot-20010330.tar.bz2</a>
592     <br>(Note the double disk arguments.)
593     <br>Note 2: This doesn't work yet.
594     <p>
595     <li><a href="http://www.disorder.ru/openbsd/be300/">OpenBSD/be300</a>:
596     <br><a href="http://www.disorder.ru/openbsd/be300/bsd.rd">http://www.disorder.ru/openbsd/be300/bsd.rd</a>
597     <br>Try <b>gxemul -X -b -E hpc -e be300 bsd.rd</b>
598     <br>Note: -b might be buggy, so you can try without that if you want to.
599     </ul>
600     </li>
601    
602     <p>
603    
604     <li>Playstation 2:
605     <ul>
606     <li><a href="http://www.netbsd.org/Ports/playstation2/">NetBSD/playstation2</a>:
607     <br>NetBSD/playstation2 snapshot kernels are available here: (RAMDISK and GENERIC)
608     <br><a href="ftp://ftp.NetBSD.org/pub/NetBSD/arch/playstation2/snapshot/20020327/installation/netbsd.gz">ftp://ftp.NetBSD.org/pub/NetBSD/arch/playstation2/snapshot/20020327/installation/netbsd.gz</a>
609     <br><a href="ftp://ftp.NetBSD.org/pub/NetBSD/arch/playstation2/snapshot/20020327/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.NetBSD.org/pub/NetBSD/arch/playstation2/snapshot/20020327/binary/kernel/netbsd-GENERIC.gz</a>
610     <br>Try running with <b>-X -E playstation2</b> (<b>-X</b> is required, for the framebuffer).
611    
612     <p>
613     <li>Linux:
614     <br>A Linux kernel (2.2.21-pre1-xr7) is available from
615     <a href="http://playstation2-linux.com/projects/xrhino-kernel/">http://playstation2-linux.com/projects/xrhino-kernel/</a>
616     <br>Try running with <b>-X -E playstation2</b> (<b>-X</b> is required, for the framebuffer).
617     </ul>
618     </li>
619    
620     </ul>
621    
622     <p>
623     The following work even less than the ones listed above:
624    
625     <p>
626     <ul>
627     <li>Cobalt:
628     <ul>
629     <li><a href="http://www.netbsd.org/Ports/cobalt/">NetBSD/cobalt</a>:
630     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/cobalt/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/cobalt/binary/kernel/netbsd-GENERIC.gz</a>
631     <br>gunzip, and run with <b>-E cobalt</b>
632     <p>
633     <li>Linux:
634     <br><a href="http://people.debian.org/~pm/mips-cobalt/nfsroot/vmlinux_raq-2800.gz">http://people.debian.org/~pm/mips-cobalt/nfsroot/vmlinux_raq-2800.gz</a>
635     <br>gunzip, and run with <b>-E cobalt</b>
636     </ul>
637     </li>
638    
639     <p>
640    
641     <li>Sony NeWS:
642     <ul>
643     <li><a href="http://www.netbsd.org/Ports/newsmips/">NetBSD/newsmips</a>:
644     <br>A NetBSD/newsmips kernel and corresponding symbols are
645     available here:
646     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/newsmips/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/newsmips/binary/kernel/netbsd-INSTALL.gz</a>
647     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/newsmips/binary/kernel/netbsd-INSTALL.symbols.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/newsmips/binary/kernel/netbsd-INSTALL.symbols.gz</a>
648     <br>Try running with <b>-E sonynews</b>.
649     <br>There's also a boot floppy available, but the emulator currently
650     doesn't support booting from it:
651     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6/newsmips/installation/floppy/boot.fs">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6/newsmips/installation/floppy/boot.fs</a>
652     </ul>
653     </li>
654    
655     <p>
656    
657     <li><a href="http://www.meshcube.org/">MeshCube</a>:
658     <ul>
659     <li>Linux:
660     <br>A Linux kernel is available from
661     <a href="http://www.meshcube.org/feed/stable/">http://www.meshcube.org/feed/stable</a>/<a href="http://www.meshcube.org/feed/stable/kernel-image-mtx_2.4.24-3_mipsel.ipk">kernel-image-mtx_2.4.24-3_mipsel.ipk</a>
662     <br>(This is a Debian package, you can use <b>ar</b> and <b>tar</b>
663     to extract kernel.img from it.)
664     <br>Try running with <b>-E meshcube 0x80800000:kernel.img</b>.
665     </ul>
666     </li>
667    
668     <p>
669    
670     <li><a href="http://www.seattlewireless.net/index.cgi/NetgearWG602">NetGear WG602</a>:
671     <ul>
672     <li>Linux:
673     <br>A Linux kernel is available from
674     <a href="ftp://downloads.netgear.com/files/wg602_v1715.zip">ftp://downloads.netgear.com/files/wg602_v1715.zip</a>
675     <br>(Unzip wg602_v1715.zip to get WG602_V1715.img.)
676     <br>Try running with <b>-E netgear 0xbfc80000:0x40:WG602_V1715.img</b>.
677     <br>(It takes some time to decompress the kernel, so be patient.)
678     </ul>
679     </li>
680    
681     <p>
682    
683     <li>Linksys WRT54G:
684     <ul>
685     <li>Linux:
686     <br><a href="http://openwrt.org/">OpenWRT</a> is a Linux
687     distribution for the WRT54G.
688     <br><a href="http://www.batbox.org/wrt54g-linux.html">BatBox</a>
689     is another distribution.
690     <br>Download <a href="http://pjf.dotgeek.org/downloads/openwrt/openwrt-g-code.bin">http://pjf.dotgeek.org/downloads/openwrt/openwrt-g-code.bin</a>
691     (or a similar .bin file).
692     <br>From offset 60 and forward in the bin file, there is a gzip file.
693     <br>$ <b>dd if=openwrt-g-code.bin of=piggy.gz bs=60 iseek=1 oseek=0</b>
694     <br>$ <b>gunzip piggy.gz</b>
695     <br>$ <b>gxemul -E linksys -t 0x80001000:piggy</b>
696     <br>There's also a .bin file available from linksys:
697     <a href="ftp://ftp.linksys.com/pub/network/WRT54G_1.30.7_US_code.bin">ftp://ftp.linksys.com/pub/network/WRT54G_1.30.7_US_code.bin</a>
698     </ul>
699     </li>
700     </ul>
701    
702     <p>
703     The following don't work at all, actually, because the PPC and SPARC
704     modes are just skeletons so far.
705    
706     <p>
707     <ul>
708    
709     <li>Walnut (evbppc):
710     <ul>
711     <li><a href="http://www.netbsd.org/Ports/evbppc/">NetBSD/evbppc</a>:
712     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/evbppc/binary/kernel/netbsd-INSTALL_WALNUT.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/evbppc/binary/kernel/netbsd-INSTALL_WALNUT.gz</a>
713     <br>gunzip, and try the following:
714     <br>$ <b>gxemul -E walnut -v -t netbsd-INSTALL_WALNUT</b>
715     </ul>
716     </li>
717    
718     <p>
719    
720     <li>Artesyn's PM/PPC board (pmppc):
721     <ul>
722     <li><a href="http://www.netbsd.org/Ports/pmppc/">NetBSD/pmppc</a>:
723     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/pmppc/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/pmppc/binary/kernel/netbsd-INSTALL.gz</a>
724     <br>gunzip, and try the following:
725     <br>$ <b>gxemul -E pmppc netbsd-INSTALL</b>
726     </ul>
727     </li>
728    
729     <p>
730    
731     <li>Motorola Sandpoint (sandpoint):
732     <ul>
733     <li><a href="http://www.netbsd.org/Ports/sandpoint/">NetBSD/sandpoint</a>:
734     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sandpoint/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sandpoint/binary/kernel/netbsd-INSTALL.gz</a>
735     <br>gunzip, and try the following:
736     <br>$ <b>gxemul -E sandpoint -v -t netbsd-INSTALL</b>
737     </ul>
738     </li>
739    
740     <p>
741    
742     <li>PReP:
743     <ul>
744     <li><a href="http://www.netbsd.org/Ports/prep/">NetBSD/prep</a>:
745     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/prep/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/prep/binary/kernel/netbsd-INSTALL.gz</a>
746     <br>gunzip, and try the following:
747     <br>$ <b>gxemul -E prep -v -t netbsd-INSTALL</b>
748     <p>
749     <li>Linux:
750     <br><a href="http://jocelyn.mayer.free.fr/qemu-ppc/linux_images/2.4.25-PPC/vmlinux">http://jocelyn.mayer.free.fr/qemu-ppc/linux_images/2.4.25-PPC/vmlinux</a>
751     <br>$ <b>gxemul -E prep -v -t vmlinux</b>
752     </ul>
753     </li>
754    
755     <p>
756    
757     <li>MacPPC:
758     <ul>
759     <li><a href="http://www.netbsd.org/Ports/macppc/">NetBSD/macppc</a>:
760     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/macppc/binary/kernel/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/macppc/binary/kernel</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/macppc/binary/kernel/netbsd-INSTALL.gz">netbsd-INSTALL.gz</a>
761     <br>$ <b>gxemul -E macppc -e g4 -t netbsd-INSTALL</b>
762     <p>
763     <li><a href="http://www.openbsd.org/macppc.html">OpenBSD/macppc</a>:
764     <br><a href="ftp://ftp.openbsd.org/pub/OpenBSD/3.6/macppc/">ftp://ftp.openbsd.org/pub/OpenBSD/3.6/macppc</a>/<a href="ftp://ftp.openbsd.org/pub/OpenBSD/3.6/macppc/bsd.rd">bsd.rd</a>
765     <br>$ <b>gxemul -E macppc -e g4 -t bsd.rd</b>
766     </ul>
767     </li>
768    
769     <p>
770    
771     <li>BeBox:
772     <ul>
773     <li><a href="http://www.netbsd.org/Ports/bebox/">NetBSD/bebox</a>:
774     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/arch/bebox/snapshot/19981119/">ftp://ftp.netbsd.org/pub/NetBSD/arch/bebox/snapshot/19981119</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/arch/bebox/snapshot/19981119/kern.tgz">kern.tgz</a>
775     <br>$ <b>tar tvzf kern.tgz</b>
776     <br>$ <b>gxemul -E bebox netbsd</b>
777     <p>
778     <li><a href="http://www.bebox.nu/os.php?s=os/linux/index">Linux/bebox</a>:
779     <br><a href="http://www.bebox.nu/files/linux/BeBox-scsi-980610.gz">http://www.bebox.nu/files/linux/BeBox-scsi-980610.gz</a>
780     <br>$ <b>gunzip BeBox-scsi-980610.gz</b>
781     <br>$ <b>gxemul -E bebox 0x3100:0x400:BeBox-scsi-980610</b>
782     </ul>
783     </li>
784    
785     <p>
786    
787     <li>SPARC64:
788     <ul>
789     <li><a href="http://www.netbsd.org/Ports/sparc64/">NetBSD/sparc64</a>:
790     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sparc64/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sparc64/binary/kernel/netbsd-INSTALL.gz</a>
791     <br>gunzip, and try the following:
792     <br>$ <b>gxemul -E ultra1 -v -i netbsd-INSTALL</b>
793     <p>
794     <li><a href="http://www.openbsd.org/sparc64.html">OpenBSD/sparc64</a>:
795     <br><a href="ftp://ftp.openbsd.org/pub/OpenBSD/3.6/sparc64/bsd.rd">ftp://ftp.openbsd.org/pub/OpenBSD/3.6/sparc64/bsd.rd</a>
796     <br>rename to bsd.rd.gz, gunzip, and try the following:
797     <br>$ <b>gxemul -E ultra1 -v -i bsd.rd</b>
798     </ul>
799     </li>
800     </ul>
801    
802     <p>
803     The URISC emulation mode is just for fun. (Read
804     <a href="http://en.wikipedia.org/wiki/URISC">http://en.wikipedia.org/wiki/URISC</a>
805     for more info.)
806    
807     <p>
808     <ul>
809    
810     <li>URISC:
811     <ul>
812     <li>I've placed a small test program in the experiments directory.
813     <br>Start like this: <b>gxemul -E testurisc 0:urisc_test.bin</b>
814     <br>or, if you want to single-step:
815     <b>gxemul -V -E testurisc 0:urisc_test.bin</b>
816     <br>2005-03-01: All outputed characters are printed twice. I'll
817     try to make a pseudo-device for outputing to "normal" devices
818     later.
819     </ul>
820     </li>
821    
822     </ul>
823    
824    
825    
826    
827    
828    
829     </p>
830    
831     </body>
832     </html>

  ViewVC Help
Powered by ViewVC 1.1.26