.\Document Author: Timothy R. Butler - tbutler@uninetsolutions.com .TH bochsrc 1 "The Bochs Project bochsrc 2 Jun 2001" .\"SKIP_SECTION" .SH NAME bochsrc \- Configuration file for Bochs. .\"SKIP_SECTION" .SH DESCRIPTION .LP 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 directory. .\".\"DONT_SPLIT" .SH OPTIONS .TP .I "romimage:" You need to load a ROM BIOS into F0000-FFFFF. The BIOS controls what the PC does when it first powers on. Normally, you can use a precompiled BIOS in the .B bios/ directory, named BIOS-bochs-latest. Example: romimage: file=bios/BIOS-bochs-970717 .TP .I "megs:" Set this to the default number of Megabytes of memory you want to emulate. You may also pass the .B 'megs:N' option to bochs. The default is 32MB, since most OS's won't need more than that. Example: megs: 32 .TP .I "vgaromimage:" You also need to load a VGA ROM BIOS into C0000. Example: vgaromimage: bios/VGABIOS-elpin-2.40 .TP .I "floppya:" or .I "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'. Example: 2.88M 3.5" Floppy: floppya: 2_88=path, status=ejected 1.44M 3.5" Floppy: floppya: 1_44=path, status=inserted 1.2M 5.25" Floppy: floppyb: 1_2=path, status=ejected 720K 3.5" Floppy: floppya: 720k=path, status=inserted .TP .I "diskc:" or .I "diskd:" Point this at the disk image you want to use as for a hard disk. If you use bximage(1) to create the image, it will give you the required cyl, head, and spt information. diskc is the first hard drive, and diskd is the second hard drive. .B NOTE: You cannot use both diskd and cdromd together. Example: diskc: file=10M.i, cyl=306, heads=4, spt=17 diskc: file=112M.i, cyl=900, heads=15, spt=17 diskd: file=483.i, cyl=1024, heads=15, spt=63 .TP .I "cdromd:" Point this to a pathname of a raw CD-ROM device. There is no cdromc option, only cdromd. .B NOTE: You cannot use both diskd and cdromd together. Example: cdromd: dev=/dev/cdrom, status=inserted cdromd: dev=/dev/cdrom, status=ejected .TP .I "newharddrivesupport:" This setting enables support for large hard disks, better CD recognition, and various other useful functions. You can set it to "enabled=1" (on) or "enabled=0" (off). It is recommended that this setting is left on unless you are having trouble with it. Example: newharddrivesupport: enabled=1 .TP .I "boot:" This defines your boot drive. You can either boot from 'a' or 'c'. Example: boot: c .TP .I "log:" Give the path of the log file you'd like Bochs debug and misc. verbage to be written to. If you really don't want it, make it /dev/null. Example: log: bochs.out log: /dev/tty (unix only) log: /dev/null (unix only) .TP .I "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." Example: panic: action=fatal .TP .I "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). Example: error: action=report .TP .I "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. Example: info: action=report .TP .I "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. .B NOTE: When action=report, Bochs may spit out thousands of debug messages per second, which can impact performance and fill up your disk. Example: debug: action=ignore .TP .I "sb16:" This defines the SB16 sound emulation. It can have several of the following properties. All properties are in this format: sb16: property=value .B PROPERTIES FOR sb16: midi: 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. midimode: 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). wave: This is the device/file where wave output is stored. wavemode: 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. log: The file to write the sb16 emulator messages to. loglevel: 0 = No log. 1 = Only 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. dmatimer: Microseconds per second for a DMA cycle. Make it smaller to fix non-continous sound. 750000 is usually a good value. This needs a reasonably correct setting for IPS (see below). Example: sb16: midimode=1, midi=/dev/midi00, wavemode=1, wave=/dev/dsp, loglevel=2, log=sb16.log, dmatimer=600000 .B NOTE: The example is wrapped onto three lines for formatting reasons, but it should all be on one line in the actual bochsrc file. .TP .I "vga_update_interval:" Video memory is scanned for updates and screen updated every so many virtual seconds. The default is 300000, about 3Hz. This is generally plenty. Keep in mind that you must tweak the 'ips:' directive to be as close to the number of emulated instructions-per-second your workstation can do, for this to be accurate. Example: vga_update_interval: 250000 .TP .I "keyboard_serial_delay:" Approximate time in microseconds that it takes one character to be transfered from the keyboard to controller over the serial path. Example: keyboard_serial_delay: 200 .TP .I "floppy_command_delay:" Time in microseconds to wait before completing some floppy commands such as read, write, seek, etc., which normally have a delay associated. This was previous hardwired to 50,000. Example: floppy_command_delay: 50000 .TP .I "ips:" Emulated Instructions Per Second. This is the number of IPS that bochs is capable of running on your machine. You can recompile Bochs, using instructions included in config.h (in the source code), to find your workstation's capability. 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] Machine Mips --------------------------------------------------- 650Mhz Athlon K-7 with Linux 2.4.x 2 to 2.5 400Mhz Pentium II with Linux 2.0.x 1 to 1.8 166Mhz 64bit Sparc with Solaris 2.x 0.75 200Mhz Pentium with Linux 2.x 0.5 [1] Mips are dependant on OS and compiler configuration in addition to processor clock speed. Example: ips: 1000000 .TP .I "mouse:" This option prevents Bochs from creating mouse "events" unless a mouse is enabled. The hardware emulation itself is not disabled by this. You can turn the mouse on by setting enabled to 1, or turn it off by setting enabled to 0. Unless you have a particular reason for enabling the mouse by default, it is recommended that you leave it off. Example: mouse: enabled=1 mouse: enabled=0 .TP .I "private_colormap:" 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. Example: private_colormap: enabled=1 .\"SKIP_SECTION" .SH LICENSE This program is distributed under the terms of the GNU Lesser General Public License as published by the Free Software Foundation. See the COPYING file located in /usr/local/bochs/@VERSION@/ for details on the license and the lack of warrantee. .\"SKIP_SECTION" .SH AVAILABILITY The latest version of this program can be found at: http://bochs.sourceforge.net/getcurrent.html .\"SKIP_SECTION" .SH SEE ALSO bochs(1), bochs-dlx(1), bximage(1) .PP .nf The Bochs IA-32 Emulator site on the World Wide Web: http://bochs.sourceforge.net The Getting Started Guide for Bochs on Linux: /usr/local/bochs/@VERSION@/DOC-linux.html .fi .\"SKIP_SECTION" .SH AUTHORS The Bochs emulator was created by Kevin Lawton (kevin@mandrakesoft.com), and is currently maintained by the members of the Bochs x86 Emulator Project. You can see a current roster of members at: http://bochs.sourceforge.net/getinvolved.html .\"SKIP_SECTION" .SH BUGS Please report all bugs to the bug tracker on our web site. Just go to http://bochs.sourceforge.net, and click "Bug Reports" on the sidebar under "Features." .PP 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.