Provided by: bochs_2.6-5build1_amd64 bug


       bochsrc - Configuration file for Bochs.


       Bochsrc   is  the   configuration   file  that specifies where  Bochs should look for disk
       images,  how the Bochs emulation layer   should   work,   etc.    The   syntax   used  for
       bochsrc   can also be used as command line  arguments for Bochs. The .bochsrc  file should
       be placed either in the  current   directory   before  running   Bochs  or  in  your  home

       Starting  with  Bochs  1.3,  you  can  use  environment variables in the bochsrc file, for

         floppya: 1_44="$IMAGES/bootdisk.img", status=inserted

       Starting with version 2.0, two environment variables have a built-in default  value  which
       is  set  at  compile  time.   $BXSHARE  points to the "share" directory which is typically
       /usr/local/share/bochs on UNIX machines.  See the $(sharedir) variable in the Makefile for
       the  exact  value.  $BXSHARE is used by disk images to locate the directory where the BIOS
       images and keymaps can be found.  If $BXSHARE  is  not  defined,  Bochs  will  supply  the
       default  value.   Also,  $LTDL_LIBRARY_PATH  points to a list of directories (separated by
       colons if more than one) to search in  for  Bochs  plugins.   A  compile-time  default  is
       provided if this variable is not defined by the user.


              This option includes another configuration file. It is possible to put installation
              defaults in a global config file (e.g. location of rom images).

                #include /etc/bochsrc

              Controls the presence of optional device plugins. These plugins are loaded directly
              with  this  option  and some of them install a config option that is only available
              when the plugin device is loaded. The value "1" means to load the  plugin  and  "0"
              will unload it (if loaded before).

              These plugins will be loaded by default (if present): 'biosdev', 'extfpuirq',

              These  plugins  are also supported, but they are usually loaded directly with their
              bochsrc option: 'e1000', 'es1370', 'ne2k', 'pcidev', 'pcipnic', 'sb16',

                plugin_ctrl: unmapped=0, e1000=1 # unload 'unmapped' and load 'e1000'

              The configuration interface is a series of menus or dialog boxes that allows you to
              change  all  the settings that control Bochs's behavior.  Depending on the platform
              there are up to 3 choices of configuration interface: a text  mode  version  called
              "textconfig"  and  two  graphical versions called "win32config" and "wx".  The text
              mode version uses stdin/stdout and is always compiled in, unless Bochs is  compiled
              for  wx  only.  The  choice  "win32config" is only available on win32 and it is the
              default there.  The choice "wx" is only available when you use "--with-wx"  on  the
              configure  command.  If you do not write a config_interface line, Bochs will choose
              a default for you.

              NOTE: if you use the "wx" configuration interface,  you  must  also  use  the  "wx"
              display library.

                config_interface: textconfig

              The  display  library  is the code that displays the Bochs VGA screen.  Bochs has a
              selection of about 10  different  display  library  implementations  for  different
              platforms.    If   you   run   configure   with   multiple  --with-*  options,  the
              display_library command lets you choose which one you want to run with.  If you  do
              not write a display_library line, Bochs will choose a default for you.

              The choices are:
                x           X windows interface, cross platform
                win32       native win32 libraries
                carbon      Carbon library (for MacOS X)
                macintosh   MacOS pre-10
                amigaos     native AmigaOS libraries
                sdl         SDL library, cross platform
                term        text only, uses curses/ncurses library, cross platform
                rfb         provides an interface to AT&T's VNC viewer, cross platform
                wx          wxWidgets library, cross platform
                nogui       no display at all

              NOTE:  if  you  use  the  "wx"  configuration interface, you must also use the "wx"
              display library.

              Specific options: Some display libraries now support specific  options  to  control
              their behaviour. These options are supported by more than one display library:

                "gui_debug"   - use GTK debugger gui (sdl, x)
                "hideIPS"     - disable IPS output in status bar (rfb, sdl, wx, x)
                "nokeyrepeat" - turn off host keyboard repeat (sdl, x)

              See the examples below for other currently supported options.

                display_library: x
                display_library: rfb, options="timeout=60"  # time to wait for client
                display_library: sdl, options="fullscreen"  # startup in fullscreen mode

              The  ROM BIOS controls what the PC does when it first powers on.  Normally, you can
              use a precompiled BIOS in the source  or  binary  distribution  called  BIOS-bochs-
              latest.  The default ROM BIOS is usually loaded starting at address 0xe0000, and it
              is exactly 128k long. The legacy version  of  the  Bochs  BIOS  is  usually  loaded
              starting  at  address  0xf0000,  and  it is exactly 64k long.  You can also use the
              environment variable $BXSHARE to specify the location of the BIOS.   The  usage  of
              external  large  BIOS  images  (up  to 512k) at memory top is now supported, but we
              still recommend to use the BIOS distributed  with  Bochs.   The  start  address  is
              optional, since it can be calculated from image size.

                romimage: file=bios/BIOS-bochs-latest
                romimage: file=$BXSHARE/BIOS-bochs-legacy
                romimage: file=mybios.bin, address=0xfff80000
                romimage: file=mybios.bin

       cpu:   This defines cpu-related parameters inside Bochs:


              Set  the  number  of  processors:cores per processor:threads per core when Bochs is
              compiled for SMP emulation. Bochs currently supports up to 8 processors.  If  Bochs
              is compiled without SMP support, it won't accept values different from 1.


              Maximum  amount  of  instructions  allowed to execute by processor before returning
              control to another cpu. This option exists only in Bochs binary compiled  with  SMP


              Reset  the  CPU  when  triple  fault  occur (highly recommended) rather than PANIC.
              Remember that if you trying to continue after triple fault the simulation  will  be
              completely bogus !


              Determine  whether  to  limit maximum CPUID function to 2. This mode is required to
              workaround WinNT installation and boot issues.


              When this option is enabled MWAIT will not put the CPU into a  sleep  state.   This
              option exists only if Bochs compiled with --enable-monitor-mwait.


              Define path to user CPU Model Specific Registers (MSRs) specification.  See example
              in msrs.def.


              Ignore MSR references that Bochs does  not  understand;  print  a  warning  message
              instead of generating #GP exception. This option is enabled by default but will not
              be avaiable if configurable MSRs are enabled.


              Emulated Instructions Per Second.  This is the number of IPS that Bochs is  capable
              of  running on your machine.  You can recompile Bochs with --enable-show-ips option
              enabled, to find your workstation's capability.  Measured IPS value  will  then  be
              logged into your log file or status bar (if supported by the gui).

              IPS  is  used  to  calibrate   many   time-dependent  events    within   the  bochs
              simulation.  For example, changing IPS affects the frequency of  VGA  updates,  the
              duration  of  time  before  a  key  starts  to autorepeat,  and the measurement  of
              BogoMips and other benchmarks.

              Example Specifications[1]

              Bochs   Machine/Compiler                           Mips
              2.4.6   3.4Ghz Core i7 2600 w/ Win7x64/g++ 4.5.2   85-95 Mips
              2.3.7   3.2Ghz Core 2 Q9770 w/ WinXP/g++ 3.4       50-55 Mips
              2.3.7   2.6Ghz Core 2 Duo w/ WinXP/g++ 3.4         38-43 Mips
              2.2.6   2.6Ghz Core 2 Duo w/ WinXP/g++ 3.4         21-25 Mips
              2.2.6   2.1Ghz Athlon XP w/ Linux 2.6/g++ 3.4      12-15 Mips

               [1]  IPS measurements depend on OS and compiler  configuration   in  addition   to
              processor clock speed.

                cpu: count=2, ips=10000000, msrs="msrs.def"

       cpuid: This defines features and functionality supported by Bochs emulated CPU:


              Select MMX instruction set support.  This option exists only if Bochs compiled with
              BX_CPU_LEVEL >= 5.


              Select APIC configuration (LEGACY/XAPIC/XAPIC_EXT/X2APIC).  This option exists only
              if Bochs compiled with BX_CPU_LEVEL >= 5.


              Select  SYSENTER/SYSEXIT instruction set support.  This option exists only if Bochs
              compiled with BX_CPU_LEVEL >= 6.


              Select SSE instruction set support.  Any of  NONE/SSE/SSE2/SSE3/SSSE3/SSE4_1/SSE4_2
              could  be selected.  This option exists only if Bochs compiled with BX_CPU_LEVEL >=


              Select AMD SSE4A instructions support.  This option exists only if  Bochs  compiled
              with BX_CPU_LEVEL >= 6.


              Select AES instruction set support.  This option exists only if Bochs compiled with
              BX_CPU_LEVEL >= 6.


              Select MOVBE Intel(R) Atom instruction support.  This option exists only  if  Bochs
              compiled with BX_CPU_LEVEL >= 6.


              Select  ADCX/ADOX  instructions support.  This option exists only if Bochs compiled
              with BX_CPU_LEVEL >= 6.


              Select XSAVE extensions support.  This option exists only if  Bochs  compiled  with
              BX_CPU_LEVEL >= 6.


              Select  XSAVEOPT  instruction  support.   This option exists only if Bochs compiled
              with BX_CPU_LEVEL >= 6.


              Select AVX/AVX2 instruction set support.  This option exists only if Bochs compiled
              with --enable-avx option.


              Select  AVX float16 convert instructions support.  This option exists only if Bochs
              compiled with --enable-avx option.


              Select AVX fused multiply add (FMA) instructions support.  This option exists  only
              if Bochs compiled with --enable-avx option.


              Select  BMI1/BMI2  instructions support.  This option exists only if Bochs compiled
              with --enable-avx option.


              Select AMD four operand FMA instructions support.  This option exists only if Bochs
              compiled with --enable-avx option.


              Select  AMD  XOP  instructions  support.  This option exists only if Bochs compiled
              with --enable-avx option.


              Select AMD TBM instructions support.  This option exists  only  if  Bochs  compiled
              with --enable-avx option.


              Enable  x85-64  and  long  mode support.  This option exists only if Bochs compiled
              with x86-64 support.


              Enable 1G page size support in  long  mode.   This  option  exists  only  if  Bochs
              compiled with x86-64 support.


              Enable Process-Context Identifiers (PCID) support in long mode.  This option exists
              only if Bochs compiled with x86-64 support.


              Enable Supervisor Mode Execution Protection (SMEP)  support.   This  option  exists
              only if Bochs compiled with BX_CPU_LEVEL >= 6.


              Select  MONITOR/MWAIT  instructions  support.   This  option  exists  only if Bochs
              compiled with --enable-monitor-mwait.


              Select VMX extensions emulation support.  This option exists only if Bochs compiled
              with --enable-vmx option.


              Select  AMD SVM (Secure Virtual Machine) extensions emulation support.  This option
              exists only if Bochs compiled with --enable-svm option.


              Set family information returned  by  CPUID.  Default  family  value  determined  by
              configure option --enable-cpu-level.


              Set model information returned by CPUID. Default model value is 3.


              Set stepping information returned by CPUID. Default stepping value is 3.


              Set  the  CPUID  vendor  string  returned  by CPUID(0x0).  This should be a twelve-
              character ASCII string.


              Set the CPUID vendor string returned  by  CPUID(0x80000002  ..  0x80000004).   This
              should be at most a forty-eight-character ASCII string.

                cpuid: mmx=1, sep=1, sse=sse4_2, xapic=1, aes=1, movbe=1, xsave=1

       megs:  Set the number of Megabytes of physical memory you want to emulate.  The default is
              32MB, most OS's won't need more than that.  The maximum amount of memory  supported
              is 2048Mb.

                megs: 32

       optromimage1: , optromimage2: , optromimage3: or optromimage4:
              You  may  now  load  up  to 4 optional ROM images. Be sure to use a read-only area,
              typically between C8000 and EFFFF. These optional ROM images should  not  overwrite
              the  rombios  (located  at F0000-FFFFF) and the videobios (located at C0000-C7FFF).
              Those ROM images will be  initialized  by  the  bios  if  they  contain  the  right
              signature  (0x55AA).   It  can  also  be  a convenient way to upload some arbitrary
              code/data in the simulation, that can be retrieved by the boot loader

                optromimage1: file=optionalrom.bin, address=0xd0000

              You also need to load a VGA ROM BIOS into 0xC0000.

                vgaromimage: file=bios/VGABIOS-elpin-2.40
                vgaromimage: file=bios/VGABIOS-lgpl-latest
                vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest

       vga:   This defines parameters related to the VGA display.


              Here you can specify the display extension to be used. With the  value  'none'  you
              can  use standard VGA with no extension. Other supported values are 'vbe' for Bochs
              VBE and 'cirrus' for Cirrus SVGA support.


              The VGA update frequency is based on the emulated clock and the default value is 5.
              Keep  in  mind that you must tweak the 'cpu: ips=N' directive to be as close to the
              number of emulated instructions-per-second your workstation can do, for this to  be
              accurate.  If  the  realtime  sync is enabled with the 'clock' option, the value is
              based on the real time.  This parameter can be changed at runtime.

                vga: extension=cirrus, update_freq=10
                vga: extension=vbe

       floppya: or floppyb:

              Point  this to  the pathname of a floppy image file or   device.   Floppya  is  the
              first  drive, and  floppyb is the  second drive.  If  you're booting from a floppy,
              floppya should point to a bootable disk.

              You can set the initial status of the media to 'ejected' or 'inserted'. Usually you
              will want to use 'inserted'.

              The  parameter  'type'  can  be  used  to enable the floppy drive without media and
              status specified. Usually the drive type is set up based on the media type.

              The optional parameter 'write_protected' can be used to  control  the  media  write
              protect switch. By default it is turned off.


              2.88M 3.5" media:
                floppya: 2_88=path, status=ejected

              1.44M 3.5" media (write protected):
                floppya: 1_44=path, status=inserted, write_protected=1

              1.2M  5.25" media:
                floppyb: 1_2=path, status=ejected

              720K  3.5" media:
                floppya: 720k=path, status=inserted

              360K  5.25" media:
                floppya: 360k=path, status=inserted

              Autodetect floppy media type:
                floppya: image=path, status=inserted

              Use directory as 1.44M VFAT media:
                floppya: 1_44=vvfat:path, status=inserted

              1.44M 3.5" floppy drive, no media:
                floppya: type=1_44

       ata0: , ata1: , ata2: or ata3:

              These  options  enables  up  to  4  ata  channels. For each channel the two base io
              addresses and the irq must be specified.  ata0 and ata1  are  enabled  by  default,
              with the values shown below.

                 ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
                 ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
                 ata2: enabled=1, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
                 ata3: enabled=1, ioaddr1=0x168, ioaddr2=0x360, irq=9

       ata[0-3]-master: or ata[0-3]-slave:

              This defines the type and characteristics of all attached ata devices:
                 type=       type of attached device [disk|cdrom]
                 path=       path of the image
                 mode=                                    image                              mode
              only valid for disks
                 cylinders=  only valid for disks
                 heads=      only valid for disks
                 spt=        only valid for disks
                 status=     only valid for cdroms [inserted|ejected]
                 biosdetect= type of biosdetection [none|auto], only for disks on ata0 [cmos]
                 translation=type    of    translation    of    the    bios,   only   for   disks
                 model=      string returned by identify device command
                 journal=    optional filename of the redolog for undoable,  volatile  and  vvfat

              Point  this  at a hard disk image file, cdrom iso file, or a physical cdrom device.
              To create a hard disk image, try running bximage.  It will help you choose the size
              and then suggest a line that works with it.

              In  UNIX  it  is  possible  to  use a raw device as a Bochs hard disk, but WE DON'T
              RECOMMEND IT.

              The path is mandatory for hard disks. Disk geometry autodetection works with images
              created by bximage if CHS is set to 0/0/0 (cylinders are calculated using  heads=16
              and spt=63). For other hard disk images and modes the cylinders, heads, and spt are
              mandatory.  In  all  cases  the  disk  size reported from the image must be exactly

              The mode option defines how the disk image is handled. Disks can be defined as:
                - flat : one file flat layout
                - concat : multiple files layout
                - external : developer's specific, through a C++ class
                - dll : developer's specific, through a DLL
                - sparse : stackable, commitable, rollbackable
                - vmware3 : vmware3 disk support
                - vmware4 : vmware4 disk support (aka VMDK)
                - undoable : flat file with commitable redolog
                - growing : growing file
                - volatile : flat file with volatile redolog
                - vpc : fixed / dynamic size VirtualPC image
                - vvfat: local directory appears as read-only VFAT disk (with volatile redolog)

              The disk translation scheme (implemented in legacy int13 bios functions,  and  used
              by older operating systems like MS-DOS), can be defined as:
                - none : no translation, for disks up to 528MB (1032192 sectors)
                - large : a standard bitshift algorithm, for disks up to 4.2GB (8257536 sectors)
                -  rechs : a revised bitshift algorithm, using a 15 heads fake physical geometry,
              for disks up to 7.9GB (15482880 sectors). (don't use  this  unless  you  understand
              what you're doing)
                -  lba  :  a  standard  lba-assisted  algorithm,  for disks up to 8.4GB (16450560
                - auto : autoselection of best translation  scheme.  (it  should  be  changed  if
              system does not boot)

              Default values are:
                 mode=flat, biosdetect=auto, translation=auto, model="Generic 1234"

              The biosdetect option has currently no effect on the bios

                 ata0-master: type=disk, path=10M.sample, cylinders=306, heads=4, spt=17
                 ata0-slave:  type=disk, path=20M.sample, cylinders=615, heads=4, spt=17
                 ata1-master: type=disk, path=30M.sample, cylinders=615, heads=6, spt=17
                 ata1-slave:  type=disk, path=46M.sample, cylinders=940, heads=6, spt=17
                 ata2-master: type=disk, path=62M.sample, cylinders=940, heads=8, spt=17
                 ata2-slave:  type=disk, path=112M.sample, cylinders=900, heads=15, spt=17
                 ata3-master: type=disk, path=483M.sample, cylinders=1024, heads=15, spt=63
                 ata3-slave:  type=cdrom, path=iso.sample, status=inserted

       com1: , com2: , com3: or com4:
              This  defines  a  serial  port  (UART type 16550A). In the 'term' you can specify a
              device to use as com1. This can be a real serial line, or a  pty.   To  use  a  pty
              (under  X/Unix), create two windows (xterms, usually).  One of them will run bochs,
              and the other will act as com1. Find out the tty the com1 window  using  the  `tty'
              command,  and use that as the `dev' parameter.  Then do `sleep 1000000' in the com1
              window to keep the shell from messing with things,  and  run  bochs  in  the  other
              window.  Serial I/O to com1 (port 0x3f8) will all go to the other window.

              Other serial modes are 'null' (no input/output), 'file' (output to a file specified
              as the 'dev' parameter), 'raw' (use the real serial port - under  construction  for
              win32)  and  'mouse'  (standard  serial  mouse  -  requires  mouse  option  setting
              'type=serial' or 'type=serial_wheel')

                com1: enabled=1, mode=term, dev=/dev/ttyp7
                com2: enabled=1, mode=file, dev=serial.out
                com1: enabled=1, mode=mouse

       parport1: or parport2:
              This defines a parallel (printer) port. When  turned  on  and  an  output  file  is
              defined the emulated printer port sends characters printed by the guest OS into the
              output file. On some platforms a device filename can be used to send  the  data  to
              the real parallel port (e.g. "/dev/lp0" on Linux).

                parport1: enabled=1, file=parport.out
                parport2: enabled=1, file="/dev/lp0"
                parport1: enabled=0

       boot:  This  defines the boot sequence. Now you can specify up to 3 boot drives, which can
              be 'floppy', 'disk', 'cdrom' or 'network' (boot ROM).  Legacy 'a' and 'c' are  also

                boot: cdrom, floppy, disk

              This  disables  the 0xaa55 signature check on boot floppies The check is enabled by

                floppy_bootsig_check: disabled=1

       log:   Give the path of the log file you'd like Bochs  debug  and  misc.  verbiage  to  be
              written to.   If you really don't want it, make it /dev/null.

                log: bochs.out
                log: /dev/tty               (unix only)
                log: /dev/null              (unix only)

              This  handles  the  format  of  the string prepended to each log line : You may use
              those special tokens :
                %t : 11 decimal digits timer tick
                %i : 8 hexadecimal digits of cpu0 current eip
                %e : 1 character event type ('i'nfo, 'd'ebug, 'p'anic, 'e'rror)
                %d : 5 characters string of the device, between brackets

              Default : %t%e%d

                logprefix: %t-%e-@%i-%d
                logprefix: %i%e%d

       panic: If Bochs reaches  a condition  where it cannot emulate correctly, it does a  panic.
              This   can  be  a  configuration  problem   (like  a misspelled bochsrc line) or an
              emulation problem (like an  unsupported  video  mode).  The   "panic"   setting  in
              bochsrc   tells   Bochs   how  to  respond to a panic.  You  can  set this to fatal
              (terminate the session),  report   (print information  to the console),  or  ignore
              (do nothing).

              The  safest  setting  is  action=fatal.  If you are getting  panics,  you  can  try
              action=report instead.  If you allow Bochs to continue  after  a  panic,  don't  be
              surprised  if you get strange behavior or crashes if a panic occurs.  Please report
              panic  messages  unless  it is just  a configuration  problem   like   "could   not
              find hard drive image."

                panic: action=fatal

       error: Bochs  produces  an  error message when it  finds a condition that really shouldn't
              happen,  but doesn't endanger the simulation. An example of an error  might be   if
              the  emulated  software produces an illegal disk command.

              The "error" setting tells Bochs how to respond to an error condition.   You can set
              this  to  fatal   (terminate  the  session),   report  (print  information  to  the
              console),  or  ignore  (do nothing).

                error: action=report

       info:  This  setting  tells  Bochs  what  to  do  when  an event  occurs   that  generates
              informational messages.  You can  set this  to  fatal   (that  would  not  be  very
              smart  though),  report  (print  information  to  the   console),   or  ignore  (do
              nothing).   For  general  usage,  the "report" option is probably a good choice.

                info: action=report

       debug: This  setting  tells  Bochs what  to  do   with  messages  intended  to  assist  in
              debugging.   You  can  set   this   to   fatal   (but you shouldn't), report (print
              information to the  console), or ignore (do nothing).  You  should  generally   set
              this  to  ignore,  unless  you are  trying  to diagnose a particular problem.

              NOTE: When  action=report,   Bochs   may  spit  out thousands of debug messages per
              second, which can impact performance and fill up your disk.

                debug: action=ignore

              Give the path of the log file you'd like Bochs to  log  debugger  output.   If  you
              really don't want it, make it '/dev/null', or '-'.

                log: debugger.out
                log: /dev/null              (unix only)
                log: -

       sb16:  This   defines  the  SB16  sound  emulation.  It can have several of the  following
              properties. All properties are in this format:
                sb16: property=value

              PROPERTIES FOR sb16:


              The  filename is where the midi data is  sent.  This can  be  a device  or  just  a
              file if  you want to record the midi data.


               0 = No data should be output.
               1 = output to device (system dependent - midi
               denotes the device driver).
               2 = SMF file output, including headers.
               3 = Output  the midi  data stream to the file
               (no  midi headers  and  no delta  times, just
               command and data bytes).


              This  is the device/file where wave  output is stored.


               0 = no data
               1 = output to device (system dependent - wave
               denotes the device driver).
               2 = VOC file output, including headers.
               3 = Output the raw wave stream to the file.


              The file to write the sb16 emulator messages to.


               0 = No log.
               1 = Resource changes, midi program and bank changes.
               2 = Severe errors.
               3 = All errors.
               4 = All errors plus all port accesses.
               5 = All  errors and port  accesses plus a lot
               of extra information.

              It is possible to change the loglevel at runtime.


              Microseconds  per  second  for  a DMA cycle.  Make it smaller to fix non-continuous
              sound.  750000 is  usually  a  good value.   This   needs   a  reasonably   correct
              setting   for  the  IPS  parameter of the CPU option.  It is possible to adjust the
              dmatimer at runtime.

              Example for output to OSS:
                sb16: midimode=1, midi=/dev/midi00,
                wavemode=1, wave=/dev/dsp, loglevel=2,
                log=sb16.log, dmatimer=600000

              Example for output to ALSA:
                sb16: midimode=1, midi=alsa:128:0,
                wavemode=1, wave=alsa,
                log=sb16.log, dmatimer=600000

              Example for output using SDL:
                sb16: wavemode=1, wave=sdl

              NOTE: The  examples are wrapped onto three  lines for formatting  reasons, but   it
              should all be  on one line in the actual bochsrc file.

              This  defines  the  ES1370  sound  emulation.  The parameter 'enabled' controls the
              presence of the device. The 'wavedev' parameter is similar to the 'wave'  parameter
              of  the  SB16  soundcard.  The  emulation  supports  recording and playback (except
              DAC1+DAC2 output at the same time).

                es1370: enabled=1, wavedev=""    # win32
                es1370: enabled=1, wavedev=alsa  # Linux with ALSA
                es1370: enabled=1, wavedev=sdl   # use SDL audio (if present) for output

              This defines parameters related to the emulated keyboard:


              Type  of  keyboard  return  by  a  "identify  keyboard"  command  to  the  keyboard
              controller.  It  must be one of "xt", "at" or "mf".  Defaults to "mf". It should be
              ok for almost everybody. A known exception is french macs, that do have a "at"-like


              Approximate time in microseconds that it takes one character to be transferred from
              the keyboard to controller over the serial path.


              Approximate time in microseconds  between  attempts  to  paste  characters  to  the
              keyboard  controller.  This  leaves  time for the guest os to deal with the flow of
              characters.  The ideal setting depends  on  how  your  operating  system  processes
              characters.   The  default  of 100000 usec (.1 seconds) was chosen because it works
              consistently in Windows.

              If your OS is losing characters during a paste, increase the paste delay  until  it
              stops losing characters.


              This enables a remap of a physical localized keyboard to a virtualized us keyboard,
              as the PC architecture expects.

                keyboard: type=mf, serial_delay=200, paste_delay=100000
                keyboard: keymap=gui/keymaps/

       clock: This defines the parameters of the clock inside Bochs.


              This defines the method how to synchronize the Bochs internal time  with  realtime.
              With  the  value  'none'  the  Bochs  time relies on the IPS value and no host time
              synchronization is used. The 'slowdown' method sacrifices performance  to  preserve
              reproducibility  while  allowing  host  time  correlation.  The  'realtime'  method
              sacrifices reproducibility to preserve performance and host-time  correlation.   It
              is possible to enable both synchronization methods.


              Specifies  the  start  (boot)  time  of  the  virtual  machine. Use a time value as
              returned by the time(2) system call. If no time0 value is set or if time0 equal  to
              1  (special  case) or if time0 equal 'local', the simulation will be started at the
              current local host time.  If time0 equal to 2 (special  case)  or  if  time0  equal
              'utc', the simulation will be started at the current utc time.

                clock: sync=[none|slowdown|realtime|both], time0=[timeValue|local|utc]

              Default value are sync=none, time0=local

                clock: sync=realtime, time0=938581955   # Wed Sep 29 07:12:35 1999

       mouse: This  defines  parameters  for  the  emulated mouse type, the initial status of the
              mouse capture and the runtime method to toggle it.


              With the mouse type option you can select  the  type  of  mouse  to  emulate.   The
              default  value  is  'ps2'.  The  other  choices  are 'imps2' (wheel mouse on PS/2),
              'serial',  'serial_wheel'  and  'serial_msys'  (one  com  port   requires   setting
              'mode=mouse'). To connect a mouse to an USB port, see the 'usb_uhci',


              The  Bochs  gui creates mouse "events" unless the 'enabled' option is set to 0. The
              hardware emulation itself is not disabled by this.  Unless you  have  a  particular
              reason  for enabling the mouse by default, it is recommended that you leave it off.
              You can also toggle the mouse usage at runtime (RFB, SDL, Win32, wxWidgets and  X11
              - see below).


              The  default method to toggle the mouse capture at runtime is to press the CTRL key
              and the middle mouse button ('ctrl+mbutton'). This  option  allows  to  change  the
              method to 'ctrl+f10' (like DOSBox), 'ctrl+alt' (like QEMU) or 'f12' (replaces win32
              'legacyF12' option).

                mouse: enabled=1
                mouse: type=imps2, enabled=1
                mouse: type=serial, enabled=1
                mouse: enabled=0, toggle=ctrl+f10

              Requests that the GUI create and use it's  own non-shared colormap.  This  colormap
              will   be used when in the bochs window. If not enabled, a shared  colormap  scheme
              may be used.  Once again, enabled=1  turns on this feature  and 0 turns it off.

                private_colormap: enabled=1

       pci:   This option controls the presence of a PCI chipset  in  Bochs.  Currently  it  only
              supports  the  i440FX  chipset.  You  can also specify the devices connected to PCI
              slots. Up to 5 slots are available. For these combined PCI/ISA devices assigning to
              slot  is  mandatory  if you want to emulate the PCI model: cirrus, ne2k and pcivga.
              These PCI-only devices are also supported, but they are auto-assigned if you  don't
              use the slot configuration: e1000, es1370, pcidev, pcipnic, usb_ohci and usb_xhci.

                pci: enabled=1, chipset=i440fx, slot1=pcivga, slot2=ne2k

              Enables  the  mapping of a host PCI hardware device within the PCI subsystem of the
              Bochs x86 emulator. This feature requires Linux as a host OS.

                pcidev: vendor=0x1234, device=0x5678

              The vendor and device arguments should  contain  the  vendor  ID  respectively  the
              device ID of the PCI device you want to map within Bochs.  The PCI mapping is still
              very experimental.

       ne2k:  Defines the characteristics of an attached ne2000 isa card :

              PROPERTIES FOR ne2k:

              IOADDR, IRQ: You probably won't need to change ioaddr and irq, unless there are IRQ
              conflicts.  These parameters are ignored if the NE2000 is assigned to a PCI slot.

              MAC:  The  MAC address MUST NOT match the address of any machine on the net.  Also,
              the first byte must be an even number (bit 0 set means a  multicast  address),  and
              you  cannot  use  ff:ff:ff:ff:ff:ff  because that's the broadcast address.  For the
              ethertap module, you must use fe:fd:00:00:00:01.  There may be  other  restrictions
              too.  To be safe, just use the b0:c4... address.

              ETHMOD:  The  ethmod value defines which low level OS specific module to be used to
              access physical ethernet interface. Current implemented values include
               - fbsd   : ethernet on freebsd and openbsd
               - linux  : ethernet on linux
               - win32  : ethernet on win32
               - tap    : ethernet through a linux tap interface
               - tuntap : ethernet through a linux tuntap interface
               - slirp  : ethernet backend for Slirp with builtin DHCP / TFTP servers

              If you don't want to make connections to any physical networks,  you  can  use  the
              following 'ethmod's to simulate a virtual network.
               - null   : All packets are discarded, but logged to a few files
               - vde    : Virtual Distributed Ethernet
               - vnet   : ARP, ICMP-echo(ping), DHCP and TFTP are simulated
                          The virtual host uses
                          DHCP assigns to the guest
                          The TFTP server use 'ethdev' for the root directory and doesn't
                          overwrite files

              ETHDEV:  The  ethdev  value  is  the  name  of  the  network interface on your host
              platform.  On UNIX machines, you can get the name by running ifconfig.  On  Windows
              machines,  you must run niclist to get the name of the ethdev.  Niclist source code
              is in misc/niclist.c and it is included in Windows binary releases.

              SCRIPT: The script value is optional, and is the name of a script that is  executed
              after  bochs initialize the network interface. You can use this script to configure
              this network interface, or enable masquerading.  This  is  mainly  useful  for  the
              tun/tap  devices that only exist during Bochs execution. The network interface name
              is supplied to the script as first parameter.

              BOOTROM: The bootrom value is optional, and is the name of the ROM image  to  load.
              Note that this feature is only implemented for the PCI version of the NE2000.

                ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=fbsd, ethdev=xlo
                ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
                ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=win32, ethdev=MYCARD
                ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
                ne2k:      ioaddr=0x300,     irq=9,     mac=fe:fd:00:00:00:01,     ethmod=tuntap,
              ethdev=/dev/net/tun0, script=./tunconfig
                ne2k:      ioaddr=0x300,      irq=9,      mac=b0:c4:20:00:00:01,      ethmod=vde,
                ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vnet, ethdev="c:/temp"
                ne2k:     mac=b0:c4:20:00:00:01,    ethmod=slirp,    script=/usr/local/bin/slirp,

              To support  the  Bochs/Etherboot  pseudo-NIC,  Bochs  must  be  compiled  with  the
              --enable-pnic  configure  option.  It  accepts  the  same  syntax (for mac, ethmod,
              ethdev, script, bootrom) and supports the same networking  modules  as  the  NE2000

                pnic: enabled=1, mac=b0:c4:20:00:00:00, ethmod=vnet

       e1000: To  support  the  Intel(R) 82540EM Gigabit Ethernet adapter, Bochs must be compiled
              with the --eanble-e1000 configure option. The E1000 accepts the  same  syntax  (for
              mac,  ethmod,  ethdev, script, bootrom) and supports the same networking modules as
              the NE2000 adapter.

                e1000:          enabled=1,          mac=52:54:00:12:34:56,          ethmod=slirp,

              This  defines  the keyboard shortcut to be sent when you press the "user" button in
              the header bar. The shortcut string is a combination of maximum 3 key names (listed
              below) separated with a '-' character.

              Valid key names:

              "alt",  "bksl",  "bksp",  "ctrl",  "del",  "down", "end", "enter", "esc", "f1", ...
              "f12", "home", "ins", "left", "menu", "minus", "pgdwn",  "pgup",  "plus",  "right",
              "shift", "space", "tab", "up", "win", "print" and "power".

                user_shortcut: keys=ctrl-alt-del

              This  defines  image  file  that  can  be loaded into the CMOS RAM at startup.  The
              rtc_init parameter controls whether initialize the RTC with values  stored  in  the
              image.  By  default  the  time0  argument  given to the clock option is used.  With
              'rtc_init=image' the image is the source for the initial time.

                cmosimage: file=cmos.img, rtc_init=time0

              This option controls the presence of the USB root hub which is a part of the i440FX
              PCI  chipset.  With  the portX option you can connect devices to the hub (currently
              supported: 'mouse', 'tablet', 'keypad', 'disk', 'cdrom', 'hub' and 'printer').

              The optionsX parameter can be  used  to  assign  specific  options  to  the  device
              connected to the corresponding USB port. Currently this feature is only used to set
              the speed reported by device and by the 'disk' device  to  specify  an  alternative
              redolog file of some image modes.

              If  you  connect  the mouse or tablet to one of the ports, Bochs forwards the mouse
              movement data to  the  USB  device  instead  of  the  selected  mouse  type.   When
              connecting  the keypad to one of the ports, Bochs forwards the input of the numeric
              keypad to the USB device instead of the PS/2 keyboard.

              To connect a 'flat' mode image as an USB hardisk you can use the 'disk' device with
              the path to the image separated with a colon. To use other disk image modes similar
              to ATA disks the syntax 'disk:mode:filename' must be used (see below).

              To emulate an USB cdrom you can use the 'cdrom' device name and the path to an  ISO
              image  or  raw  device  name also separated with a colon. An option to insert/eject
              media is available in the runtime configuration.

              The device 'printer' emulates the HP Deskjet 920C printer. The PCL data is sent  to
              a  file specified in bochsrc.txt. The current code appends the PCL code to the file
              if the file already existed. It would  probably  be  nice  to  overwrite  the  file
              instead, asking user first.

                usb_uhci: enabled=1, port1=mouse, port2=disk:usbstick.img
                usb_uhci: enabled=1, port1=hub:7, port2=disk:growing:usbdisk.img
                usb_uhci: enabled=1, port1=printer:printdata.bin, port2=cdrom:image.iso

              This  option  controls  the  presence of the USB OHCI host controller with a 2-port
              hub. The portX option accepts the same device types with the  same  syntax  as  the
              UHCI controller (see above).

                usb_ohci: enabled=1

              This option controls the presence of the experimental USB xHCI host controller with
              a 4-port hub. The portX option accepts the same device types with the  same  syntax
              as the UHCI controller (see above).

                usb_xhci: enabled=1

              Load  user-defined  plugin. This option is available only if Bochs is compiled with
              plugin support. Maximum 8 different plugins are supported.  See the example in  the
              Bochs sources how to write a plugin device.

                user_plugin: name=testdev


       This program  is distributed  under the terms of the  GNU Lesser General Public License as
       published  by  the  Free Software  Foundation.  See  the LICENSE and COPYING files located
       in /usr/share/doc/bochs/ for details on the license and the lack of warranty.


       The latest version of this program can be found at:


       bochs(1), bochs-dlx(1), bximage(1), bxcommit(1)

       The Bochs IA-32 Emulator site on the World Wide Web:

       Online Bochs Documentation


       The    Bochs   emulator  was   created   by  Kevin   Lawton (,  and
       is  currently  maintained by the  members of  the  Bochs x86 Emulator  Project.   You  can
       see a current roster of members at:


       Please    report   all   bugs  to  the  bug  tracker   on   our   web  site.  Just  go  to, and click "Bug Reports" on the sidebar under "Feedback".

       Provide a detailed description of the bug, the version of the program you are running, the
       operating  system  you  are  running the program on  and  the  operating   system  you are
       running in the emulator.