1 |
<html> |
<html><head><title>Gavare's eXperimental Emulator: Configuration files</title> |
2 |
<head><title>GXemul documentation: Configuration files</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> |
<b>Gavare's eXperimental Emulator:</b></font><br> |
8 |
<font color="#000000" size="6"><b>Configuration files</b> |
<font color="#000000" size="6"><b>Configuration files</b> |
9 |
</font></td></tr></table></td></tr></table><p> |
</font></td></tr></table></td></tr></table><p> |
10 |
|
|
11 |
<!-- |
<!-- |
12 |
|
|
13 |
$Id: configfiles.html,v 1.10 2005/06/21 05:38:05 debug Exp $ |
$Id: configfiles.html,v 1.25 2006/06/22 13:22:40 debug Exp $ |
14 |
|
|
15 |
Copyright (C) 2003-2005 Anders Gavare. All rights reserved. |
Copyright (C) 2003-2006 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: |
65 |
<p> |
<p> |
66 |
<table border="0"><tr><td width="40"> </td><td> |
<table border="0"><tr><td width="40"> </td><td> |
67 |
<pre> |
<pre> |
68 |
<font color="#2020cf">!!gxemul <-- configuration files must start like this |
<font color="#2020cf">! This is an example configuration file for GXemul. |
|
! |
|
|
! This is an example configuration file for GXemul. |
|
69 |
! Anything following an exclamation mark (and also the exclamation |
! Anything following an exclamation mark (and also the exclamation |
70 |
! mark itself) is ignored. |
! mark itself) is ignored. |
71 |
! |
! |
72 |
! Each configuration file should contain one emul entry. Almost |
! Almost all settings are optional.</font> |
|
! everything else is optional.</font> |
|
73 |
|
|
74 |
<b>emul(</b> |
<b>name(<font color="#ff003f">"my test emul"</font>)</b> <font color="#2020cf">! Optional name of this emulation</font> |
|
<b>name(<font color="#ff003f">"my test emul"</font>)</b> <font color="#2020cf">! Optional name of this emulation</font> |
|
75 |
|
|
76 |
<font color="#2020cf">! This creates an ethernet network:</font> |
<font color="#2020cf">! This creates an ethernet network:</font> |
77 |
<b>net(</b> |
<b>net(</b> |
78 |
<b>ipv4net(<font color="#ff003f">"10.2.0.0"</font>)</b> <font color="#2020cf">! The default is 10.0.0.0/8, but</font> |
<b>ipv4net(<font color="#ff003f">"10.2.0.0"</font>)</b> <font color="#2020cf">! The default is 10.0.0.0/8, but</font> |
79 |
<b>ipv4len(16)</b> <font color="#2020cf">! it can be overridden like this.</font> |
<b>ipv4len(16)</b> <font color="#2020cf">! it can be overridden like this.</font> |
80 |
<font color="#2020cf">! local_port(12345)</font> |
<font color="#2020cf">! local_port(12345)</font> |
81 |
<font color="#2020cf">! add_remote("127.0.0.1:12346")</font> |
<font color="#2020cf">! add_remote("localhost:12346")</font> |
82 |
<b>)</b> |
<b>)</b> |
83 |
|
|
84 |
<font color="#2020cf">! This creates a machine:</font> |
<font color="#2020cf">! This creates a machine:</font> |
85 |
<b>machine(</b> |
<b>machine(</b> |
86 |
<b>name(<font color="#ff003f">"My test machine"</font>)</b> |
<b>name(<font color="#ff003f">"My test machine"</font>)</b> |
87 |
|
|
88 |
<font color="#2020cf">! serial_nr(123) ! Useful when emulating multiple machines</font> |
<font color="#2020cf">! serial_nr(123) ! Useful when emulating multiple machines</font> |
138 |
<b>use_x11(yes)</b> |
<b>use_x11(yes)</b> |
139 |
<b>x11_scaledown(2)</b> |
<b>x11_scaledown(2)</b> |
140 |
|
|
|
<font color="#2020cf">! bintrans(disable)</font> |
|
|
<font color="#2020cf">! old_bintrans(enable)</font> |
|
|
<font color="#2020cf">! bintrans_size(24)</font> |
|
|
|
|
141 |
<font color="#2020cf">! slow_serial_interrupts_hack_for_linux(yes)</font> |
<font color="#2020cf">! slow_serial_interrupts_hack_for_linux(yes)</font> |
142 |
|
|
|
<font color="#2020cf">! debugger_on_badaddr(yes)</font> |
|
|
|
|
143 |
<font color="#2020cf">{ |
<font color="#2020cf">{ |
144 |
Long comments spanning multiple lines should be surrounded |
Long comments spanning multiple lines should be surrounded |
145 |
with tuborg parentheses. |
with tuborg parentheses. |
154 |
-p pc add a breakpoint (remember to use the '0x' prefix for hex!) |
-p pc add a breakpoint (remember to use the '0x' prefix for hex!) |
155 |
-r register dumps before every instruction |
-r register dumps before every instruction |
156 |
-t show function trace tree |
-t show function trace tree |
|
-y x set max_random_cycles_per_chunk to x (experimental) |
|
157 |
</i></b>--> |
</i></b>--> |
158 |
}</font> |
}</font> |
159 |
|
|
160 |
<b>)</b> |
<b>)</b> |
161 |
|
|
162 |
<font color="#2020cf">! Multiple machine are allowed.</font> |
<font color="#2020cf">! Multiple machine definitions are allowed.</font> |
163 |
<b>machine(</b> |
<b>machine(</b> |
164 |
<b>name(<font color="#ff003f">"another machine"</font>)</b> |
<b>name(<font color="#ff003f">"another machine"</font>)</b> |
165 |
<b>type(<font color="#ff003f">"hpcmips"</font>)</b> |
<b>type(<font color="#ff003f">"hpcmips"</font>)</b> |
166 |
<b>subtype(<font color="#ff003f">"be300"</font>)</b> |
<b>subtype(<font color="#ff003f">"be300"</font>)</b> |
167 |
|
|
168 |
<i>...</i> |
<i>...</i> |
|
<b>)</b> |
|
169 |
<b>)</b> |
<b>)</b> |
170 |
</pre> |
</pre> |
171 |
</td></tr></table> |
</td></tr></table> |
193 |
Here is an example of what a minimal configuration file might look like: |
Here is an example of what a minimal configuration file might look like: |
194 |
|
|
195 |
<p><table border="0"><tr><td width="40"> </td><td><pre> |
<p><table border="0"><tr><td width="40"> </td><td><pre> |
196 |
<font color="#2020cf">!!gxemul</font> |
<b>machine(</b> |
197 |
|
<b>subtype(<font color="#ff003f">"3max"</font>)</b> |
198 |
<b>emul(</b> |
<b>load(<font color="#ff003f">"netbsd-pmax-INSTALL-2.0"</font>)</b> |
|
<b>machine(</b> |
|
|
<b>type(<font color="#ff003f">"dec"</font>)</b> |
|
|
<b>subtype(<font color="#ff003f">"3max"</font>)</b> |
|
|
<b>load(<font color="#ff003f">"netbsd-pmax-INSTALL-2.0"</font>)</b> |
|
|
<b>)</b> |
|
199 |
<b>)</b> |
<b>)</b> |
200 |
</pre> |
</pre> |
201 |
</td></tr></table> |
</td></tr></table> |
202 |
|
|
203 |
<p>For some machine types, specifying the <tt>subtype</tt> might not even |
<p>For most machine types, <tt>type</tt> is needed. If only |
204 |
be necessary. Also, adding a <tt>net</tt> is quite useful, especially for |
<tt>subtype</tt> is specified, and the name is unique (i.e. there is only |
205 |
|
one major type which has such a subtype), then the <tt>type</tt> can be |
206 |
|
omitted. Also, adding a <tt>net</tt> is quite useful, especially for |
207 |
netbooting kernels. |
netbooting kernels. |
208 |
|
|
209 |
|
|
215 |
<a name="multihost"></a> |
<a name="multihost"></a> |
216 |
<h3>Network across multiple hosts:</h3> |
<h3>Network across multiple hosts:</h3> |
217 |
|
|
218 |
<font color="#ff0000">2005-06-21: This a very new feature, so it might not |
<p>It is possible to add multiple <tt>machine</tt> entries into one |
219 |
be totally stable yet.</font> |
configuration file. This will cause the emulator to try to run all those |
220 |
|
machines simultaneously. An alternative (and better) solution for doing |
221 |
<p>It is possible to add multiple <tt>machine</tt> entries into one |
this, which gives higher reliability (stability) and performance, is to |
222 |
configuration file. This will cause the emulator to try to run all those |
have one configuration file per emulated machine. |
223 |
machines simultaneously. An alternative solution for doing this, which |
|
224 |
gives higher reliability (stability) and performance, is to have one |
<p><table border="0" width="100%"><tr><td width="40"> </td> |
225 |
configuration file per machine. |
<td><pre> |
226 |
|
<font color="#2020cf">! Configuration file for a |
227 |
|
! "client" machine, netbooting |
228 |
|
! of another machine.</font> |
229 |
|
|
230 |
<p><table border="0"><tr><td width="40"> </td><td><pre> |
<b>net(</b> |
|
<font color="#2020cf">!!gxemul</font> |
|
|
|
|
|
<b>emul(</b> |
|
|
<b>net(</b> |
|
231 |
<b>local_port(15000)</b> |
<b>local_port(15000)</b> |
232 |
<b>remote_add(<font color="#ff003f">"127.0.0.1:15001"</font>)</b> |
<b>add_remote(<font color="#ff003f">"localhost:15001"</font>)</b> |
233 |
<b>)</b> |
<b>)</b> |
234 |
<b>machine(</b> |
<b>machine(</b> |
235 |
|
<b>name(<font color="#ff003f">"client machine"</font>)</b> |
236 |
|
<b>serial_nr(1)</b> <font color="#2020cf">! 10.0.0.1</font> |
237 |
|
|
238 |
|
<b>type(<font color="#ff003f">"sgi"</font>)</b> |
239 |
|
<b>subtype(<font color="#ff003f">"o2"</font>)</b> |
240 |
|
<b>load(<font color="#ff003f">"netbsd-GENERIC32_IP3x.gz"</font>)</b> |
241 |
|
<b>)</b> |
242 |
|
</pre></td><td width="20"> </td><td><pre> |
243 |
|
<font color="#2020cf">! Configuration file for the |
244 |
|
! "server" machine.</font> |
245 |
|
|
246 |
|
<b>net(</b> |
247 |
|
<b>local_port(15001)</b> |
248 |
|
<b>add_remote(<font color="#ff003f">"localhost:15000"</font>)</b> |
249 |
|
<b>)</b> |
250 |
|
<b>machine(</b> |
251 |
|
<b>name(<font color="#ff003f">"nfs server"</font>)</b> |
252 |
|
<b>serial_nr(2)</b> <font color="#2020cf">! 10.0.0.2</font> |
253 |
|
|
254 |
<b>type(<font color="#ff003f">"dec"</font>)</b> |
<b>type(<font color="#ff003f">"dec"</font>)</b> |
255 |
<b>subtype(<font color="#ff003f">"3max"</font>)</b> |
<b>subtype(<font color="#ff003f">"3max"</font>)</b> |
256 |
<b>load(<font color="#ff003f">"netbsd-pmax-2.0-GENERIC"</font>)</b> |
<b>disk(<font color="#ff003f">"nbsd_pmax.img"</font>)</b> |
|
<b>)</b> |
|
257 |
<b>)</b> |
<b>)</b> |
258 |
</pre> |
</pre></td><td width="20"> </td></tr></table> |
|
</td></tr></table> |
|
259 |
|
|
260 |
<p>This example creates a network using the default settings (10.0.0.0/8), |
<p>This example creates a network using the default settings (10.0.0.0/8), |
261 |
but it also allows the network to be connected to other emulator |
but it also allows the network to be connected to other emulator |
262 |
instances. <tt>local_port(15000)</tt> means that anything coming in to |
instances. <tt>local_port(15000)</tt> means that anything coming in to |
263 |
UDP port 15000 on the host is added to the network. All ethernet packets |
UDP port 15000 on the host is added to the network. All ethernet packets |
264 |
on the network are also sent out to all other connected machines (those |
on the network are also sent out to all other connected machines (those |
265 |
added with <tt>remote_add()</tt>). |
added with <tt>add_remote()</tt>). |
266 |
|
|
267 |
<p>As you can see in the example, this is a configuration file for running |
<p>As you can see in the example, this is a configuration file for |
268 |
NetBSD/pmax 2.0, with a netbooting GENERIC kernel. (Netbooting because |
netbooting a NetBSD/sgimips diskless machine, with a NetBSD/pmax machine |
269 |
there is no disk image.) Another emulator instance (which must have |
acting as the nfs server. Note that the nfs server has ports 15000 and |
270 |
the same kind of <tt>net()</tt>, except that it listens to port 15001) |
15001 reversed! |
271 |
emulates the nfs server. |
|
272 |
|
<p>"<tt>localhost</tt>" can be changed to the Internet hostname of a |
273 |
<p>There is no error checking or security checking of any kind. All UDP |
remote machine, to run the simulation across a physical network. |
274 |
packets arriving at the input port are added to the emulated ethernet. |
|
275 |
<font color="#ff0000">This is not very good, and is the primary |
<p><font color="#ff0000"><b>NOTE:</b> There is no error checking or |
276 |
reason why there needs to be some kind of rewrite before this |
security checking of any kind. All UDP packets arriving at the input port |
277 |
is to be considered stable.</font> |
are added to the emulated ethernet. This is not very good of course; use |
278 |
|
this feature at your own risk.</font> |
279 |
|
|
280 |
|
|
281 |
|
|