1bochsrc(5)                     The Bochs Project                    bochsrc(5)
2
3
4

NAME

6       bochsrc - Configuration file for Bochs.
7

DESCRIPTION

9       Bochsrc    is   the   configuration   file  that specifies where  Bochs
10       should look for disk images,  how the  Bochs  emulation  layer   should
11       work,   etc.    The  syntax  used for bochsrc  can also be used as com‐
12       mand line  arguments for Bochs. The .bochsrc   file  should  be  placed
13       either in the current  directory  before running  Bochs or in your home
14       directory.
15
16       Starting with Bochs 1.3, you  can  use  environment  variables  in  the
17       bochsrc file, for example:
18
19         floppya: 1_44="$IMAGES/bootdisk.img", status=inserted
20
21       Starting  with  version  2.0, two environment variables have a built-in
22       default value which is set at compile time.   $BXSHARE  points  to  the
23       "share" directory which is typically /usr/share/bochs on UNIX machines.
24       See the $(sharedir) variable in  the  Makefile  for  the  exact  value.
25       $BXSHARE  is used by disk images to locate the directory where the BIOS
26       images and keymaps can be found.  If $BXSHARE  is  not  defined,  Bochs
27       will  supply  the  default value.  Also, $LTDL_LIBRARY_PATH points to a
28       list of directories (separated by colons if more than one) to search in
29       for Bochs plugins.  A compile-time default is provided if this variable
30       is not defined by the user.
31

OPTIONS

