Bochs User Manual

Kevin Lawton

Bryce Denney

N. David Guarneri

Volker Ruppert

Christophe Bothamy

Edited by

Michael Calabrese


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. Building an RPM on Linux
3.4.13. Compile Problems
4. Setup
4.1. What does Bochs need?
4.2. bochsrc
4.2.1. romimage
4.2.2. megs
4.2.3. optromimage1, optromimage2, optromimage3 or optromimage4
4.2.4. vgaromimage
4.2.5. floppya/floppyb
4.2.6. ata0, ata1, ata2, ata3
4.2.7. ata0-master, ata0-slave, ata1-*, ata2-*, ata3-*
4.2.8. newharddrivesupport
4.2.9. boot
4.2.10. floppy_bootsig_check
4.2.11. config_interface
4.2.12. display_library
4.2.13. log
4.2.14. logprefix
4.2.15. debug/info/error/panic
4.2.16. debugger_log
4.2.17. com1
4.2.18. parport1
4.2.19. sb16
4.2.20. vga_update_interval
4.2.21. keyboard_serial_delay
4.2.22. keyboard_paste_delay
4.2.23. floppy_command_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. ne2k
4.2.32. keyboard_mapping
4.2.33. keyboard_type
4.2.34. user_shortcut
4.2.35. cmosimage
4.2.36. diskc/diskd
4.2.37. cdromd
4.2.38. pit
4.2.39. time0
4.3. Sound Blaster 16 Emulation
4.3.1. Configuring From Source
4.3.2. How well does it work?
4.3.3. Output to a sound card
4.3.4. Installation on Linux
4.3.5. Configuring bochs
4.3.6. Runtime configuration
4.3.7. Features planned for the future
4.3.8. 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
6. Common problems and what to do about them (Troubleshooting)
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. Instrumentation
8.11.8. Instrumentation commands
8.11.9. New Commands
8.11.10. 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 cdroms
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. Disk Image Modes
8.17.1. flat
8.17.2. concat
8.17.3. external/dll
8.17.4. sparse
8.17.5. vmware3
8.17.6. undoable
8.17.7. growing
8.17.8. volatile
8.18. Using the bximage tool
8.19. Using the bxcommit tool
9. Guest operating systems
9.1. Linux
9.2. Minix
9.3. OpenBSD
9.4. FreeBSD
9.5. FreeDOS Beta 8
9.6. GNU (Also known as GNU/Hurd)
9.6.1. Installing GNU
9.7. DOS
9.7.1. Accessing your CDROM
9.8. Windows 95
9.8.1. How to Install Windows 95 with floppies
9.8.2. Installing a Japanese version of Windows 95
9.8.3. VLB-IDE support
9.9. Windows NT 4.0
9.10. Windows 98
9.10.1. Windows 98 Method 1: mcopy Windows 98 into Hard Disk Image (Linux Host)
9.10.2. Locating Your Partitions
9.10.3. Cleaning Up Your MS Windows Partition
9.10.4. Mounting Your Windows Partition
9.10.5. Choosing the Size of Your Disk Image
9.10.6. Setting Up the Disk Image
9.10.7. Create the .bochsrc Configuration File
9.10.8. Make Hard Disk Image Acessible by Mtools
9.10.9. Format Partition and Copy Files
9.10.10. The Fun Begins
9.10.11. Windows 98 Method 2: Classic Install (Linux Host)
9.10.12. Saving Your Windows 98 CD as a Disk Image
9.10.13. Making the Windows 98 Hard Disk Image
9.10.14. Create the .bochsrc Configuration File
9.10.15. Create the Primary DOS Partition and set it Active
9.10.16. Formatting the Disk Image
9.10.17. Starting the Installation
9.11. Windows ME
9.11.1. Installing Windows ME
9.12. Windows 2000
9.13. Windows 2000 Server
9.14. Windows XP
9.15. 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. ata devices configuration options
4-2. display_library values
4-3. Example IPS Settings
4-4. Ethernet modules
4-5. BX_KEY constants
5-1. command line arguments
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