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.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
3.5. Installing the VGA font (X windows only)
3.5.1. Option 1: Installing VGA font in global font directory
3.5.2. Option 2: Installing VGA font in local font directory
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. diskc/diskd
4.2.9. cdromd
4.2.10. newharddrivesupport
4.2.11. boot
4.2.12. floppy_bootsig_check
4.2.13. config_interface
4.2.14. display_library
4.2.15. log
4.2.16. logprefix
4.2.17. debug/info/error/panic
4.2.18. debugger_log
4.2.19. com1
4.2.20. parport1
4.2.21. sb16
4.2.22. vga_update_interval
4.2.23. keyboard_serial_delay
4.2.24. keyboard_paste_delay
4.2.25. floppy_command_delay
4.2.26. ips
4.2.27. pit
4.2.28. mouse
4.2.29. private_colormap
4.2.30. i440fxsupport
4.2.31. time0
4.2.32. ne2k
4.2.33. keyboard_mapping
4.2.34. keyboard_type
4.2.35. user_shortcut
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
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 disk image
8.2. Use mtools to manipulate disk images
8.3. Win32 only: Use winimage to manipulate disk images
8.4. X Windows: Color allocation problems
8.5. Screen saver turns on too quickly
8.6. Linux: Mounting a disk image using the loop device
8.7. Simulating a Symmetric Multiprocessor (SMP) Machine
8.8. Setting Up Networking in DLX Linux
8.9. Configuring and using a tuntap network interface
8.9.1. Tuntap description
8.9.2. Set up the linux Kernel [1]
8.9.3. Configure Bochs to use the tuntap interface
8.9.4. Set up the private network between the host and the guest
8.9.5. Set up the host to masquerade the guest network accesses
8.10. Using Bochs internal debugger
8.10.1. Execution Control
8.10.2. BreakPoints
8.10.3. Manipulating Memory
8.10.4. Info commands
8.10.5. Manipulating CPU Registers
8.10.6. Disassembly commands
8.10.7. Instrumentation
8.10.8. Instrumentation commands
8.10.9. New Commands
8.10.10. Resource file extensions
8.10.11. Related links
8.11. Using Bochs and the remote GDB stub
8.11.1. Configurating Bochs
8.11.2. Running Bochs
8.11.3. Running GDB
8.12. Using the serial port
8.12.1. Logging serial port output to a file
8.12.2. Interactivity : connecting to a virtual terminal
8.12.3. Interactivity : connecting to a pseudo terminal
8.13. Bios Tips
8.13.1. CD Boot error codes
8.13.2. Disk translation
8.14. How to enter special key combination
8.15. Notes about VESA usage
9. Guest operating systems
9.1. Linux
9.2. Minix
9.3. OpenBSD
9.4. FreeBSD
9.5. FreeDOS
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
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 RPM package
3-4. Defaults by Platform
3-5. Configure Options to Select the Display Library (optional)
3-6. Configure Options
4-1. ata devices configuration options
4-2. display_library values
4-3. Example IPS Settings
4-4. BX_KEY constants
8-1. CD Boot error codes
8-2. Disk translation algorithms
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