33       #include
34              This option includes another configuration file. It is  possible
35              to put installation defaults in a global config file (e.g. loca‐
36              tion of rom images).
37
38              Example:
39                #include /etc/bochsrc
40
41
42       plugin_ctrl:
43              Controls the presence of optional device plugins. These  plugins
44              are  loaded directly with this option and some of them install a
45              config option that is only available when the plugin  device  is
46              loaded.  The  value  "1"  means  to load the plugin and "0" will
47              unload it (if loaded before).
48
49              These plugins will be loaded by default (if present): 'biosdev',
50              'extfpuirq',    'gameport',    'iodebug','parallel',   'serial',
51              'speaker' and 'unmapped'.
52
53              These plugins are also supported, but they  are  usually  loaded
54              directly  with  their bochsrc option: 'e1000', 'es1370', 'ne2k',
55              'pcidev', 'pcipnic', 'sb16', 'usb_ehci', 'usb_ohci', 'usb_uhci',
56              'usb_xhci' and 'voodoo'.
57
58              Example:
59                plugin_ctrl:  unmapped=0, e1000=1 # unload 'unmapped' and load
60              'e1000'
61
62
63       config_interface:
64              The configuration interface is a series of menus or dialog boxes
65              that  allows you to change all the settings that control Bochs's
66              behavior.  Depending on the platform there are up to  3  choices
67              of configuration interface: a text mode version called "textcon‐
68              fig" and two graphical versions called "win32config"  and  "wx".
69              The  text  mode version uses stdin/stdout and is always compiled
70              in, unless Bochs is compiled for wx only. The choice  "win32con‐
71              fig"  is  only  available  on win32 and it is the default there.
72              The choice "wx" is only available when you  use  "--with-wx"  on
73              the  configure  command.  If you do not write a config_interface
74              line, Bochs will choose a default for you.
75
76              NOTE: if you use the "wx" configuration interface, you must also
77              use the "wx" display library.
78
79              Example:
80                config_interface: textconfig
81
82
83       display_library:
84              The  display  library  is  the  code that displays the Bochs VGA
85              screen.  Bochs has a selection of  about  10  different  display
86              library  implementations  for  different  platforms.  If you run
87              configure with multiple --with-*  options,  the  display_library
88              command  lets you choose which one you want to run with.  If you
89              do not write a display_library line, Bochs will choose a default
90              for you.
91
92              The choices are:
93                x           X windows interface, cross platform
94                win32       native win32 libraries
95                carbon      Carbon library (for MacOS X)
96                macintosh   MacOS pre-10
97                amigaos     native AmigaOS libraries
98                sdl         SDL 1.2.x library, cross platform
99                sdl2        SDL 2.x library, cross platform
100                term         text  only,  uses  curses/ncurses  library, cross
101              platform
102                rfb         provides an interface to AT&T's VNC viewer,  cross
103              platform
104                vncsrv      use LibVNCServer for extended RFB(VNC) support
105                wx          wxWidgets library, cross platform
106                nogui       no display at all
107
108              NOTE: if you use the "wx" configuration interface, you must also
109              use the "wx" display library.
110
111              Specific options: Some display libraries  now  support  specific
112              options  to control their behaviour. These options are supported
113              by more than one display library:
114
115                "gui_debug"   - use GTK debugger gui (sdl, sdl2, x)
116                "hideIPS"     - disable IPS output in status  bar  (rfb,  sdl,
117              sdl2, vncsrv, wx, x)
118                "nokeyrepeat" - turn off host keyboard repeat (sdl, sdl2, x)
119                "timeout"      -  time  (in  seconds) to wait for client (rfb,
120              vncsrv)
121
122              See the examples below for other currently supported options.
123
124              Examples:
125                display_library: x
126                display_library:  sdl,  options="fullscreen"   #  startup   in
127              fullscreen mode
128                display_library:  sdl2,  options="fullscreen"   #  startup  in
129              fullscreen mode
130
131
132
133       cpu:   This defines cpu-related parameters inside Bochs:
134
135              model:
136
137              Selects CPU configuration to emulate from  pre-defined  list  of
138              all  supported  configurations. When this option is used and the
139              value is different from  'bx_generic',  the  parameters  of  the
140              CPUID  option have no effect anymore. See the bochsrc sample for
141              supported values.
142
143              count:
144
145              Set the number of  processors:cores  per  processor:threads  per
146              core  when  Bochs is compiled for SMP emulation. Bochs currently
147              supports up to 14 threads (legacy APIC) or 254 threads (xAPIC or
148              higher) running simultaniosly.  If Bochs is compiled without SMP
149              support, it won't accept values different from 1.
150
151              quantum:
152
153              Maximum amount of instructions allowed to execute  by  processor
154              before returning control to another cpu. This option exists only
155              in Bochs binary compiled with SMP support.
156
157              reset_on_triple_fault:
158
159              Reset the CPU  when  triple  fault  occur  (highly  recommended)
160              rather than PANIC. Remember that if you trying to continue after
161              triple fault the simulation will be completely bogus !
162
163              cpuid_limit_winnt:
164
165              Determine whether to limit maximum CPUID  function  to  2.  This
166              mode  is  required  to  workaround  WinNT  installation and boot
167              issues.
168
169              mwait_is_nop:
170
171              When this option is enabled MWAIT will not put the  CPU  into  a
172              sleep  state.   This  option  exists only if Bochs compiled with
173              --enable-monitor-mwait.
174
175              msrs:
176
177              Define path to user CPU Model Specific Registers (MSRs) specifi‐
178              cation.  See example in msrs.def.
179
180              ignore_bad_msrs:
181
182              Ignore  MSR  references  that Bochs does not understand; print a
183              warning message instead of generating #GP exception. This option
184              is  enabled by default but will not be available if configurable
185              MSRs are enabled.
186
187              ips:
188
189              Emulated Instructions Per Second.  This is  the  number  of  IPS
190              that  Bochs  is  capable  of  running  on your machine.  You can
191              recompile Bochs with --enable-show-ips option enabled,  to  find
192              your  workstation's capability.  Measured IPS value will then be
193              logged into your log file or status bar  (if  supported  by  the
194              gui).
195
196              IPS  is  used to calibrate  many  time-dependent events   within
197              the  bochs  simulation.  For example, changing IPS  affects  the
198              frequency  of  VGA  updates,  the  duration of time before a key
199              starts to autorepeat,  and  the  measurement   of  BogoMips  and
200              other benchmarks.
201
202              Example Specifications[1]
203
204              Bochs   Machine/Compiler                           Mips
205              ──────────────────────────────────────────────────────────────
206              2.4.6   3.4Ghz Core i7 2600 w/ Win7x64/g++ 4.5.2   85-95 Mips
207              2.3.7   3.2Ghz Core 2 Q9770 w/ WinXP/g++ 3.4       50-55 Mips
208              2.3.7   2.6Ghz Core 2 Duo w/ WinXP/g++ 3.4         38-43 Mips
209              2.2.6   2.6Ghz Core 2 Duo w/ WinXP/g++ 3.4         21-25 Mips
210              2.2.6   2.1Ghz Athlon XP w/ Linux 2.6/g++ 3.4      12-15 Mips
211
212               [1]   IPS  measurements depend on OS and compiler configuration
213              in addition  to processor clock speed.
214
215              Example:
216                cpu: count=2, ips=10000000, msrs="msrs.def"
217
218
219       cpuid: This defines features and functionality supported by Bochs  emu‐
220              lated CPU:
221
222              level:
223
224              Set  emulated  CPU  level information returned by CPUID. Default
225              value is determined by configure option --enable-cpu-level. Cur‐
226              rently  supported  values are 5 (for Pentium and similar proces‐
227              sors) and 6 (for P6 and later processors).
228
229              family:
230
231              Set family information returned by CPUID. Default  family  value
232              determined by configure option --enable-cpu-level.
233
234              model:
235
236              Set  model information returned by CPUID. Default model value is
237              3.
238
239              stepping:
240
241              Set stepping information returned  by  CPUID.  Default  stepping
242              value is 3.
243
244              vendor_string:
245
246              Set the CPUID vendor string returned by CPUID(0x0).  This should
247              be a twelve-character ASCII string.
248
249              brand_string:
250
251              Set the CPUID vendor  string  returned  by  CPUID(0x80000002  ..
252              0x80000004).   This  should  be  at most a forty-eight-character
253              ASCII string.
254
255              mmx:
256
257              Select MMX instruction set support.  This option exists only  if
258              Bochs compiled with BX_CPU_LEVEL >= 5.
259
260              apic:
261
262              Select APIC configuration (LEGACY/XAPIC/XAPIC_EXT/X2APIC).  This
263              option exists only if Bochs compiled with BX_CPU_LEVEL >= 5.
264
265              sep:
266
267              Select SYSENTER/SYSEXIT instruction set  support.   This  option
268              exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
269
270              simd:
271
272              Select      SIMD      instructions      support.      Any     of
273              NONE/SSE/SSE2/SSE3/SSSE3/SSE4_1/SSE4_2/AVX/AVX2/AVX512 could  be
274              selected.
275
276              This  option  exists only if Bochs compiled with BX_CPU_LEVEL >=
277              6.  The AVX choises exists only if Bochs compiled with --enable-
278              avx option.
279
280              sse4a:
281
282              Select  AMD SSE4A instructions support.  This option exists only
283              if Bochs compiled with BX_CPU_LEVEL >= 6.
284
285              misaligned_sse:
286
287              Select AMD Misaligned SSE mode support.  This option exists only
288              if Bochs compiled with BX_CPU_LEVEL >= 6.
289
290              aes:
291
292              Select  AES instruction set support.  This option exists only if
293              Bochs compiled with BX_CPU_LEVEL >= 6.
294
295              sha:
296
297              Select SHA instruction set support.  This option exists only  if
298              Bochs compiled with BX_CPU_LEVEL >= 6.
299
300              movbe:
301
302              Select  MOVBE  Intel(R)  Atom  instruction support.  This option
303              exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
304
305              adx:
306
307              Select ADCX/ADOX instructions support.  This option exists  only
308              if Bochs compiled with BX_CPU_LEVEL >= 6.
309
310              xsave:
311
312              Select  XSAVE  extensions  support.   This option exists only if
313              Bochs compiled with BX_CPU_LEVEL >= 6.
314
315              xsaveopt:
316
317              Select XSAVEOPT instruction support.  This option exists only if
318              Bochs compiled with BX_CPU_LEVEL >= 6.
319
320              avx_f16c:
321
322              Select  AVX  float16  convert instructions support.  This option
323              exists only if Bochs compiled with --enable-avx option.
324
325              avx_fma:
326
327              Select AVX fused multiply add (FMA) instructions support.   This
328              option exists only if Bochs compiled with --enable-avx option.
329
330              bmi:
331
332              Select  BMI1/BMI2 instructions support.  This option exists only
333              if Bochs compiled with --enable-avx option.
334
335              fma4:
336
337              Select AMD four operand FMA instructions support.   This  option
338              exists only if Bochs compiled with --enable-avx option.
339
340              xop:
341
342              Select AMD XOP instructions support.  This option exists only if
343              Bochs compiled with --enable-avx option.
344
345              tbm:
346
347              Select AMD TBM instructions support.  This option exists only if
348              Bochs compiled with --enable-avx option.
349
350              x86_64:
351
352              Enable x85-64 and long mode support.  This option exists only if
353              Bochs compiled with x86-64 support.
354
355              1g_pages:
356
357              Enable 1G page size support in long mode.   This  option  exists
358              only if Bochs compiled with x86-64 support.
359
360              pcid:
361
362              Enable  Process-Context Identifiers (PCID) support in long mode.
363              This option exists only if Bochs compiled with x86-64 support.
364
365              smep:
366
367              Enable Supervisor  Mode  Execution  Protection  (SMEP)  support.
368              This  option  exists only if Bochs compiled with BX_CPU_LEVEL >=
369              6.
370
371              smap:
372
373              Enable Supervisor Mode Access Prevention (SMAP)  support.   This
374              option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
375
376              mwait:
377
378              Select  MONITOR/MWAIT  instructions support.  This option exists
379              only if Bochs compiled with --enable-monitor-mwait.
380
381              vmx:
382
383              Select VMX extensions emulation  support.   This  option  exists
384              only if Bochs compiled with --enable-vmx option.
385
386              svm:
387
388              Select  AMD  SVM  (Secure  Virtual Machine) extensions emulation
389              support.   This  option  exists  only  if  Bochs  compiled  with
390              --enable-svm option.
391
392              Example:
393                cpuid:  mmx=1,  sep=1,  sse=sse4_2,  xapic=1,  aes=1, movbe=1,
394              xsave=1
395
396
397       memory:
398              Set the amount of physical memory you want to emulate.
399
400              guest:
401
402              Set amount of guest physical memory to emulate. The  default  is
403              32MB,  the maximum amount limited only by physical address space
404              limitations.
405
406              host:
407
408              Set amount of host memory you want to  allocate  for  guest  RAM
409              emulation.  It is possible to allocate less memory than you want
410              to emulate in guest system. This will fake guest to see the non-
411              existing  memory.  Once guest system touches new memory block it
412              will be dynamically taken from the  memory  pool.  You  will  be
413              warned (by FATAL PANIC) in case guest already used all allocated
414              host memory and wants more.
415
416              Example:
417                memory: guest=512, host=256
418
419
420       megs:  The 'megs:' option sets the 'guest' and 'host' memory parameters
421              to the same value. In all other cases the 'memory' option should
422              be used instead.
423
424              Example:
425                megs: 32
426
427
428       romimage:
429              The ROM BIOS controls what the PC does when it first powers  on.
430              Normally, you can use a precompiled BIOS in the source or binary
431              distribution called BIOS-bochs-latest.  The default ROM BIOS  is
432              usually loaded starting at address 0xfffe0000, and it is exactly
433              128k long. The legacy version  of  the  Bochs  BIOS  is  usually
434              loaded  starting  at  address  0xffff0000, and it is exactly 64k
435              long.  You can use the environment variable $BXSHARE to  specify
436              the  location  of  the  BIOS.   The usage of external large BIOS
437              images (up to 512k) at memory top is now supported, but we still
438              recommend  to  use  the  BIOS distributed with Bochs.  The start
439              address is optional, since it can be calculated from image size.
440              The  Bochs BIOS currently supports only the option "fastboot" to
441              skip the boot menu delay.
442
443              Examples:
444                romimage: file=bios/BIOS-bochs-latest, options=fastboot
445                romimage: file=$BXSHARE/BIOS-bochs-legacy
446                romimage: file=mybios.bin, address=0xfff80000
447
448
449       vgaromimage:
450              You also need to load a VGA ROM BIOS into 0xC0000.
451
452              Examples:
453                vgaromimage: file=bios/VGABIOS-elpin-2.40
454                vgaromimage: file=bios/VGABIOS-lgpl-latest
455                vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
456
457
458       optromimage1: , optromimage2: , optromimage3: or optromimage4:
459              You may now load up to 4 optional ROM images. Be sure to  use  a
460              read-only   area,  typically  between  C8000  and  EFFFF.  These
461              optional ROM images should not overwrite the rombios (located at
462              F0000-FFFFF)  and the videobios (located at C0000-C7FFF).  Those
463              ROM images will be initialized by the bios if they  contain  the
464              right  signature  (0x55AA).   It can also be a convenient way to
465              upload some arbitrary code/data in the simulation, that  can  be
466              retrieved by the boot loader
467
468              Example:
469                optromimage1: file=optionalrom.bin, address=0xd0000
470
471
472       vga:   This defines parameters related to the VGA display.
473
474              extension:
475
476              Here  you can specify the display extension to be used. With the
477              value 'none' you can use standard VGA with no  extension.  Other
478              supported  values  are  'vbe' for Bochs VBE, 'cirrus' for Cirrus
479              SVGA support and  'voodoo'  for  Voodoo  Graphics  support  (see
480              'voodoo' option).
481
482              update_freq:
483
484              This  parameter specifies the number of display updates per sec‐
485              ond.  The VGA update timer by default uses the  realtime  engine
486              with a value of 5. This parameter can be changed at runtime.
487
488              realtime:
489
490              If  set to 1 (default), the VGA timer is based on realtime, oth‐
491              erwise it is driven by the cpu and depends on the  ips  setting.
492              If  the  host  is slow (low ips, update_freq) and the guest uses
493              HLT appropriately, setting this to 0 and "clock: sync=none"  may
494              improve  the  responsiveness  of the guest GUI when the guest is
495              otherwise idle.
496
497              Examples:
498                vga: extension=none, update_freq=10, realtime=0
499                vga: extension=cirrus, update_freq=30
500                vga: extension=vbe
501
502
503       voodoo:
504              This defines the Voodoo Graphics emulation (experimental).  Cur‐
505              rently  supported models are 'voodoo1', 'voodoo2', 'banshee' and
506              'voodoo3'.  The Voodoo2 support is not yet complete, but  almost
507              usable. The Banshee / Voodoo3 support is under construction, but
508              basically usable. The 2D/3D cards require an external  VGA  BIOS
509              the  vga  extension option to be set to 'voodoo'.  If the i440BX
510              PCI chipset is selected, they can be assigned to AGP (slot  #5).
511              The gui screen update timing for all models is controlled by the
512              related 'vga' options.
513
514              Example:
515                voodoo: enabled=1, model=voodoo1
516
517
518       keyboard:
519              This defines parameters related to the emulated keyboard:
520
521              type:
522
523              Type of keyboard return by a "identify keyboard" command to  the
524              keyboard  controller.  It  must  be  one  of "xt", "at" or "mf".
525              Defaults to "mf". It should be ok for almost everybody. A  known
526              exception is french macs, that do have a "at"-like keyboard.
527
528              serial_delay:
529
530              Approximate  time in microseconds that it takes one character to
531              be transferred from the keyboard to controller over  the  serial
532              path.
533
534              paste_delay:
535
536              Approximate time in microseconds between attempts to paste char‐
537              acters to the keyboard controller.  This  leaves  time  for  the
538              guest os to deal with the flow of characters.  The ideal setting
539              depends on how your operating system processes characters.   The
540              default  of 100000 usec (.1 seconds) was chosen because it works
541              consistently in Windows.
542
543              If your OS is losing characters during  a  paste,  increase  the
544              paste delay until it stops losing characters.
545
546              keymap:
547
548              This  enables a remap of a physical localized keyboard to a vir‐
549              tualized us keyboard, as the PC architecture expects.
550
551              user_shortcut:
552
553              This defines the keyboard shortcut to be sent when you press the
554              "user" button in the header bar. The shortcut string is a combi‐
555              nation of maximum 3 key names (listed below)  separated  with  a
556              '-' character.
557
558              Valid key names:
559
560              "alt",  "bksl",  "bksp",  "ctrl", "del", "down", "end", "enter",
561              "esc", "f1", ... "f12", "home", "ins", "left", "menu",  "minus",
562              "pgdwn",  "pgup",  "plus",  "power", "print", "right", "scrlck",
563              "shift", "space", "tab", "up" and "win".
564
565              Examples:
566                keyboard: type=mf, serial_delay=200, paste_delay=100000
567                keyboard: keymap=gui/keymaps/x11-pc-de.map
568                keyboard: user_shortcut=ctrl-alt-del
569
570
571       mouse: This defines parameters for the emulated mouse type, the initial
572              status of the mouse capture and the runtime method to toggle it.
573
574              type
575
576              With  the  mouse type option you can select the type of mouse to
577              emulate.  The default value is  'ps2'.  The  other  choices  are
578              'imps2'   (wheel   mouse  on  PS/2),  'serial',  'serial_wheel',
579              'serial_msys'  (one  com  port  requires  setting  'mode=mouse')
580              'inport'  and  'bus'  (if  present). To connect a mouse to a USB
581              port, see the 'usb_uhci', 'usb_ohci', 'usb_ehci'  or  'usb_xhci'
582              option (requires PCI and USB support).
583
584              enabled
585
586              The Bochs gui creates mouse "events" unless the 'enabled' option
587              is set to 0. The hardware emulation itself is  not  disabled  by
588              this.   Unless  you  have  a  particular reason for enabling the
589              mouse by default, it is recommended that you leave it  off.  You
590              can  also  toggle  the  mouse usage at runtime (RFB, SDL, Win32,
591              wxWidgets and X11 - see below).
592
593              toggle
594
595              The default method to toggle the mouse capture at runtime is  to
596              press the CTRL key and the middle mouse button ('ctrl+mbutton').
597              This option allows to change the method to 'ctrl+f10' (like DOS‐
598              Box), 'ctrl+alt' (like QEMU) or 'f12'.
599
600              Examples:
601                mouse: enabled=1
602                mouse: type=imps2, enabled=1
603                mouse: type=serial, enabled=1
604                mouse: enabled=0, toggle=ctrl+f10
605
606
607       pci:   This  option  controls  the  presence of a PCI chipset in Bochs.
608              Currently it supports the i430FX, i440FX  and  i440BX  chipsets.
609              You can also specify the devices connected to PCI slots. Up to 5
610              slots are available. For these combined PCI/ISA devices  assign‐
611              ing  to  slot is mandatory if you want to emulate the PCI model:
612              cirrus, ne2k and pcivga. These PCI-only devices  are  also  sup‐
613              ported,  but  they  are  auto-assigned if you don't use the slot
614              configuration:  e1000,  es1370,   pcidev,   pcipnic,   usb_ehci,
615              usb_ohci,  usb_xhci  and voodoo.  In case of the i440BX chipset,
616              slot #5 is the AGP slot. Currently only the 'voodoo' device  can
617              be assigned to AGP.
618
619              Example:
620                pci: enabled=1, chipset=i440fx, slot1=pcivga, slot2=ne2k
621
622
623       clock: This defines the parameters of the clock inside Bochs.
624
625              sync
626
627              This  defines  the  method how to synchronize the Bochs internal
628              time with realtime. With the value 'none' the Bochs time  relies
629              on  the  IPS value and no host time synchronization is used. The
630              'slowdown' method  sacrifices  performance  to  preserve  repro‐
631              ducibility  while allowing host time correlation. The 'realtime'
632              method sacrifices reproducibility to  preserve  performance  and
633              host-time  correlation.   It is possible to enable both synchro‐
634              nization methods.
635
636              rtc_sync
637
638              If this option is enabled together with  the  realtime  synchro‐
639              nization,  the  RTC runs at realtime speed. This feature is dis‐
640              abled by default.
641
642              time0
643
644              Specifies the start (boot) time of the virtual  machine.  Use  a
645              time value as returned by the time(2) system call or a string as
646              returned by the ctime(3) system call. If no time0 value  is  set
647              or if time0 equal to 1 (special case) or if time0 equal 'local',
648              the simulation will be started at the current local  host  time.
649              If  time0 equal to 2 (special case) or if time0 equal 'utc', the
650              simulation will be started at the current utc time.
651
652              Syntax:
653                clock:                     sync=[none|slowdown|realtime|both],
654              time0=[timeValue|local|utc]
655
656              Default value are sync=none, rtc_sync=0, time0=local
657
658              Example:
659                clock:  sync=realtime, time0=938581955   # Wed Sep 29 07:12:35
660              1999
661                clock: sync=realtime,  time0="Sat  Jan   1  00:00:00  2000"  #
662              946681200
663
664
665       cmosimage:
666              This defines a binary image file with size 128 bytes that can be
667              loaded into the CMOS RAM at startup. The rtc_init parameter con‐
668              trols  whether  initialize  the  RTC  with  values stored in the
669              image. By default the time0 argument given to the  clock  option
670              is  used.  With 'rtc_init=image' the image is the source for the
671              initial time.
672
673              Example:
674                cmosimage: file=cmos.img, rtc_init=time0
675
676
677       private_colormap:
678              Requests that the GUI create and use it's  own  non-shared  col‐
679              ormap.   This  colormap  will  be used when in the bochs window.
680              If not enabled, a shared  colormap  scheme  may be  used.   Once
681              again, enabled=1  turns on this feature  and 0 turns it off.
682
683              Example:
684                private_colormap: enabled=1
685
686
687       floppya: or floppyb:
688
689              Point   this to  the pathname of a floppy image file or  device.
690              Floppya is the  first drive, and  floppyb is the  second  drive.
691              If   you're  booting  from  a  floppy, floppya should point to a
692              bootable disk.
693
694              You can set the initial status of  the  media  to  'ejected'  or
695              'inserted'. Usually you will want to use 'inserted'.
696
697              The  parameter  'type'  can  be  used to enable the floppy drive
698              without media and status specified. Usually the  drive  type  is
699              set up based on the media type.
700
701              The  optional parameter 'write_protected' can be used to control
702              the media write protect switch. By default it is turned off.
703
704              Example:
705
706              2.88M 3.5" media:
707                floppya: 2_88=path, status=ejected
708
709              1.44M 3.5" media (write protected):
710                floppya: 1_44=path, status=inserted, write_protected=1
711
712              1.2M  5.25" media:
713                floppyb: 1_2=path, status=ejected
714
715              720K  3.5" media:
716                floppya: 720k=path, status=inserted
717
718              360K  5.25" media:
719                floppya: 360k=path, status=inserted
720
721              Autodetect floppy media type:
722                floppya: image=path, status=inserted
723
724              Use directory as 1.44M VFAT media:
725                floppya: 1_44=vvfat:path, status=inserted
726
727              1.44M 3.5" floppy drive, no media:
728                floppya: type=1_44
729
730
731       ata0: , ata1: , ata2: or ata3:
732
733              These options enables up to 4 ata channels. For each channel the
734              two  base  io addresses and the irq must be specified.  ata0 and
735              ata1 are enabled by default, with the values shown below.
736
737              Examples:
738                 ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
739                 ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
740                 ata2: enabled=1, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
741                 ata3: enabled=1, ioaddr1=0x168, ioaddr2=0x360, irq=9
742
743
744       ata[0-3]-master: or ata[0-3]-slave:
745
746              This defines the type and characteristics of  all  attached  ata
747              devices:
748                 type=       type of attached device [disk|cdrom]
749                 path=       path of the image
750                 mode=              image       mode       [flat|concat|exter‐
751              nal|dll|sparse|vmware3|vmware4|undoable|grow‐
752              ing|volatile|vpc|vbox|vvfat], only valid for disks
753                 cylinders=  only valid for disks
754                 heads=      only valid for disks
755                 spt=        only valid for disks
756                 status=     only valid for cdroms [inserted|ejected]
757                 biosdetect= type of biosdetection [auto|cmos|none]
758                 translation=type  of  translation of the bios, only for disks
759              [none|lba|large|rechs|auto]
760                 model=      string returned by identify device command
761                 journal=    optional filename of the  redolog  for  undoable,
762              volatile and vvfat disks
763
764              Point this at a hard disk image file, cdrom iso file, or a phys‐
765              ical cdrom device.  To create a hard  disk  image,  try  running
766              bximage.   It  will  help you choose the size and then suggest a
767              line that works with it.
768
769              In UNIX it is possible to use a raw device as a Bochs hard disk,
770              but WE DON'T RECOMMEND IT.
771
772              The  path  is mandatory for hard disks. Disk geometry autodetec‐
773              tion works with images created by bximage if CHS is set to 0/0/0
774              (cylinders are calculated using  heads=16 and spt=63). For other
775              hard disk images and modes the cylinders,  heads,  and  spt  are
776              mandatory.  In  all  cases the disk size reported from the image
777              must be exactly C*H*S*512.
778
779              The mode option defines how the disk image is handled. Disks can
780              be defined as:
781                - flat : one file flat layout
782                - concat : multiple files layout
783                - external : developer's specific, through a C++ class
784                - dll : developer's specific, through a DLL
785                - sparse : stackable, commitable, rollbackable
786                - vmware3 : vmware3 disk support
787                - vmware4 : vmware4 disk support (aka VMDK)
788                - undoable : flat file with commitable redolog
789                - growing : growing file
790                - volatile : flat file with volatile redolog
791                - vpc : fixed / dynamic size VirtualPC image
792                -  vbox  : fixed / dynamic size Oracle(tm) VM VirtualBox image
793              (VDI version 1.1)
794                - vvfat: local directory appears as read-only VFAT disk  (with
795              volatile redolog)
796
797              The  disk  translation  scheme (implemented in legacy int13 bios
798              functions, and used by older operating systems like MS-DOS), can
799              be defined as:
800                -  none  : no translation, for disks up to 528MB (1032192 sec‐
801              tors)
802                - large : a standard bitshift algorithm, for disks up to 4.2GB
803              (8257536 sectors)
804                -  rechs : a revised bitshift algorithm, using a 15 heads fake
805              physical geometry, for disks up  to  7.9GB  (15482880  sectors).
806              (don't use this unless you understand what you're doing)
807                -  lba  :  a  standard lba-assisted algorithm, for disks up to
808              8.4GB (16450560 sectors)
809                - auto : autoselection of best translation scheme. (it  should
810              be changed if system does not boot)
811
812              Default values are:
813                 mode=flat,  biosdetect=auto, translation=auto, model="Generic
814              1234"
815
816              The biosdetect option has currently no effect on the bios
817
818              Examples:
819                 ata0-master:   type=disk,   path=10M.sample,   cylinders=306,
820              heads=4, spt=17
821                 ata0-slave:    type=disk,   path=20M.sample,   cylinders=615,
822              heads=4, spt=17
823                 ata1-master:   type=disk,   path=30M.sample,   cylinders=615,
824              heads=6, spt=17
825                 ata1-slave:    type=disk,   path=46M.sample,   cylinders=940,
826              heads=6, spt=17
827                 ata2-master:   type=disk,   path=62M.sample,   cylinders=940,
828              heads=8, spt=17
829                 ata2-slave:    type=disk,   path=112M.sample,  cylinders=900,
830              heads=15, spt=17
831                 ata3-master:  type=disk,  path=483M.sample,   cylinders=1024,
832              heads=15, spt=63
833                 ata3-slave:  type=cdrom, path=iso.sample, status=inserted
834
835
836       boot:  This defines the boot sequence. Now you can specify up to 3 boot
837              drives, which can be  'floppy',  'disk',  'cdrom'  or  'network'
838              (boot ROM).  Legacy 'a' and 'c' are also supported.
839
840              Example:
841                boot: cdrom, floppy, disk
842
843
844       floppy_bootsig_check:
845              This  disables  the  0xaa55 signature check on boot floppies The
846              check is enabled by default.
847
848              Example:
849                floppy_bootsig_check: disabled=1
850
851
852       log:   Give the path of the log file you'd like Bochs debug  and  misc.
853              verbiage  to  be written to.   If you really don't want it, make
854              it /dev/null.
855
856              Example:
857                log: bochs.out
858                log: /dev/tty               (unix only)
859                log: /dev/null              (unix only)
860
861
862       logprefix:
863              This handles the format of the string prepended to each log line
864              : You may use those special tokens :
865                %t : 11 decimal digits timer tick
866                %i : 8 hexadecimal digits of cpu0 current eip
867                %e  :  1  character  event  type  ('i'nfo,  'd'ebug,  'p'anic,
868              'e'rror)
869                %d : 5 characters string of the device, between brackets
870
871              Default : %t%e%d
872
873              Examples:
874                logprefix: %t-%e-@%i-%d
875                logprefix: %i%e%d
876
877
878       panic: If Bochs  reaches  a condition  where  it  cannot  emulate  cor‐
879              rectly,  it  does  a panic. This  can be a configuration problem
880              (like a misspelled bochsrc line) or an emulation problem   (like
881              an   unsupported  video mode). The  "panic" setting  in  bochsrc
882              tells  Bochs  how  to respond to a panic.   You  can  set   this
883              to   fatal   (terminate  the session), ask (ask user how to pro‐
884              ceed) or report (print information to the log file).
885
886              The safest setting is action=fatal or  action=ask.  If  you  are
887              getting   panics,  you  can  try  action=report instead.  If you
888              allow Bochs to continue after a panic,  don't  be surprised   if
889              you   get strange behavior or crashes if a panic occurs.  Please
890              report panic messages unless it is just a configuration  problem
891              like "could  not find hard drive image."
892
893              Examples:
894                panic: action=fatal
895                panic: action=ask
896
897
898
899       error: Bochs   produces  an  error   message  when  it  finds  a condi‐
900              tion  that  really  shouldn't  happen,  but doesn't endanger the
901              simulation.   An example of an error  might be  if the  emulated
902              software  produces an illegal disk command.
903
904              The "error"  setting  tells  Bochs  how to respond to  an  error
905              condition.  You  can  set   this  to fatal  (terminate the  ses‐
906              sion), ask (ask user how to proceed), warn (show  dialog    with
907              message    and   continue),   report  (print information  to the
908              log file),  or ignore  (do nothing).
909
910              Example:
911                error: action=report
912                error: action=warn
913
914
915       info:  This  setting  tells Bochs  what  to  do  when  an event  occurs
916              that  generates   informational  messages.  You can set this  to
917              report (print information to the log file), or  ignore (do noth‐
918              ing).  For general usage, the "report" option is probably a good
919              choice.
920
921              Example:
922                info: action=report
923
924
925       debug: This   setting   tells   Bochs   what   to   do   with  messages
926              intended  to assist in  debugging.  You can set  this  to report
927              (print  information to  the log file),  or ignore (do  nothing).
928              You  should generally set this  to  ignore, unless  you are try‐
929              ing to diagnose a particular problem.
930
931              NOTE: When  action=report,   Bochs   may  spit  out thousands of
932              debug messages per second, which can impact performance and fill
933              up your disk.
934
935              Example:
936                debug: action=ignore
937
938
939       debugger_log:
940              Give the path of the log file you'd like Bochs to  log  debugger
941              output.   If  you  really don't want it, make it '/dev/null', or
942              '-'.
943
944              Example:
945                log: debugger.out
946                log: /dev/null              (unix only)
947                log: -
948
949
950       com1: , com2: , com3: or com4:
951              This defines a serial port (UART type  16550A).  In  the  'term'
952              mode you can specify a device to use as com1. This can be a real
953              serial line, or a pty.  To use a pty (under X/Unix), create  two
954              windows  (xterms, usually).  One of them will run bochs, and the
955              other will act as com1. Find out the tty the com1  window  using
956              the `tty' command, and use that as the `dev' parameter.  Then do
957              `sleep 1000000' in the com1 window to keep the shell from  mess‐
958              ing  with things, and run bochs in the other window.  Serial I/O
959              to com1 (port 0x3f8) will all go to the other window.
960
961              In socket* and pipe* (win32 only)  modes  Bochs  becomes  either
962              socket/named  pipe  client or server. In client mode it connects
963              to an already running server (if connection fails  Bochs  treats
964              com port as not connected). In server mode it opens socket/named
965              pipe and waits until a client application connects to it  before
966              starting  simulation.  This  mode is useful for remote debugging
967              (e.g.  with gdb's "target remote host:port" command or  windbg's
968              command     line    option    -k    com:pipe,port=\.ipeipename).
969              Socket modes use simple TCP communication, pipe modes use duplex
970              byte mode pipes.
971
972              Other  serial modes are 'null' (no input/output), 'file' (output
973              to a file specified as the 'dev'  parameter  and  changeable  at
974              runtime),  'raw'  (use the real serial port - partly implemented
975              on win32) and 'mouse' (standard serial mouse  -  requires  mouse
976              option    setting    'type=serial',    'type=serial_wheel'    or
977              'type=serial_msys')
978
979              Examples:
980                com1: enabled=1, mode=term, dev=/dev/ttyp7
981                com2: enabled=1, mode=file, dev=serial.out
982                com1: enabled=1, mode=mouse
983
984
985       parport1: or parport2:
986              This defines a parallel (printer) port. When turned  on  and  an
987              output  file  is defined the emulated printer port sends charac‐
988              ters printed by the guest OS into the output file. On some plat‐
989              forms a device filename can be used to send the data to the real
990              parallel port (e.g. "/dev/lp0" on Linux). The output file can be
991              changed at runtime.
992
993              Examples:
994                parport1: enabled=1, file=parport.out
995                parport2: enabled=1, file="/dev/lp0"
996                parport1: enabled=0
997
998
999       sound: This  defines  the  lowlevel  sound driver(s) for the wave (PCM)
1000              input / output and the MIDI output feature  and  (if  necessary)
1001              the  devices  to  be used.  It can have several of the following
1002              properties.  All properties  are  in  the  format  sound:  prop‐
1003              erty=value
1004
1005              waveoutdrv:
1006                This defines the driver to be used for the waveout feature.
1007                Possible  values  are  'file'  (all  wave  data sent to file),
1008              'dummy' (no
1009                output) and  the  platform-dependant  drivers  'alsa',  'oss',
1010              'osx', 'sdl'
1011                and 'win'.
1012
1013              waveout:
1014                This  defines the device to be used for wave output (if neces‐
1015              sary) or
1016                the output file for the 'file' driver.
1017
1018              waveindrv:
1019                This defines the driver to be used for the wavein feature.
1020                Possible values are 'dummy' (recording silence) and  platform-
1021              dependent
1022                drivers 'alsa', 'oss', 'sdl' and 'win'.
1023
1024              wavein:
1025                This  defines  the device to be used for wave input (if neces‐
1026              sary).
1027
1028              midioutdrv:
1029                This defines the driver to be used for the  MIDI  output  fea‐
1030              ture.
1031                Possible  values  are  'file'  (all  MIDI  data sent to file),
1032              'dummy' (no
1033                output) and platform-dependent drivers  'alsa',  'oss',  'osx'
1034              and 'win'.
1035
1036              midiout:
1037                This  defines the device to be used for MIDI output (if neces‐
1038              sary).
1039
1040              driver:
1041                This defines the driver to be used for all sound features with
1042              one
1043                property. Possible values are 'default' (platform default) and
1044              all
1045                other choices described above. Overriding one or more settings
1046              with
1047                the specific driver parameter is possible.
1048
1049              Example for one driver (uses platform-default):
1050                sound:  driver=default, waveout=/dev/dsp Example for different
1051              drivers:
1052                sound: waveoutdrv=sdl, waveindrv=alsa, midioutdrv=dummy
1053
1054
1055       speaker:
1056              This defines the PC speaker output mode. In the 'sound' mode the
1057              beep  is  generated by the square wave generator which is a part
1058              of the lowlevel sound support. The 'system' mode is only  avail‐
1059              able  on  Linux  and  Windows. On Linux /dev/console is used for
1060              output and on Windows the Beep() function. The 'gui'  mode  for‐
1061              wards  the  beep to the related gui methods (currently only used
1062              by the Carbon gui).
1063
1064              Example:
1065                speaker: enabled=1, mode=sound
1066
1067
1068       sb16:  This  defines the SB16 sound emulation. It can have  several  of
1069              the  following properties. All properties are in this format:
1070                sb16: property=value
1071
1072
1073              PROPERTIES FOR sb16:
1074
1075              enabled:
1076
1077                This  optional property controls the presence of the SB16 emu‐
1078              lation.
1079                The emulation is turned on unless this property  is  used  and
1080              set to 0.
1081
1082              midimode:
1083
1084                This parameter specifies what to do with the MIDI output.
1085
1086                0 = no output
1087                1  =  output to device specified with the sound option (system
1088              dependent)
1089                2 = MIDI or raw data output to  file  (depends  on  file  name
1090              extension)
1091                3 = dual output (mode 1 and 2 at the same time)
1092
1093              midifile:
1094
1095                This  is  the file where the midi output is stored (midimode 2
1096              or 3).
1097
1098              wavemode:
1099
1100                This parameter specifies what to do with the PCM output.
1101
1102                0 = no output
1103                1 = output to device specified with the sound  option  (system
1104              dependent)
1105                2  = VOC, WAV or raw data output to file (depends on file name
1106              extension)
1107                3 = dual output (mode 1 and 2 at the same time)
1108
1109              wavefile:
1110
1111                This is the file where the wave output is stored  (wavemode  2
1112              or 3).
1113
1114              log:
1115
1116                The file to write the sb16 emulator messages to.
1117
1118              loglevel:
1119
1120                0 = No log.
1121                1 = Resource changes, midi program and bank changes.
1122                2 = Severe errors.
1123                3 = All errors.
1124                4 = All errors plus all port accesses.
1125                5 = All  errors and port  accesses plus a lot
1126                    of extra information.
1127
1128                It is possible to change the loglevel at runtime.
1129
1130              dmatimer:
1131
1132              Microseconds per second for a DMA cycle.  Make it smaller to fix
1133              non-continuous sound.  750000 is  usually  a  good value.   This
1134              needs   a reasonably  correct   setting  for the  IPS  parameter
1135              of the CPU option.  It is possible to  adjust  the  dmatimer  at
1136              runtime.
1137
1138              Examples for output modes:
1139                sb16:  midimode=2, midifile="output.mid", wavemode=1 # MIDI to
1140              file
1141                sb16: midimode=1, wavemode=3, wavefile="output.wav" # wave  to
1142              file and device
1143
1144
1145       es1370:
1146              This  defines the ES1370 sound emulation (recording and playback
1147              - except DAC1+DAC2 output  at  the  same  time).  The  parameter
1148              'enabled' controls the presence of the device. The wave and MIDI
1149              output can be sent to device, file or both using the  parameters
1150              'wavemode',  'wavefile',  'midimode'  and  'midifile'.  See  the
1151              description of these parameters at the SB16 directive.
1152
1153              Example for using 'sound' parameters:
1154                es1370: enabled=1, wavemode=1 Example for  sending  output  to
1155              file:
1156                es1370: enabled=1, wavemode=2, wavefile=output.voc
1157
1158
1159       ne2k:  Defines the characteristics of an attached ne2000 isa card :
1160                 ioaddr=IOADDR,
1161                 irq=IRQ,
1162                 mac=MACADDR,
1163                 ethmod=MODULE,
1164                 ethdev=DEVICE,
1165                 script=SCRIPT,
1166                 bootrom=BOOTROM
1167
1168              PROPERTIES FOR ne2k:
1169
1170              IOADDR,  IRQ:  You probably won't need to change ioaddr and irq,
1171              unless there are IRQ conflicts.  These parameters are ignored if
1172              the NE2000 is assigned to a PCI slot.
1173
1174              MAC:  The  MAC address MUST NOT match the address of any machine
1175              on the net.  Also, the first byte must be an even number (bit  0
1176              set   means   a   multicast   address),   and   you  cannot  use
1177              ff:ff:ff:ff:ff:ff because that's the broadcast address.  For the
1178              ethertap  module,  you must use fe:fd:00:00:00:01.  There may be
1179              other restrictions too.  To  be  safe,  just  use  the  b0:c4...
1180              address.
1181
1182              ETHMOD:  The  ethmod  value  defines which low level OS specific
1183              module to be used to access physical ethernet interface. Current
1184              implemented values include
1185               - fbsd      : ethernet on freebsd and openbsd
1186               - linux     : ethernet on linux
1187               - win32     : ethernet on win32
1188               - tap       : ethernet through a linux tap interface
1189               - tuntap    : ethernet through a linux tuntap interface
1190               - slirp     : built-in Slirp support with DHCP / TFTP servers
1191
1192              If  you don't want to make connections to any physical networks,
1193              you can use the following 'ethmod's to simulate a  virtual  net‐
1194              work.
1195               - null   : All packets are discarded, but logged to a few files
1196               - vde    : Virtual Distributed Ethernet
1197               - vnet   : ARP, ICMP-echo(ping), DHCP and TFTP are simulated
1198                          The virtual host uses 192.168.10.1
1199                          DHCP assigns 192.168.10.2 to the guest
1200                          The  TFTP server use 'ethdev' for the root directory
1201              and doesn't
1202                          overwrite files
1203               - socket : Connect up to 6 Bochs instances with  external  pro‐
1204              gram 'bxhub'
1205                          (simulating  an  ethernet hub). It provides the same
1206              services as the
1207                          'vnet' module and assigns IP addresses like  'slirp'
1208              (10.0.2.x).
1209
1210              ETHDEV: The ethdev value is the name of the network interface on
1211              your host platform.  On UNIX machines, you can get the  name  by
1212              running  ifconfig.  On Windows machines, you must run niclist to
1213              get  the  name  of  the  ethdev.   Niclist  source  code  is  in
1214              misc/niclist.c  and  it  is included in Windows binary releases.
1215              The 'socket' module uses this parameter to specify the UDP  port
1216              for receiving packets and (optional) the host to connect.
1217
1218              SCRIPT:  The  script  value  is  optional,  and is the name of a
1219              script that is  executed  after  bochs  initialize  the  network
1220              interface.  You  can  use  this script to configure this network
1221              interface, or enable masquerading.  This is  mainly  useful  for
1222              the  tun/tap devices that only exist during Bochs execution. The
1223              network interface name is supplied to the script as first param‐
1224              eter. The 'slirp' module uses this parameter to specify a config
1225              file for setting up an alternative  IP  configuration  or  addi‐
1226              tional  features. The 'vnet' module uses this parameter to spec‐
1227              ify an alternative log file name.
1228
1229              BOOTROM: The bootrom value is optional, and is the name  of  the
1230              ROM  image  to  load. Note that this feature is only implemented
1231              for the PCI version of the NE2000.
1232
1233              Examples:
1234                ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=fbsd,
1235              ethdev=xlo
1236                ne2k:   ioaddr=0x300,   irq=9,   mac=b0:c4:20:00:00:00,   eth‐
1237              mod=linux, ethdev=eth0
1238                ne2k:   ioaddr=0x300,   irq=9,   mac=b0:c4:20:00:00:01,   eth‐
1239              mod=win32, ethdev=MYCARD
1240                ne2k:  ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap,
1241              ethdev=tap0
1242                ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01,  ethmod=tun‐
1243              tap, ethdev=/dev/net/tun0, script=./tunconfig
1244                ne2k:  ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vde,
1245              ethdev="/tmp/vde.ctl"
1246                ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vnet,
1247              ethdev="c:/temp"
1248                ne2k: mac=b0:c4:20:00:00:01, ethmod=socket, ethdev=40000 # use
1249              localhost
1250                ne2k:   mac=b0:c4:20:00:00:01,   ethmod=socket,   ethdev=myma‐
1251              chine:40000
1252                ne2k:  mac=b0:c4:20:00:00:01, ethmod=slirp, script=slirp.conf,
1253              bootrom=ne2k_pci.rom
1254
1255
1256       pcipnic:
1257              To support the Bochs/Etherboot pseudo-NIC, Bochs  must  be  com‐
1258              piled  with  the  --enable-pnic configure option. It accepts the
1259              same syntax (for mac, ethmod, ethdev, script, bootrom) and  sup‐
1260              ports the same networking modules as the NE2000 adapter.
1261
1262              Example:
1263                pnic: enabled=1, mac=b0:c4:20:00:00:00, ethmod=vnet
1264
1265
1266       e1000: To  support the Intel(R) 82540EM Gigabit Ethernet adapter, Bochs
1267              must be compiled with the --eanble-e1000 configure  option.  The
1268              E1000  accepts the same syntax (for mac, ethmod, ethdev, script,
1269              bootrom) and supports the same networking modules as the  NE2000
1270              adapter.
1271
1272              Example:
1273                e1000:    enabled=1,    mac=52:54:00:12:34:56,   ethmod=slirp,
1274              script=slirp.conf
1275
1276
1277       usb_uhci:
1278              This option controls the presence of the USB root hub which is a
1279              part of the i440FX PCI chipset. With the portX parameter you can
1280              connect  devices  to  the  hub  (currently  supported:  'mouse',
1281              'tablet',   'keypad',   'disk',  'cdrom',  'floppy',  'hub'  and
1282              'printer').
1283
1284              If you connect the mouse or tablet to one of  the  ports,  Bochs
1285              forwards  the  mouse  movement data to the USB device instead of
1286              the selected mouse type.  When connecting the keypad to  one  of
1287              the ports, Bochs forwards the input of the numeric keypad to the
1288              USB device instead of the PS/2 keyboard.
1289
1290              To connect a 'flat' mode image as a USB hardisk you can use  the
1291              'disk' device with the path to the image separated with a colon.
1292              To use other disk image modes similar to ATA  disks  the  syntax
1293              'disk:mode:filename' must be used (see below).
1294
1295              To  emulate  a USB cdrom you can use the 'cdrom' device name and
1296              the path to an ISO image or raw device name also separated  with
1297              a  colon.  An  option  to insert/eject media is available in the
1298              runtime configuration.
1299
1300              To emulate a USB floppy you can use the 'floppy' device with the
1301              path to the image separated with a colon. To use the VVFAT image
1302              mode   similar    to    the    legacy    floppy    the    syntax
1303              'floppy:vvfat:directory' must be used (see below).  An option to
1304              insert/eject media is available in the runtime configuration.
1305
1306              The device name 'hub' connects an external hub with max. 8 ports
1307              (default: 4) to the root hub. To specify the number of ports you
1308              have to add the value separated with a colon. Connecting devices
1309              to  the external hub ports is only available in the runtime con‐
1310              figuration.
1311
1312              The device 'printer' emulates the HP Deskjet 920C  printer.  The
1313              PCL data is sent to a file specified in bochsrc.txt. The current
1314              code appends the PCL code  to  the  file  if  the  file  already
1315              existed. The output file can be changed at runtime.
1316
1317              The optionsX parameter can be used to assign specific options to
1318              the device connected to the corresponding  USB  port.  Currently
1319              this feature is used to set the speed reported by device ('low',
1320              'full', 'high' or 'super'). The available speed  choices  depend
1321              on  both HC and device. The option 'debug' turns on debug output
1322              for the device at connection time.  For the  USB  'disk'  device
1323              the  optionsX  parameter  can  be used to specify an alternative
1324              redolog file (journal) of some image modes. For 'vvfat' mode USB
1325              disks  the  optionsX  parameter  can be used to specify the disk
1326              size (range 128M ... 128G). If the size  is  not  specified,  it
1327              defaults  to  504M.   For  the  USB 'floppy' device the optionsX
1328              parameter can be used to specify an alternative device ID to  be
1329              reported.  Currently only the model "teac" is supported (can fix
1330              hw detection in some guest OS). The USB floppy also accepts  the
1331              parameter  "write_protected" with valid values 0 and 1 to select
1332              the access mode (default is 0).
1333
1334              Examples:
1335                usb_uhci: enabled=1, port1=mouse, port2=disk:usbstick.img
1336                usb_uhci:  enabled=1,   port1=hub:7,   port2=disk:growing:usb‐
1337              disk.img
1338                usb_uhci:      enabled=1,     port2=disk:undoable:usbdisk.img,
1339              options2=journal:redo.log
1340                usb_uhci:         enabled=1,          port2=disk:usbdisk2.img,
1341              options2=sect_size:1024
1342                usb_uhci:          enabled=1,          port2=disk:vvfat:vvfat,
1343              options2="debug,speed:full"
1344                usb_uhci:       enabled=1,        port1=printer:printdata.bin,
1345              port2=cdrom:image.iso
1346                usb_uhci:        enabled=1,       port2=floppy:vvfat:diskette,
1347              options2="model:teac"
1348
1349
1350       usb_ohci:
1351              This option controls the presence of  the  USB  OHCI  host  con‐
1352              troller  with a 2-port hub. The portX parameter accepts the same
1353              device types with the same syntax as the  UHCI  controller  (see
1354              above). The optionsX parameter is also available on OHCI.
1355
1356              Example:
1357                usb_ohci: enabled=1
1358
1359
1360       usb_ehci:
1361              This  option  controls  the  presence  of the USB EHCI host con‐
1362              troller with a 6-port hub. The portX parameter accepts the  same
1363              device  types  with  the same syntax as the UHCI controller (see
1364              above). The optionsX parameter is also available on EHCI.
1365
1366              Example:
1367                usb_ehci: enabled=1, port1=tablet, options1="speed:high"
1368
1369
1370       usb_xhci:
1371              This option controls the presence of  the  USB  xHCI  host  con‐
1372              troller  with a 4-port hub. The portX parameter accepts the same
1373              device types with the same syntax as the  UHCI  controller  (see
1374              above).  The optionsX parameter is also available on xHCI. NOTE:
1375              port 1 and 2 are USB3 and only support super-speed devices,  but
1376              port  3  and 4 are USB2 and support speed settings low, full and
1377              high.
1378
1379              Example:
1380                usb_xhci: enabled=1
1381
1382
1383       pcidev:
1384              Enables the mapping of a host PCI hardware device within the PCI
1385              subsystem of the Bochs x86 emulator. This feature requires Linux
1386              as a host OS.
1387
1388              Example:
1389                pcidev: vendor=0x1234, device=0x5678
1390
1391              The vendor and device arguments should  contain  the  vendor  ID
1392              respectively  the  device  ID  of the PCI device you want to map
1393              within Bochs.  The PCI mapping is still  very  experimental  and
1394              not maintained yet.
1395
1396
1397       user_plugin:
1398              Load user-defined plugin. This option is available only if Bochs
1399              is compiled with plugin support. Maximum 8 different plugins are
1400              supported.   See the example in the Bochs sources how to write a
1401              plugin device.
1402
1403              Example:
1404                user_plugin: name=testdev
1405
1406

LICENSE

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

AVAILABILITY

1414       The latest version of this program can be found at:
1415         http://bochs.sourceforge.net/getcurrent.html
1416

SEE ALSO

1418       bochs(1), bochs-dlx(1), bximage(1)
1419
1420       The Bochs IA-32 Emulator site on the World Wide Web:
1421               http://bochs.sourceforge.net
1422
1423       Online Bochs Documentation
1424            http://bochs.sourceforge.net/doc/docbook
1425

AUTHORS

1427       The    Bochs   emulator  was   created   by  Kevin   Lawton (kevin@man‐
1428       drakesoft.com),  and  is  currently  maintained by the  members of  the
1429       Bochs  x86  Emulator  Project.  You can see a current roster of members
1430       at:
1431         http://bochs.sourceforge.net/getinvolved.html
1432

BUGS

1434       Please  report all  bugs to the bug tracker  on  our  web site. Just go
1435       to http://bochs.sourceforge.net, and click "Bug Reports" on the sidebar
1436       under "Feedback".
1437
1438       Provide a detailed description of the bug, the version of  the  program
1439       you  are  running,  the operating system you are running the program on
1440       and  the  operating   system  you are running in the emulator.
1441
1442
1443
1444
1445
1446bochsrc                           01 Jan 2020                       bochsrc(5)
Impressum