From 6aa9c11e0080cbe0fe804f0e2d9305a1df1307bd Mon Sep 17 00:00:00 2001 From: Bryce Denney Date: Tue, 5 Nov 2002 17:45:05 +0000 Subject: [PATCH] - revert back to 1.51 since David accidently removed Christophe's changes --- bochs/doc/docbook/user/user.dbk | 1684 +++++++++++++++++++------------ 1 file changed, 1049 insertions(+), 635 deletions(-) diff --git a/bochs/doc/docbook/user/user.dbk b/bochs/doc/docbook/user/user.dbk index d8fb85582..c4acfb04a 100644 --- a/bochs/doc/docbook/user/user.dbk +++ b/bochs/doc/docbook/user/user.dbk @@ -1,7 +1,7 @@ -
Features +
Features The following table shows the features of Bochs and which platforms they currently work with. @@ -324,6 +324,12 @@ currently work with. Uses software floating point routines written by Bill Metzenthen + + Enhanced BIOS + Yes + Implements specifications ElTorito, EDD v3.0, PCI32 directory service + + VGA Yes @@ -333,22 +339,43 @@ currently work with. Floppy disk Yes - Supports floppy disk images on all platforms: 1.44M 3.5", 1.2M 5.25", and 720K 3.5". On Unix and Windows NT/2000, Bochs can access the physical floppy drive. + Supports floppy disk images on all platforms: 1.44M 3.5", 1.2M 5.25", and 720K 3.5". + On Unix and Windows NT/2000, Bochs can access the physical floppy drive. + + + + Multiple ATA channels + Yes + Emulates up to 4 (four) ATA channels. Up to 8 (height)ATA/ATAPI emulated devices can be attached, + two per ATA channel. + So you can have eight hard disks or seven hard disks and a cdrom or four hard disks and four cdroms, or one + hard disk and seven cdroms, etc... Hard disk Yes - Emulates one or two AT/IDE hard drives via image files. No physical - hard disk access is supported, primarily for safety reasons. Only two - IDE devices, total, are supported. So you can have two hard disks, - or one hard disk and one CDROM. + Emulates ATA-2/IDE hard drives via image files. Physical + hard disk access is supported on some architecture, but NOT recommended, primarily for safety reasons. + Hard disk up to 32GB are supported, on any platform that support large files access. + + + + CDROM + Yes + Emulates ATAPI-4/IDE CDROM. The CDROMs can read from an ISO disk image + on any platform. On Windows (95/98/NT/2000), Linux, SunOS, FreeBSD, + NetBSD, Amiga/MorphOS, and BeOS, Bochs can read from the physical cdrom. + Starting with version 1.4, Bochs is even able to boot from a bootable cd + or bootable iso image. Keyboard Yes - Emulates a PS/2 keyboard with North American key mappings. Keyboards with other key mappings are reported to have problems with special keys and punctuation. + Emulates a PS/2 keyboard with North American key mappings. Optional keyboard layout + remapping files are provided to support localized keyboard in X11 (german, french, italian, spanish, + danish, swedish) @@ -363,8 +390,11 @@ currently work with. Emulates an NE2000 compatible network card. On Windows NT/2000, Linux, FreeBSD, and NetBSD, Bochs will forward packets to and from the operating system so that the guest OS can talk on the physical network. - Unfortunately, with the current implementation, the guest OS can talk - to any machine on the network BUT NOT the host machine. + Unfortunately, with the current implementation (except linux), the guest + OS can talk to any machine on the network BUT NOT the host machine. + On linux, with the tuntap interface, there is no such limitations, and + the host machine may even be configured as a router so the guest os has access + to the internet (see for configuration instructions). @@ -393,6 +423,13 @@ currently work with. some work before it can talk to a raw serial port or to a pseudo terminal. + + PCI + incomplete + The Host-to-PCI bridge, and Primary Memory Controller are available. + However, PCI-to-IDE, PCI-to-USB, or other PCI cards are not implemented yet. + + 16/32 bit addressing Yes @@ -438,13 +475,23 @@ currently work with. will not run any faster on multiprocessor hardware. + + Copy and Paste + Yes + Text-mode screen text + can be exported to the clipboard. Text in the clipboard can also be pasted, through Bochs, + to the guest OS, as simulated keystrokes. + +
Supported Platforms - + + &FIXME; should add a column with supported display library (X11, SDL, wx, etc...) + Supported platforms @@ -605,7 +652,7 @@ Steve Chamberlain and now maintained by RedHat. Download it from--you guessed i Yes. For instructions on joining, refer to - + @@ -614,7 +661,7 @@ Steve Chamberlain and now maintained by RedHat. Download it from--you guessed i Is there an irc channel for bochs? - Not that I am aware of. + Yes. You will usually find Bochs developers and users on irc at irc.openprojects.net:6667, channel #bochs @@ -2331,15 +2378,44 @@ default is 32, since most operating systems won't need more than that. +
optromimage1, optromimage2, optromimage3 or optromimage4 + +Example: + + optromimage1: file=optionalrom.bin, address=0xd0000 + + + This enables Bochs to load up to 4 optional ROM images. + + +Be sure to use a +read-only area, typically between C8000 and EFFFF. These optional +ROM images should not overwrite the rombios (located at +F0000-FFFFF) and the videobios (located at C0000-C7FFF). + + +Those ROM images will be initialized by the bios if they contain + + +the right signature (0x55AA). + + +It can also be a convenient way to upload some arbitary code/data +in the simulation, that can be retrieved by the boot loader + +
+
vgaromimage Examples: vgaromimage: bios/VGABIOS-elpin-2.40 + vgaromimage: bios/VGABIOS-lgpl-latest -You also need to load a VGA ROM BIOS at 0xC0000. A VGA BIOS file from -Elpin Systems, Inc. is provided in the source and binary distributions. +You also need to load a VGA ROM BIOS at 0xC0000. + A VGA BIOS file from Elpin Systems, Inc. is provided in the source and binary distributions. + A free LGPL'd VGA BIOS is also provided in the source and binary distributions.
floppya/floppyb @@ -2369,8 +2445,116 @@ to ever write ejected in your bochsrc.
+
ata0, ata1, ata2, ata3 + +Examples: + +ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 +ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15 +ata2: enabled=1, ioaddr1=0x1e8, ioaddr2=0x3e8, irq=11 +ata3: enabled=1, ioaddr1=0x168, ioaddr2=0x368, irq=9 + + +These options enables up to 4 ata channels. For each channel +the two base io addresses and the irq must be specified. +ata0 is enabled by default, with ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 + + +
+ +
ata0-master, ata0-slave, ata1-*, ata2-*, ata3-* + +Examples: + +ata0-master: type=disk, path=10M.img, cylinders=306, heads=4, spt=17, translation=none +ata1-master: type=disk, path=2GB.img, cylinders=5242, heads=16, spt=50, translation=echs +ata1-slave: type=disk, path=3GB.img, cylinders=6541, heads=16, spt=63, translation=auto +ata2-master: type=disk, path=7GB.img, cylinders=14563, heads=16, spt=63, translation=lba +ata2-slave: type=cdrom, path=iso.sample, status=inserted + + + + + + +This defines the type and characteristics of all attached ata devices: +
+ata devices configuration options + + + +Option +Comments +Possible values + + + + type type of attached device [disk|cdrom] + path path of the image + cylinders only valid for disks + heads only valid for disks + spt only valid for disks + status only valid for cdroms [inserted|ejected] + biosdetect type of biosdetection [none|auto], only for disks on ata0 [cmos] + translation type of translation done by the bios (legacy int13), only for disks [none|lba|large|rechs|auto] + model string returned by identify device command +
+ + + +You have to tell the type of the attached device. For Bochs version2.0, it can by disk or cdrom + + + +You have to point the "path" at a hard disk image file, cdrom iso file, +or physical cdrom device. +To create a hard disk image, try running bximage. +It will help you choose the size and then suggest a line that +works with it. + + + +In UNIX it is possible to use a raw device as a Bochs hard disk, +but WE DON'T RECOMMEND IT for safety reasons. + + + +The path, cylinders, heads, and spt are mandatory for type=disk + + +The path is mandatory for type=cdrom + + + +The disk translation scheme (implemented in legacy int13 bios functions, and used by +older operating systems like MS-DOS), can be defined as: + + +none : no translation, for disks up to 528MB (1032192 sectors) + + +large : a standard bitshift algorithm, for disks up to 4.2GB (8257536 sectors) + + +rechs : a revised bitshift algorithm, using a 15 heads fake physical geometry, for disks up to 7.9GB (15482880 sectors). (don't use this unless you understand what you're doing) + + +lba : a standard lba-assisted algorithm, for disks up to 8.4GB (16450560 sectors) + + +auto : autoselection of best translation scheme. (it should be changed if system does not boot) + + + + +
+
diskc/diskd +The diskc and diskd options are deprecated. Use "ataX-*: type=disk,..." +options instead. + + Examples: diskc: file=10M.img, cyl=306, heads=4, spt=17 @@ -2380,8 +2564,9 @@ Examples: The diskc/diskd lines tell Bochs what disk image file to use as the constants of the emulated hard drive, and what geometry it should have. Diskc is the -first hard drive, and diskd is the second hard drive. At present, using a raw -hard drive is NOT SUPPORTED and dangerous to your data. The file should be a +first hard drive, and diskd is the second hard drive. Using a raw +hard drive is possible under on unix but WE DON'T RECOMMEND IT for safety reasons. +The file should be a disk image file, which must be exactly 512*cyl*heads*spt bytes long. The geometry settings are cylinder (cyl), heads, and sectors per track (spt). If you use bximage to create the image, it will give you the required @@ -2396,6 +2581,9 @@ You cannot use both diskd and cdromd together.
cdromd +The cdromd option is deprecated. Use "ataX-*: type=cdrom,..." option instead. + + Examples: cdromd: dev=/dev/cdrom, status=inserted (Unix only) @@ -2430,10 +2618,23 @@ unless you are having trouble with it. Examples: - boot: a - boot: c + boot: floppy + boot: disk + boot: cdrom -This defines your boot drive. You can either boot from 'a' or 'c'. +This defines your boot drive. You can either boot from 'floppy', 'disk' or 'cdrom'. +'c' and 'a' are also accepted for historical reasons. + +
+ +
floppy_bootsig_check + +Example: + + floppy_bootsig_check: disabled=1 + +This disables the 0xaa55 signature check on boot floppies +The check is enabled by default.
@@ -2450,6 +2651,27 @@ written to. If you really don't want it, make it /dev/null.
+
logprefix + +Examples: + + logprefix: %t-%e-@%i-%d + logprefix: %i%e%d + +This handles the format of the string prepended to each log line. +You may use those special tokens : + + %t : 11 decimal digits timer tick + %i : 8 hexadecimal digits of cpu0 current eip + %e : 1 character event type ('i'nfo, 'd'ebug, 'p'anic, 'e'rror) + %d : 5 characters string of the device, between brackets + + + +Default is %t%e%d + +
+
debug/info/error/panic Examples: @@ -2744,6 +2966,7 @@ ne2k: ioaddr=0x280, irq=9, mac=b0:c4:20:00:00:00, ethmod=fbsd, ethdev=xl0 ne2k: ioaddr=0x280, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0 ne2k: ioaddr=0x280, irq=9, mac=b0:c4:20:00:00:01, ethmod=win32, ethdev=MYCARD ne2k: ioaddr=0x280, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0 +ne2k: ioaddr=0x280, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=tun0, script=./tunconfig ioaddr, irc: You probably won't need to change ioaddr and irq, unless there are IRQ conflicts. @@ -2754,11 +2977,26 @@ address), and you cannot use ff:ff:ff:ff:ff:ff because that's the broadcast address. For the ethertap module, you must use fe:fd:00:00:00:01. There may be other restrictions too. To be safe, just use the b0:c4... address. +ethmod: The ethmod value defines which low level OS specific module to be +used to access pysical ethernet interface. Current implemented values include : + - fbsd : ethernet on freebsd and openbsd + - linux : ethernet on linux + - win32 : ethernet on win32 + - tap : ethernet through a linux tap interface + - tuntap : ethernet through a linux tuntap interface + ethdev: The ethdev value is the name of the network interface on your host platform. On UNIX machines, you can get the name by running ifconfig. On Windows machines, you must run niclist to get the name of the ethdev. Niclist source code is in misc/niclist.c and it is included in Windows binary releases. + +script: The script value is optionnal, and is the name of a script that +is executed after bochs initialize the network interface. You can use +this script to configure this network interface, or enable masquerading. +This is mainly useful for the tun/tap devices that only exist during +Bochs execution. The network interface name is supplied to the script +as first parameter
@@ -2791,6 +3029,19 @@ exception is French macs, that do have a "at"-like keyboard.
+
user_shortcut + +Examples: + + user_shortcut: keys=ctrlaltdel + user_shortcut: keys=ctrlaltesc + +This defines the keyboard shortcut to be sent when you press the "user" +button in the headerbar. These shortcuts are currently recognized: +ctrlaltdel, ctrlaltesc, ctrlaltf1, alttab + +
+
How to write your own keymap table @@ -3021,7 +3272,11 @@ your country specific X11 symbols in X11/keysymdef.h. Using Bochs -Resources for users +- using the control panel +- the graphical elements in bochs window +- using plugins ? +- rules to find the bochsrc file +- Resources for users testing status page: tells what has been tried and who got it working search on bochs web site SourceForge @@ -3029,6 +3284,7 @@ SourceForge how to report problems, make feature requests + Common problems and what to do about them (Troubleshooting) @@ -3168,6 +3424,15 @@ write to bochs-announce-request or bochs-developers-request. Don't forget the Tips and Techniques + + +Ideas for new sections: +- Using two hard disks +- using the debugger (done) +- debugging from gdb +- etc. + +
How to make a disk image @@ -3581,12 +3846,489 @@ your name server as shown.
+
Linux: Configuring and using a tuntap network interface + + +
+ +
+ Using Bochs internal debugger + + +Note, if you are looking for a graphical front-end for the +bochs debugger, you may want to check out +BFE.  This is a +package written by a bochs user which can interface with +the text based bochs debugger. No linking is necessary. +It's not part of bochs, but you may find it useful. + + + +You can now conditionally compile in a GDB like command line debugger, that +allows you to set breakpoints, step through instructions, and other +useful functions. If there isn't a command for something you believe +is generally useful for the debugger, let me know and I'll implement +it if possible. + + + +To use the debugger, you must configure bochs with the +'--enable-debugger' and '--enable-disasm' flags. For example: + + + ./configure --enable-debugger --enable-disasm + + +NOTE: You must use flex version 2.5.4 or greater. I have heard that +version 2.5.2 will not work. + + +When you first start up bochs, you will see the command line prompt + + + bochs:1> + + +From here, you may use the following commands: + + +
+Execution Control + + + c Continue executing + stepi [count] execute count instructions, default is 1 + si [count] execute count instructions, default is 1 + step [count] execute count instructions, default is 1 + s [count] execute count instructions, default is 1 + Ctrl-C stop execution, and return to command line prompt + Ctrl-D if at empty line on command line, exit + quit quit debugger and execution + q quit debugger and execution + + +
+ +
+BreakPoints + + + NOTE: The format of 'seg', 'off', and 'addr' in these descriptions, + are as follows. I don't have any way to set the current radix. + + hexidecimal: 0xcdef0123 + decimal: 123456789 + octal: 01234567 + + vbreak seg:off Set a virtual address instruction breakpoint + vb seg:off + + lbreak addr Set a linear address instruction breakpoint + lb addr + + pbreak [*] addr Set a physical address instruction breakpoint + pb [*] addr (the '*' is optional for GDB compatibility) + break [*] addr + b [*] addr + + info break Display state of all current breakpoints + delete n Delete a breakpoint + del n + d n + + +
+ +
+Manipulating Memory + + + x /nuf addr Examine memory at linear address addr + xp /nuf addr Examine memory at physical address addr + n Count of how many units to display + u Unit size; one of + b Individual bytes + h Halfwords (2 bytes) + w Words (4 bytes) + g Giant words (8 bytes) + NOTE: these are *not* typical Intel nomenclature sizes, + but they are consistent with GDB convention. + f Printing format. one of + x Print in hexadecimal + d Print in decimal + u Print in unsigned decimal + o Print in octal + t Print in binary + + n, f, and u are optional parameters. u and f default to the last values + you used, or to w(words) and x(hex) if none have been supplied. + n currently defaults to 1. If none of these optional parameters are + used, no slash should be typed. addr is also optional. If you don't + specify it, it will be the value the next address (as if you had + specified n+1 in the last x command). + + setpmem addr datasize val Set physical memory location of size + datasize to value val. + + crc addr1 addr2 Show CRC for physical memory range addr1..addr2 + info dirty Show physical pages dirtied (written to) since last display + Values displayed are the top 20 bits only (page addresses) + + + +
+ +
+Info + + + info program Execution status of the program + info registers List of CPU integer registers and their contents + info break Information about current breakpoint status + + +
+ +
+Manipulating CPU Registers + + + set $reg = val Change a CPU register to value val. Registers may be one of: + eax, ecx, edx, ebx, esp, ebp, esi, edi. + Currently, you may not change: + eflags, cs, ss, ds, es, fs, gs. + + Examples: set $eax = 0x01234567 + set $edx = 25 + + info registers See Info section + dump_cpu Dump complete CPU state + set_cpu Set complete CPU state + + Format of "dump_cpu" and "set_cpu": + "eax:0x%x\n" + "ebx:0x%x\n" + "ecx:0x%x\n" + "edx:0x%x\n" + "ebp:0x%x\n" + "esi:0x%x\n" + "edi:0x%x\n" + "esp:0x%x\n" + "eflags:0x%x\n" + "eip:0x%x\n" + "cs:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n" + "ss:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n" + "ds:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n" + "es:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n" + "fs:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n" + "gs:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n" + "ldtr:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n" + "tr:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n" + "gdtr:base=0x%x, limit=0x%x\n" + "idtr:base=0x%x, limit=0x%x\n" + "dr0:0x%x\n" + "dr1:0x%x\n" + "dr2:0x%x\n" + "dr3:0x%x\n" + "dr4:0x%x\n" + "dr5:0x%x\n" + "dr6:0x%x\n" + "dr7:0x%x\n" + "tr3:0x%x\n" + "tr4:0x%x\n" + "tr5:0x%x\n" + "tr6:0x%x\n" + "tr7:0x%x\n" + "cr0:0x%x\n" + "cr1:0x%x\n" + "cr2:0x%x\n" + "cr3:0x%x\n" + "cr4:0x%x\n" + "inhibit_int:%u\n" + "done\n" + + Notes: + - s is the selector + - dl is the shadow descriptor low dword (4 byte quantitiy) + - dh is the shadow descriptor high dword (4 byte quantitiy) + - valid denotes if the segment register holds a validated shadow descriptor + - inhibit_int is set if the previous instruction was one which delays the + acceptance of interrupts by one instruction (STI, MOV SS) + - any errors encountered by the set_cpu command, are reported by + "Error: ...". They may be reported after any of the input lines, + or after the "done" line, during limit checks. + - A successful set_cpu command ends with the separate line: + "OK". + + +
+ +
+Disassembly commands + + + disassemble start end Disassemble instructions in given linear address + range, inclusive of start, exclusive of end. + Use "set $disassemble_size =" to tell + debugger desired segment size. Use a value for + end of less than start (or zero) if you only + want the first instruction disassembled. + set $disassemble_size = n Tell debugger what segment size to use when + the "disassemble" command is used. Use values + of 16 or 32 for n. Default is 32. + + set $auto_disassemble = n Cause debugger to disassemble current instruction + every time execution stops if n=1. Default is 0. + Segment size of current CPU context is used for + disassembly, so variable "$disassemble_size" is + ignored. + + +
+ +
+Instrumentation + + +To use instrumentation features in bochs, you must compile in support for it. +You should build a custom instrumentation library in a separate directory in +the "instrument/" directory. To tell configure which instrumentation library +you want to use, use the "--enable-instrumentation" option. + +The default library consists of a set of stubs, and the following are +equivalent: + + + ./configure [...] --enable-instrumentation + ./configure [...] --enable-instrumentation="instrument/stubs" + + +You could make a separate directory with your custom library, +for example "instrument/myinstrument", copy the contents of +the "instrument/stubs" directory to it, then customize it. Use: + + + ./configure [...] --enable-instrumentation="instrument/myinstrument" + + +
+ +
+Instrumentation commands + + + instrument start calls bx_instr_start() + instrument stop calls bx_instr_stop() + instrument reset calls bx_instr_reset() + instrument print calls bx_instr_print() + + +
+ + +
+New Commands + + +trace-on + +Disassemble every executed instruction. Note that instructions that +cause exceptions are not really executed, and therefore not traced. + +trace-off + +Disable tracing. + +ptime + +Print the current time (number of ticks since start of simulation +(modulo 2^32)). + +sb delta + +Insert a time break point "delta" instructions into the future. + +sba time" + +Insert a time break point at "time". + +record filename + +Record console input to file filename. The file consists of +zero or more lines of the form "%s %d %x", where the first word is the +event type, the second is a time stamp and the third is event specific +data. + +playback filename + +Playback console input from file filename. Additional input can +be given directly in the console window. Events in the file will be +played back at times relative to the time when the playback command +was executed. + +print-stack [num words] + +Print the num words top 16-bit words on the stack. Num +words defaults to 16. Only works reliably in protected mode when +the base address of the stack segment is zero. + +watch stop + +Stop the simulation (and return to prompt) when a watch point is +encountered. + +watch continue + +Do not stop the simulation when watch points are encountered. They will +still be logged. + +watch + +Print current watch point status. + +unwatch + +Remove all watch points. + +watch read address + +Insert a read watch point at physical address address. + +watch write address + +Insert a write watch point at physical address address. + +unwatch read address + +Remove read watch point from physical address address. + +unwatch write address + +Remove write watch point from physical address address. + +modebp [string] + +Toggles vm86 mode switch breakpoint. + +load-symbols [global] filename [offset] + +Load symbols from file filename. If the global keyword is +added, then the the symbols will be visible in all contexts for which +symbols have not been loaded. Offset (default is 0) is added to +every symbol entry. The symbols are loaded in the current (executing) +context. + + + +The symbol file consists of zero or more lines of the format "%x %s". + +show [string] + + + Toggles show symbolic info (calls to begin with). + show - shows current show mode + show "mode" - show, when processor switch mode + show "int" - show, when interrupt is happens + show "call" - show, when call is happens + show "ret" - show, when iret is happens + show "off" - toggles off symbolic info + show "dbg-all" - turn on all show flags + show "none" - turn off all show flags + + +
+ +
+ +Resource file extensions + + + +time0: time + +Specifies the start (boot) time of the virtual machine. Use a +time value as returned by the time(2) system call. Time +equal to 1 is a special case which starts the virtual machine at the +current time of the simulator host. + +cdromd: dev=device, status=(inserted|ejected) + +LoseNT needs a CD in order to boot properly. Our simulated CD-ROM unit +communicates directly with the CD-ROM driver in Linux. Device +is a device special file to which the CD-ROM driver is connected +(typically /dev/hdc). Device is ignored if status=ejected. + + +
+ +
+ +Related links + + +&FIXME; add links + + Cosimulation + Instrumentation + + +
+
+ +
+Bios Tips +
+ CD Boot error codes + +When failing to boot from CDROM, the bios outputs +the reason of the failure as +an error code, in the log file, and on the screen. +Here are the menaning of the errors: + +CD Boot error codes + + + + Error code + Reason + + + + 0x01 no atapi device found + 0x02 no atapi cdrom found + 0x03 can not read cd - BRVD + 0x04 cd is not eltorito (BRVD) + 0x05 cd is not eltorito (ISO TAG) + 0x06 cd is not eltorito (ELTORITO TAG) + 0x07 can not read cd - boot catalog + 0x08 boot catalog : bad header + 0x09 boot catalog : bad platform + 0x0A boot catalog : bad signature + 0x0B boot catalog : bootable flag not set + 0x0C can not read cd - boot image + + +
+
+
+ +
+ Disk translation + + +
+
+
Guest operating systems +
Minix + + +
Linux What disk images are available. @@ -3607,6 +4349,10 @@ your name server as shown.
+
The Hurd + + +
DOS
Accessing your CDROM @@ -3656,620 +4402,288 @@ pathname, like c:\windows\himem.sys.
-
How to Install Windows 95 with floppies -Using Windows95 for PCs without Windows, 1.44M floppy distribution - -Preparing for the install - - -Copy the floppies to files on your workstation. Keep in mind, -they are of 2 formats - 1.44M & 1.680M. The boot disk and -disk#1 are 1.44M. The rest of them (disk#2..disk#13) are -1.680M format. You may need a Linux workstation to do this -part, though it should be possible on others if the OS provides -a way to specify alternate floppy media geometries. - - - - format tracks heads sectors/track - 1.44M: 80 2 18 - 1.680M: 80 2 21 - - -+- On linux, you achieve this, via the 'setfdprm' command, and -| associated parameters in the '/etc/fdprm' file. Here's an -| excerpt from that file: -| -| # /etc/fdprm - floppy disk parameter table -| 1440/1440 2880 18 2 80 0 0x1B 0x00 0xCF 0x6C -| 1680/1440 3360 21 2 80 0 0x0C 0x00 0xCF 0x6C # ????? -| -| To copy the floppies, you would do something like: -| -| linux-> cp /dev/fd0 win95_boot (after inserting the boot diskette) -| linux-> cp /dev/fd0 win95_d1 (after inserting disk #1) -| -| Then switch to the alternate 1.680M geometry: -| -| linux-> setfdprm -p /dev/fd0 1680/1440 -| linux-> cp /dev/fd0 win95_d2 (after inserting disk #2) -| linux-> cp /dev/fd0 win95_d3 (after inserting disk #3) -| ... -| linux-> cp /dev/fd0 win95_d13 (after inserting disk #13) -| -| And revert back to the default 1.44M geometry if desired -| -+- linux-> setfdprm -p /dev/fd0 1440/1440 - - - - -You should end up with something similar to the following listing: - - - - -rw-r--r-- 1 user group 1474560 Oct 31 12:04 win95_boot - -rw-r--r-- 1 user group 1474560 Jul 15 1997 win95_d1 - - -rw-r--r-- 1 user group 1720320 Jul 15 1997 win95_d2 - -rw-r--r-- 1 user group 1720320 Jul 15 1997 win95_d3 - -rw-r--r-- 1 user group 1720320 Jul 15 1997 win95_d4 - -rw-r--r-- 1 user group 1720320 Jul 15 1997 win95_d5 - -rw-r--r-- 1 user group 1720320 Jul 15 1997 win95_d6 - -rw-r--r-- 1 user group 1720320 Jul 15 1997 win95_d7 - -rw-r--r-- 1 user group 1720320 Jul 15 1997 win95_d8 - -rw-r--r-- 1 user group 1720320 Jul 15 1997 win95_d9 - -rw-r--r-- 1 user group 1720320 Jul 15 1997 win95_d10 - -rw-r--r-- 1 user group 1720320 Jul 15 1997 win95_d11 - -rw-r--r-- 1 user group 1720320 Jul 15 1997 win95_d12 - -rw-r--r-- 1 user group 1720320 Jul 15 1997 win95_d13 - - - -Create a hard disk image file. For example, for a 62M disk with -the following settings in '.bochsrc': - - - - diskc: file=62M, cyl=940, heads=8, spt=17 - -use (940 * 8 * 17 * 512bytes-per-sector = 127840): - - unix-> dd if=/dev/zero of=62M bs=512 count=127840 - - - -Setup your '.bochsrc' file. For example: - - - - megs: 16 - boot: c - diskc: file=62M, cyl=940, heads=8, spt=17 - floppya: 1_44=1.44, status=inserted - vgaromimage: bios/VGABIOS-elpin-2.00A - romimage: bios/BIOS-bochs-980118a (use newest one) - log: ./bochs.out - hga_update_interval: 300000 - keyboard_serial_delay: 200 - floppy_command_delay: 500 - - - -You'll also need a floppy image file, sort of a working file, -which you copy the distribution files into, one by one, as -they are needed. This is the file you point the 'floppya:' -directive in the '.bochsrc' file to. Copy the Win'95 boot disk -to your floppy working file ('1.44' in the '.bochsrc' example): - - - - unix-> /bin/cp -f win95_boot 1.44 - - - Beginning the install - - -Fire up bochs and boot the Win'95 boot diskette: - - - - unix-> bochs boot:a - - Microsoft Windows 95 Setup - - - -Quit Setup to DOS to use FDISK. - - - - '[F3]', '[F3]' - - - -FDISK C: to use the whole disk for the primary partition. - - - - A:\> fdisk - '[Return]' - '[Return]' - '[Return]' - - - -Power down Bochs - click the mouse on the 'Power' button -in the GUI toolbar. Fire up bochs again. - - - - unix-> bochs boot:a - - Microsoft Windows 95 Setup - - - -Quit Setup to DOS to use FORMAT. - - - '[F3]', '[F3]' - A:\> format /u c: - - - - (answer 'Y' and enter a volume label as desired) - - - -Click on the floppy A icon in the GUI toolbar. You should -see an 'X' through it signifying it's logically ejected. -Now we're ready for Disk1: - - - - unix-> /bin/cp -f win95_d1 1.44 - - - -Click on the floppy A icon again to logically insert -disk1. The 'X' should go away. Now run SETUP.EXE which is -on disk1. - - - - A:\> setup /C - To continue ... - '[Return]' - Welcome to Windows 95 Setup!... - '[Return]' (to select Continue button) - Please insert "Disk2"... - - - -From now on, keep in mind that you must click the floppy A -icon to tell bochs you're ejecting the floppy (in theory) -BEFORE you copy over your floppy working file on your -workstation, and click on it again AFTERWARDS, to insert it. -This is most critical, if you transition from images of -floppies with different format. (disk1=1.44M, disk2=1.680M) -You're giving bochs a chance to look at the size of the -image file, and switch to a different sectors-per-track. - - - - (Click the floppyA icon to eject) - unix-> /bin/cp -f win95_d2 1.44 - (Click the floppyA icon to insert) - - '[Return]' (select OK button) - Software License Agreement - '[Tab]' - '[Return]' (select Yes button) - Windows 95 Setup Wizard - '[Return]' (select Next button) - Choose Directory - '[Return]' (select Next button) - Setup Options - '[Down-Arrow]', '[Down-Arrow]', '[Down-Arrow]' (selects custom) - '[Return]' (select Next button) - User Information - Name: - "Your name here" - '[Tab]' - Company: - "Your company here" - '[Return]' - Key Identification - Key: - "123-4567890" (from your Certificate of Authenticity) - '[Return]' (select Next button) - Product Identification - '[Return]' (select Next button) - Analyzing Your Computer - '[Down-Arrow]' (No, I want to modify the hardware list) - '[Return]' (select Next button) - Analyzing Your Computer - - - -Let me just note that you can get around in this screen, -by the Down-Arrow key, Tab to move to a different area, -and space to toggle selection. For some options, it's -much easier to first unselect every device of that -type, than select the one you want. - - - -The ultimate selection you're trying to achieve is: - - - - CD-ROM Drive (none) - Display Default Standard VGA Display Adapter - Floppy Disk Controllers Standard Floppy Controller - Hard Disk Controllers Standard IDE/ESDI Hard Disk Controller - Keyboard Keyboard - Mouse (none) - Network Adapter (none) - PCMCIA Socket (none) - Ports (none) - SCSI Controllers (none) - Sound, MIDI, or Video... (none) - - - -The exact sequence I used was: - - - - [Space] (unselect all CD-ROMs) - [Down-Arrow] - [Space] (unselect all Displays) - [Tab] (move to Manufacturer and model section) - 13 [Down-Arrows] (Default Standard VGA Display Adapter) - [Space] (to select this adapter) - 4 [Tabs] (get back to Hardware types section) - 2 [Down-Arrows] (get to Hard Disk Controllers) - [Space] (to unselect all Hard Disk Controllers) - [Tab] (to get to Manufacturer and model section) - 3 [Down-Arrows] (get to Standard IDE/...) - [Space] (to select this device) - 4 [Tabs] (get back to Hardware types section) - 2 [Down-Arrows] (get to Mouse) - [Space] (to unselect all Mouse types) - [Down-Arrow] (get to Network Adapter) - [Space] (to unselect all Network Adapters) - [Down-Arrow] (get to PCMCIA Socket) - [Space] (to unselect all PCMCIA Socket types) - [Down-Arrow] (get to Ports) - [Space] (to unselect all Ports) - [Down-Arrow] (get to SCSI Controllers) - [Space] (to unselect all SCSI Controllers) - [Down-Arrow] (get to Sound, MIDI...) - [Space] (to unselect all Sound, MIDI...) - 3 [Tabs] (get to Next button) - [Return] (select Next button) - - Analyzing Your Computer - [Return] (select Next button) - - Get Connected - [Return] (select Next button) - - Select Components - - - -Well, you have to decide this one. Remember, use [Down-Arrow], -[Tab], and [Space]. [Tab] to the Next button when you're done -and type [Return]. - - - - Network Configuration - '[Return]' (to take default config, or change it as you want) - - Computer Settings - '[Return]' (to take current settings) - - Startup Disk - - - -If you do NOT want to create a Startup Disk, you could type - - - - '[Down-Arrow]' (select No, I do not want a startup disk) - '[Return]' (select Next button) - - - -If you DO want to create a Startup disk. - - - - '[Return]' (select Next button) - - - -It is possible to create a startup disk after the installation, so you may skip the creation of a startup disk if it becomes problematic. - - - -Either way, the following appears, - - - - Start Copying Files - '[Return]' - -+- If you optioned to create a Startup Disk, the following appears: -| -| Label a disk "Windows 95 Startup Disk"... -| -| Click the floppyA icon to eject. Now copy any floppy image file -| which has a 1.44M format on it, onto your floppy working file. -| Win '95 will erase any files on it. Use the 'win95_boot' file, -| since it's a 1.44M format. -| -| unix-> /bin/cp -f win95_boot 1.44 -| -| Click on floppyA to insert. -| -| '[Return]' -| Setup has finished creating your startup disk... -| '[Return]' (select OK button) -| -| Please insert the disk labeled 'Windows 95 Disk 2'... -| -| Click the floppyA icon to eject. -| Copy the working floppy disk image file to something signifying -| it's the startup disk. Then copy the disk#2 image file onto the -| working file. -| -| unix-> cp 1.44 win95_startup -| unix-> /bin/cp -f win95_d2 1.44 -| -| Click on floppyA to insert. -| -+- '[Return]' (select OK button) - -In any case (startup disk or not), the rest is very methodical. - -+-> Please insert the disk labeled 'Windows 95 Disk 3'... -| -| (Click the floppyA icon to eject.) -| unix-> /bin/cp -f win95_d3 1.44 -| (Click the floppyA icon to insert.) -| -| '[Return]' (select OK button) -| -| Just repeat this process, until SETUP has asked for all -+- 13 floppies in the distribution. Of course, change - 'win95_d3' to each number in the succession; win95_d4, - win95_d4, ... , win95_d13. - - - -After asking for all the floppy disks in the distribution, -Windows '95 will let you know it's going to restart your -computer. Acknowledge this, and then bochs will bomb upon -attempt to reboot. - - - -Fire up bochs again. The 'boot:c' is not necessary if -you have the 'boot: c' directive in your '.bochsrc' file. - - - - unix-> bochs boot:c - - - -You'll get a screen full of garbage text for a while Win '95 -updates your configuration files. I'm not handling that -text screen mode correctly. Then the window switches to -a blank graphics screen (say 2 to 5 minutes). - - - - Windows 95 is now setting up your hardware and any Plug - and Play devices you may have. - - - -You'll see the magnifying glass circulating about the -picture (icon) representing your computer for quite -awhile. - - - - Windows is now setting up the following items... - - Setting up Control Panel - Programs on the Start menu - Windows Help - MS-DOS program settings - Time zone - - - -You can play with the Time Zone if you want. I just -accept the one that comes up. I like being on Tijuana -time anyhow! - - - - '[Return]' - - Set up printer - - - -Bochs printing support varies from host OS to host OS. Parallel port emulation was added in Bochs 1.3 for Unix platforms. Check to see if printing is supported for your host OS in or the forums. You can skip this part during installation and set up printing features later. Cancel print setup in this manner: - - - - '[Tab]' - '[Return]' (select Cancel button) - - Windows 95 is now finalizing settings for your computer - - - -Windows '95 should now display the 'Welcome to Windows 95' -screen, and give you one of it's helpful 'Did you know' tips. -My suggestion, is for you to shutdown Win '95 at this point, -and make a backup copy of your hard drive image file. -Otherwise, you are done, though you may want to check -out the section on getting rid of the 'splash' screen upon -boot. In that case, shutdown is necessary also. - - - - '[Return]' (selects Close button) - '[Ctrl]', '[Esc]', '[^Esc]', '[^Ctrl]' - - - -It's helpful to give slight intentional delays when typing -multi-key sequences like the one above. The '^' means a -release of that key. - - - - 'u' (shortcut for Shut Down) - - Shut down Windows... - '[Return]' (select Yes button) - - - -Your window changes to a different size graphics mode. The -message 'It is now safe to shutdown your computer' will be -displayed briefly, but then the screen goes blank due to -bochs not handling something in that graphics mode correctly. - -Power down by clicking on the 'Power' button in the bochs -GUI toolbar. The bochs window disappears as bochs stops -execution. Make a backup copy. - - - - unix-> cp 62M 62M.win95.installedOK - - - -Getting rid of Win '95 'splash' screen upon bootup. - - - -When Win '95 boots up, it typically displays the intro -screen while it boots (splash screen). It uses a graphics -mode I don't handle well, mostly because it's not important -enough to spend the time on it. You can tell Win '95 -not to display this screen anyways, which I prefer. - - - -Using the MTOOLS package, if you have a drive letter -associated with your hard disk image file, for example: - - - - ~/.mtoolsrc: drive c: file="/path/62M" partition=1 - - - -You can look at and modify the contents of your drive -image file, using commands on your workstation. - - - - - -WARNING: You MUST power down bochs if you are running any software that does any kind of disk caching!!! Yes, Windows '95 does disk caching. - - - - -Look at the attributes associated with c:/MSDOS.SYS. - - - - unix-> mattrib c:/MSDOS.SYS - - - -Copy it to your workstation, with the text mode translation -flag. - - - - unix-> mcopy -t c:/MSDOS.SYS . - - - -Edit the file, adding "Logo=0" under the Options section. Save the file. - - - - [Options] - BootMulti=1 - BootGUI=1 - Network=0 - Logo=0 <------- add this line - - - -Copy it back to your disk image. Restore proper -attributes to what they were before. For example. - - - - unix-> mcopy -t MSDOS.SYS c:/ - unix-> mattrib -a +s +h +r c:/MSDOS.SYS - - -Finishing up after the install - - -You should now delete any temporary copies of the floppy disk -image files, used to facilitate installation. - - - - unix-> /bin/rm -i win95_boot win95_d* - - - -OK, you're done!!! Make sure you tell bochs to boot the -hard drive either in '.bochsrc' or by the 'boot:c' option, -and fire it up. - - - - unix-> bochs - - -
- - -
Windows * - - -
-
Minix - - -
-
[...] - - -
+
+ Windows 95 +
+ Installing a Japanese version of win95 + + +
+
+ 32 bits disk access support and Promise DC23000 VLB + + +
+
+
+ Windows NT 4.0 + + +
+
+ Windows 98 + + +
+
+ Windows ME + + +
Installing Windows ME + + +This has been contributed by Sancho Roberto : + + +Date: Sun, 21 Oct 2001 02:24:22 -0700 (PDT) +From: Sancho Roberto (rsanchov at yahoo dot com) +To: bochs-developers@lists.sourceforge.net +Subject: [Bochs-developers] WinMe install tips +Parts/Attachments: + +1) Install Win98 + + My Windows Me is an update version, that is, it upgrades over Win98. + So the first think I have to do is to install on a HD image a + Win98 + + It is not necessary to do the full install. What I've done is + - Create a HD image (Win98.img) with 500MB + - Format It, install MSDOS6 on it so I can boot from c + - Make a W98 directory. + - Copy using mtools the instalation directory from the original + Win98 CD + - Run bochs + - run the setup program into the W98 directory + - Select WIN98 as Windows directory. All other setup options + are left by default. + - I don't care about HW detection, etc. Just uncompressing + the cab files to the WIN98 directory es enought for WinMe. + (Note that Win98 is not functional and cannot boot) + +2) Copy the WinMe install files to the HD + + In Win98.img, with mtools, I create a directory called WinMe. + Again, I copy the contents of the Win9x directory from the original + WinMe CD. Note that I copy the CD to my HD, and then with mtools + from my HD to win98.img. I also delete then W98 directory. + +3) Create WinMe.img + + Now, I created another blank HD called WinMe.img with 500MB. + I format it and install MSDOS6 so I an boot using it. + +4) Prepare the instalation Bochs + + I edit the bochsrc.txt file so + - WinMe.img is diskc + - Win98.img is diskd + +5) Running setup + + I start bochs: the C: drive is empty (it only contains the + MSDOS6 command.com, IO.SYS, etc). The D: drive has: + D:\W98 - The "installed" Windows 98 + D:\WINME - Windows Me setup files + + I go to the WINME directory and run: + + SETUP xxxx + + The description of the setup options can be found in the Microsoft Knowledge page as + Q186111 - Description of the Windows 95, Windows 98, and Windows Me Setup Switches + + I've done a lot of trials with this setup options until I finally + found a correct way to finnish the installation. These are the setup + options I used. I've copied a brief description (from the KB) and added + my comments. + + /m - bypass the playing of the Setup sound (.wav) files. + Not necessary as my Bochs has no sound device activated + + /nf - Do not prompt to remove the floppy disk from the drive + Maybe not necessary. Just in case + + /nh - This switch bypasses running the Hwinfo.exe program at 0 + percent files and RunOnce. + + If not present, freezes on HW detection + + /ie - This switch bypasses the Windows 98 Startup Disk wizard screens. + To speed things up - I allways can create a Statup disk latter + + /iv - This switch bypasses displaying the Setup screens during + an upgrade within Windows. + To speed things up + + /c - This switch bypasses running SMARTDrive. + Maybe not necessary. Just in case + + /im - Causes setup to ignore the conventional memory check. + Maybe not necessary. Just in case + + /is - This switch causes Setup not to run ScanDisk. + Very important as SCANDISK freezed bochs + + /iq - If you use the /is switch to bypass ScanDisk or if ScanDisk + does not complete successfully, Setup checks your drive for cross-linked files. + The /iq switch prevents Setup from doing this. + + Very important. If not used, Setup stop the installation + with a message "error found in C:, run scandisk and setup again" + (or something like this). Of course, there is no errors in C: + because is an empty, just formatted disk, but the WinMe setup + thinks so. The only way to progress from this point is + with this switch + + /it - This switch bypasses checking for the presence of "dirty" or "deadly" + terminate-and-stay-resident programs (TSRs) that are known to + cause problems with Windows Setup. + Maybe not necessary. Just in case + + /p b;g=3 + + b: This switch enables Prompt Before mode. It prompts + you before a detection module is called so that you can + step through each detection module manually and decide + if you want to skip it. + + Very important. See bellow + + g: This switch controls how verbose the built-in progress bar is + + + There is another main issue that must be handled + + WinMe requires a 150Mhz computer as a minimum. If you try to run + the WinMe setup, you will receive a message telling you so, and the + installation will stop. + + The only way I found to solve this problem is to change the IPS + value in bochsrc.txt. I raised the IPS value until setup stop + complaining. In my machine (P3 @ 450MHz), I achieved this with + + ips: 500000000 + + This this IPS value, the keyboard and mouse are updated each + 100 seconds. This makes very dificult to type the CD-KEY numbers, + select type of instalation, etc. + + One way to solve this is to lower the vga_update_interval and + the keyboard_serial_delay. I lower the value until + - I have a minimum respons from keyboard and mouse (say + 1 second delay between keypress/mousemove and the + screen update) + - I still pass the 150 Mhz check + + The values I used are + + vga_update_interval: 10000 + keyboard_serial_delay: 200 + + They may be diferent for other computers. + Note that bochs, on starting up complains about vga_update_interval + with the message "bochsrc.txt: vga_update_interval not big enough!": + ignore it. + +6) Follow the Windows Me setup instruction ... + + Just a warning: it is very, very, very, *VERY* (very) slow ... + Two days running non stop on my PC. + Don't wait ... enjoy yourself during the process ... you that the time. + +7) Hardware nightmare + + At a given moment, you are prompted to detect the hardware. + There is a prompt for each type of device: Bus, keyboard, mouse, + HD, CDROM, etc. + + Say NO to everything. + + If you say YES, sometimes setup will detect your HW, but normaly + it will crash with GPF on COMMCTRL.DLL (setup crash, but bochs + still alive. Nice!). + + If you sat CANCEL, setup will stay in this screen forever (ok, ok, + I have just wait 10 hours). + +8) Configuring + + Setup will configure you PC. You can set your timezone, etc. + + Then Setup will create the Statup menu icons. Here, time to time, + you will get a GPF in PIFMGR.DLL. Just press Ok and continue. + + Again this procedure is very very very very very very slow. + Worse of all, you cannot leave it running by night. You must + press Ok a lot of times to clean the GPF. + +9) Restart. + + At last, setup will restart the PC. Exit Bochs. I recomend to make + a copy of WinMe.img just to save all your time. + +10) Run bochs again + + Setup will do some stuff ... just wait + + After a while, the Start button appearch on the lower left corner + of the screen! + + Just for safe, I executed within WinMe msconfig.exe, and in the + advanced tab set the Disk Compatibility mode". Also, I've turned + of the menu and windows animations, to speed thinks up a bit. Also + it may be a good idea to turn off scandisk on setup. + + Do not forget to exit from Windows with the Shutdown menu ... + +11) That's all + + Now you can comment out the diskd line in the bochsrc.txt. WinMe.img + contains a working WinMe. + + NOTE: if you lower the IPS, WinMe will be unstable ... surelly + a timing issue. But even if IPS is high, lowering + vga_update_interval and keyboard_serial_delay will help + on getting an acceptable usability. + + DO not forget to use your Pentium 10 at 500 GHz to get a + good speed within Windows. + +Some bugs i've found + +- MSDOS Scandisk freeze +- Hw detection is very problematic +- If bochs is visible when it switchs from text mode to grafic mode, + the size of the window is correct. But if Bochs is minimized when + doing so, the size of the Bochs window is incorrect. It does not + take into account the height of the top banner (the one with the + disk icons, mouse, snapshot, etc), so the botton of the screen + is clipped. +- Dont expect to run WinMe at full speed unless you use your Pentium10 at 1500 GHz +- (not a bug, but a comment) The splash screen when booting/shutdown + WinMe is double height. I personally prefer to see the full image + as it was time ago. + + + +
+
+
+ Windows 2000 + + +
+
+ Windows XP + + +
+
+ [...] + + +