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

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

revision 2 by dpavlin, Mon Oct 8 16:17:48 2007 UTC revision 24 by dpavlin, Mon Oct 8 16:19:56 2007 UTC
# Line 1  Line 1 
1  <html>  <html><head><title>Gavare's eXperimental Emulator:&nbsp;&nbsp;&nbsp;Configuration files</title>
2  <head><title>GXemul documentation: Configuration files</title>  <meta name="robots" content="noarchive,nofollow,noindex"></head>
3  </head>  <body bgcolor="#f8f8f8" text="#000000" link="#4040f0" vlink="#404040" alink="#ff0000">
4  <body bgcolor="#ffffff" text="#000000" link="#4040f0" vlink="#404040" alink="#ff0000">  <table border=0 width=100% bgcolor="#d0d0d0"><tr>
5  <p>  <td width=100% align=center valign=center><table border=0 width=100%><tr>
6  <table width="100%">  <td align="left" valign=center bgcolor="#d0efff"><font color="#6060e0" size="6">
7    <tr><td width="100%" bgcolor="#808070"><font color="#ffffe0" size="6">  <b>Gavare's eXperimental Emulator:</b></font><br>
8    <b>GXemul documentation: Configuration files</b></font></td></tr>  <font color="#000000" size="6"><b>Configuration files</b>
9  </table>  </font></td></tr></table></td></tr></table><p>
 <p>  
 <!-- The first 10 lines are cut away by the homepage updating script.  -->  
   
10    
11  <!--  <!--
12    
13  $Id: configfiles.html,v 1.4 2005/03/14 19:30:47 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:
# Line 51  SUCH DAMAGE. Line 48  SUCH DAMAGE.
48  <ul>  <ul>
49    <li><a href="#config">Configuration file syntax</a>    <li><a href="#config">Configuration file syntax</a>
50    <li><a href="#minimal">A minimal example</a>    <li><a href="#minimal">A minimal example</a>
51      <li><a href="#multihost">Network across multiple hosts</a>
52  </ul>  </ul>
53    
54    
# Line 67  through an example is good enough: Line 65  through an example is good enough:
65  <p>  <p>
66  <table border="0"><tr><td width="40">&nbsp;</td><td>  <table border="0"><tr><td width="40">&nbsp;</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 a network (ethernet):</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      <b>)</b>          <font color="#2020cf">!  local_port(12345)</font>
81            <font color="#2020cf">!  add_remote("localhost:12346")</font>
82    <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>
# Line 96  through an example is good enough: Line 92  through an example is good enough:
92          <b>type(<font color="#ff003f">"dec"</font>)</b>         <font color="#2020cf">!  This is actually not optional</font>          <b>type(<font color="#ff003f">"dec"</font>)</b>         <font color="#2020cf">!  This is actually not optional</font>
93          <b>subtype(<font color="#ff003f">"5000/200"</font>)</b>          <b>subtype(<font color="#ff003f">"5000/200"</font>)</b>
94    
95          <b>cpu(R3000)</b>      <font color="#2020cf">!  Normally set implicitly to a reasonable</font>          <b>cpu(<font color="#ff003f">"R3000"</font>)</b>    <font color="#2020cf">!  Normally set implicitly to a reasonable</font>
96                          <font color="#2020cf">!  value, depending on <i>type</i> and <i>subtype</i></font>                          <font color="#2020cf">!  value, depending on <i>type</i> and <i>subtype</i></font>
97    
98          <font color="#2020cf">! ncpus(4)</font>          <font color="#2020cf">! ncpus(4)</font>
# Line 142  through an example is good enough: Line 138  through an example is good enough:
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.
# Line 164  through an example is good enough: Line 154  through an example is good enough:
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>
# Line 186  through an example is good enough: Line 174  through an example is good enough:
174  Starting the emulator with a configuration file is as simple as  Starting the emulator with a configuration file is as simple as
175    
176  <pre>  <pre>
177          $ <b>./gxemul @myconfig</b>          $ <b>gxemul @myconfig</b>
178  </pre>  </pre>
179    
180  if <b>myconfig</b> is the name of the configuration file.  if <b>myconfig</b> is the name of the configuration file.
# Line 196  if <b>myconfig</b> is the name of the co Line 184  if <b>myconfig</b> is the name of the co
184    
185    
186    
187    
188    
189  <p><br>  <p><br>
190  <a name="minimal"></a>  <a name="minimal"></a>
191  <h3>A minimal example:</h3>  <h3>A minimal example:</h3>
192    
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>  <p><table border="0"><tr><td width="40">&nbsp;</td><td><pre>
196  <table border="0"><tr><td width="40">&nbsp;</td><td>  <b>machine(</b>
197  <pre>      <b>subtype(<font color="#ff003f">"3max"</font>)</b>
198  <font color="#2020cf">!!gxemul</font>      <b>load(<font color="#ff003f">"netbsd-pmax-INSTALL-2.0"</font>)</b>
   
 <b>emul(</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>  <p>For most machine types, <tt>type</tt> is needed. If only
204  For some machine types, specifying the <b>subtype</b> might not even be  <tt>subtype</tt> is specified, and the name is unique (i.e. there is only
205  necessary. Also, adding a <b>net</b> is quite useful, especially for  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    
210    
211    
212    
213    
214    <p><br>
215    <a name="multihost"></a>
216    <h3>Network across multiple hosts:</h3>
217    
218    <p>It is possible to add multiple <tt>machine</tt> entries into one
219    configuration file. This will cause the emulator to try to run all those
220    machines simultaneously. An alternative (and better) solution for doing
221    this, which gives higher reliability (stability) and performance, is to
222    have one configuration file per emulated machine.
223    
224    <p><table border="0" width="100%"><tr><td width="40">&nbsp;</td>
225    <td><pre>
226    <font color="#2020cf">!  Configuration file for a
227    !  "client" machine, netbooting
228    !  of another machine.</font>
229    
230    <b>net(</b>
231            <b>local_port(15000)</b>
232            <b>add_remote(<font color="#ff003f">"localhost:15001"</font>)</b>
233    <b>)</b>
234    <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">&nbsp;</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>
255            <b>subtype(<font color="#ff003f">"3max"</font>)</b>
256            <b>disk(<font color="#ff003f">"nbsd_pmax.img"</font>)</b>
257    <b>)</b>
258    </pre></td><td width="20">&nbsp;</td></tr></table>
259    
260    <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
262    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
264    on the network are also sent out to all other connected machines (those
265    added with <tt>add_remote()</tt>).
266    
267    <p>As you can see in the example, this is a configuration file for
268    netbooting a NetBSD/sgimips diskless machine, with a NetBSD/pmax machine
269    acting as the nfs server. Note that the nfs server has ports 15000 and
270    15001 reversed!
271    
272    <p>"<tt>localhost</tt>" can be changed to the Internet hostname of a
273    remote machine, to run the simulation across a physical network.
274    
275    <p><font color="#ff0000"><b>NOTE:</b> There is no error checking or
276    security checking of any kind. All UDP packets arriving at the input port
277    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    
282    
283  </p>  </p>
284    

Legend:
Removed from v.2  
changed lines
  Added in v.24

  ViewVC Help
Powered by ViewVC 1.1.26