Bochs User Manual

Kevin Lawton

Bryce Denney

N. David Guarneri

Volker Ruppert

Christophe Bothamy

Edited by

Michael Calabrese

Stanislav Shwartsman


Table of Contents
1. Introduction to Bochs
1.1. What is Bochs?
1.2. Who uses Bochs?
1.3. Is Bochs right for me?
1.4. Will it work for me?
1.5. Bochs License
1.6. Third Party Software Licensing and Temporary Files
1.7. Features
1.8. Supported Platforms
1.9. FAQ
2. Release Notes
3. Installation
3.1. Downloading Bochs
3.2. Tracking the source code with CVS
3.2.1. Checking out Bochs
3.2.2. Getting the Latest Version
3.2.3. Getting a Release Version
3.2.4. More about CVS
3.3. Installing a Binary
3.3.1. Windows
3.3.2. Linux RPM
3.3.3. MacOS X DMG
3.4. Compiling Bochs
3.4.1. Standard Compile
3.4.2. Configure Options
3.4.3. Transcript of Successful Compilation
3.4.4. Compiling on Win32 with Microsoft VC++
3.4.5. Compiling on Win32 with Cygwin
3.4.6. Compiling on MacOS 9 with CodeWarrior
3.4.7. Compiling on MacOS X
3.4.8. Compiling on BeOS
3.4.9. Compiling on Amiga/MorphOS
3.4.10. Compiling with the RFB interface
3.4.11. Compiling with the SDL interface
3.4.12. Compiling with the wxWidgets interface
3.4.13. Building an RPM on Linux
3.4.14. Compile Problems
4. Setup
4.1. What does Bochs need?
4.2. bochsrc
4.2.1. megs
4.2.2. cpu
4.2.3. romimage
4.2.4. optromimage1, optromimage2, optromimage3 or optromimage4
4.2.5. vgaromimage
4.2.6. vga
4.2.7. floppya/floppyb
4.2.8. ata0, ata1, ata2, ata3
4.2.9. ata0-master, ata0-slave, ata1-*, ata2-*, ata3-*
4.2.10. boot
4.2.11. floppy_bootsig_check
4.2.12. config_interface
4.2.13. display_library
4.2.14. log
4.2.15. logprefix
4.2.16. debug/info/error/panic
4.2.17. debugger_log
4.2.18. com[1-4]
4.2.19. parport[1-2]
4.2.20. sb16
4.2.21. vga_update_interval
4.2.22. keyboard_serial_delay
4.2.23. keyboard_paste_delay
4.2.24. ips
4.2.25. clock
4.2.26. mouse
4.2.27. private_colormap
4.2.28. i440fxsupport
4.2.29. pcidev
4.2.30. usb1
4.2.31. gdbstub
4.2.32. ne2k
4.2.33. keyboard_mapping
4.2.34. keyboard_type
4.2.35. user_shortcut
4.2.36. cmosimage
4.2.37. magic_break
4.3. Sound Blaster 16 Emulation
4.3.1. How well does it work?
4.3.2. Output to a sound card
4.3.3. Installation on Linux
4.3.4. Features planned for the future
4.3.5. Description of the sound output classes
4.4. How to write your own keymap table
5. Using Bochs
5.1. Command line arguments
5.2. Search order for the configuration file
5.3. The configuration interface 'textconfig'
5.3.1. The start menu
5.3.2. The Bochs headerbar
5.3.3. The runtime configuration
5.4. Save and restore simulation
6. Common problems and what to do about them (Troubleshooting)
6.1. Bochs panics! What can I do?
6.2. Mouse behavior, enabling and disabling
6.3. Text-mode is broken in some ancient DOS program
7. Mailing Lists
7.1. bochs-developers mailing list
7.2. bochs-announce mailing list
7.3. bochs-cvs mailing list
7.4. Mailing List Etiquette
8. Tips and Techniques
8.1. How to make a simple disk image
8.1.1. Create a flat image
8.1.2. Partition and format your image file
8.2. Use mtools to manipulate disk images
8.3. Bochs GNU/Linux DiskTools
8.4. Win32 only: Tools to manipulate disk images
8.4.1. Winimage
8.4.2. DiskExplorer
8.4.3. Ben Lunt's MTOOLs for Bochs and Win32 and/or DOS
8.5. X Windows: Color allocation problems
8.6. Screen saver turns on too quickly
8.7. Mounting a disk image using the loop device
8.7.1. ...on Linux
8.7.2. ...on FreeBSD
8.8. Simulating a Symmetric Multiprocessor (SMP) Machine
8.9. Setting Up Networking in DLX Linux
8.10. Configuring and using a tuntap network interface
8.10.1. Tuntap description
8.10.2. Set up the linux Kernel [1]
8.10.3. Configure Bochs to use the tuntap interface
8.10.4. Set up the private network between the host and the guest
8.10.5. Set up the host to masquerade the guest network accesses
8.11. Using Bochs internal debugger
8.11.1. Execution Control
8.11.2. BreakPoints
8.11.3. Manipulating Memory
8.11.4. Info commands
8.11.5. Manipulating CPU Registers
8.11.6. Disassembly commands
8.11.7. Instruction tracing
8.11.8. Instrumentation
8.11.9. Instrumentation commands
8.11.10. Other Commands
8.11.11. Related links
8.12. Using Bochs and the remote GDB stub
8.12.1. Configuring Bochs
8.12.2. Running Bochs
8.12.3. Running GDB
8.13. Using the serial port
8.13.1. Logging serial port output to a file
8.13.2. Interactivity : connecting to a virtual terminal
8.13.3. Interactivity : connecting to a pseudo terminal
8.14. BIOS Tips
8.14.1. Booting from CD-ROMs
8.14.2. Disk translation
8.15. How to enter special key combination
8.16. Notes about VESA usage
8.16.1. Instructions to setup Bochs VBE in Windows Guest OS
8.17. Notes about Cirrus SVGA usage
8.18. Disk Image Modes
8.18.1. flat
8.18.2. concat
8.18.3. external/dll
8.18.4. sparse
8.18.5. vmware3/vmware4
8.18.6. undoable
8.18.7. growing
8.18.8. volatile
8.19. Using the bximage tool
8.20. Using the bxcommit tool
9. Guest operating systems
9.1. Linux
9.2. Knoppix
9.2.1. Getting Knoppix
9.2.2. Preparing Bochs
9.2.3. Using Knoppix
9.3. Minix
9.4. OpenBSD
9.5. FreeBSD 5.2.1
9.5.1. Getting FreeBSD
9.5.2. Preparing Bochs
9.5.3. Installing FreeBSD
9.5.4. Post-installation configuration
9.5.5. Using FreeBSD
9.6. FreeDOS Beta 8
9.7. GNU (Also known as GNU/Hurd)
9.7.1. Installing GNU
9.8. DOS
9.8.1. Accessing your CDROM
9.8.2. SB16 driver for DOS
9.8.3. Bootdisks of early DOS versions
9.9. Windows 95
9.9.1. How to Install Windows 95 with floppies
9.9.2. Installing a Japanese version of Windows 95
9.10. Windows NT 4.0
9.11. Windows 98
9.11.1. Windows 98 Method 1: mcopy Windows 98 into Hard Disk Image (Linux Host)
9.11.2. Locating Your Partitions
9.11.3. Cleaning Up Your MS Windows Partition
9.11.4. Mounting Your Windows Partition
9.11.5. Choosing the Size of Your Disk Image
9.11.6. Setting Up the Disk Image
9.11.7. Create the .bochsrc Configuration File
9.11.8. Make Hard Disk Image Acessible by Mtools
9.11.9. Format Partition and Copy Files
9.11.10. The Fun Begins
9.11.11. Windows 98 Method 2: Classic Install (Linux Host)
9.11.12. Saving Your Windows 98 CD as a Disk Image
9.11.13. Making the Windows 98 Hard Disk Image
9.11.14. Create the .bochsrc Configuration File
9.11.15. Create the Primary DOS Partition and set it Active
9.11.16. Formatting the Disk Image
9.11.17. Starting the Installation
9.12. Windows ME
9.12.1. Installing Windows ME
9.13. Windows 2000
9.14. Windows 2000 Server
9.15. Windows XP
9.16. SCO OpenServer 5.0.5
List of Tables
1-1. Bochs Features
1-2. Supported platforms
3-1. Status letters in a CVS update
3-2. CVS Release Tags
3-3. Files in Bochs directory (Windows version)
3-4. Files in RPM package
3-5. Installed files
3-6. Defaults by Platform
3-7. Configure Options to Select the Display Library (optional)
3-8. Configure Options
4-1. Example IPS Settings
4-2. ata devices configuration options
4-3. display_library values
4-4. Ethernet modules
4-5. Supported options for sb16ctl
4-6. BX_KEY constants
5-1. command line arguments
6-1. Device prefixes
8-1. CD Boot error codes
8-2. Disk translation algorithms
8-3. Supported Disk Modes
List of Figures
3-1. Checking out Bochs in CVS
3-2. Installing an RPM in Linux
3-3. Screenshot of Bochs running DLX Linux