- removed support for deprecated options diskc, diskd, cdromd and newharddrivesupport

- updated docs after removing options
- some other bochsrc option updates in user.dbk and bochsrc manpage
This commit is contained in:
Volker Ruppert 2005-01-08 19:55:55 +00:00
parent ebde27f2ab
commit ccde06a25d
4 changed files with 134 additions and 382 deletions

View File

@ -695,61 +695,6 @@ keyboard_mapping: enabled=0, map=
# #
#======================================================================= #=======================================================================
#=======================================================================
#
# The DISKC option is deprecated. Use ATA* options instead.
#
# DISKC: file=, cyl=, heads=, spt=
# Point this at a hard disk image file. To create
# a hard disk image, try running bximage. It will help you choose the
# size and then suggest a diskc line that works with it.
#
# In UNIX it may be possible to use a raw device as a Bochs hard disk,
# but WE DON'T RECOMMEND IT. In Windows there is no easy way.
#
# Examples:
# diskc: file=10M.sample, cyl=306, heads=4, spt=17
# diskc: file=20M.sample, cyl=615, heads=4, spt=17
# diskc: file=30M.sample, cyl=615, heads=6, spt=17
# diskc: file=46M.sample, cyl=940, heads=6, spt=17
# diskc: file=62M.sample, cyl=940, heads=8, spt=17
# diskc: file=112M.sample, cyl=900, heads=15, spt=17
# diskc: file=483M.sample, cyl=1024, heads=15, spt=63
#=======================================================================
#diskc: file="30M.sample", cyl=615, heads=6, spt=17
#=======================================================================
#
# The DISKD option is deprecated. Use ATA* options instead.
#
# DISKD:
# See DISKC above for syntax
#
# NOTE: diskd and cdromd must not be used together!
#=======================================================================
#diskd: file="diskd.img", cyl=615, heads=6, spt=17
#=======================================================================
#
# The CDROMD option is deprecated. Use ATA* options instead.
#
# CDROMD:
#
# cdromd: dev=/dev/cdrom, status=inserted
# cdromd: dev=/dev/cdrom, status=ejected
# cdromd: dev=e:, status=ejected
#
# In windows, the drive letter + colon notation should be used for cdroms.
# Depending on versions of windows and drivers, you may only be able to
# access the "first" cdrom in the system. On MacOSX, use path="drive"
# to access the physical drive.
#
# NOTE: diskd and cdromd must not be used together!
#=======================================================================
#cdromd: dev=D:, status=inserted
#cdromd: dev=/dev/cdrom, status=inserted
#cdromd: dev="drive", status=inserted
#======================================================================= #=======================================================================
# #
# The TIME0 directive is DEPRECATED. Use the CLOCK directive instead # The TIME0 directive is DEPRECATED. Use the CLOCK directive instead
@ -782,10 +727,3 @@ keyboard_mapping: enabled=0, map=
#======================================================================= #=======================================================================
#pit: realtime=1 #pit: realtime=1
#=======================================================================
# NEWHARDDRIVESUPPORT: enabled=[0|1]
# The old harddrive code is not maintened any more.
# Default value is enabled=1
#=======================================================================
#newharddrivesupport: enabled=1

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: config.cc,v 1.27 2004-12-30 14:50:36 vruppert Exp $ // $Id: config.cc,v 1.28 2005-01-08 19:55:54 vruppert Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2002 MandrakeSoft S.A. // Copyright (C) 2002 MandrakeSoft S.A.
@ -2381,14 +2381,6 @@ parse_line_formatted(char *context, int num_params, char *params[])
slave = 1; slave = 1;
} }
// This was originally meant to warn users about both diskc
// and ata0-master defined, but it also prevent users to
// override settings on the command line
// (see [ 661010 ] cannot override ata-settings from cmdline)
// if (bx_options.atadevice[channel][slave].Opresent->get()) {
// BX_INFO(("%s: %s device of ata channel %d already defined.", context, slave?"slave":"master",channel));
// }
for (i=1; i<num_params; i++) { for (i=1; i<num_params; i++) {
if (!strcmp(params[i], "type=disk")) { if (!strcmp(params[i], "type=disk")) {
bx_options.atadevice[channel][slave].Otype->set (BX_ATA_DEVICE_DISK); bx_options.atadevice[channel][slave].Otype->set (BX_ATA_DEVICE_DISK);
@ -2513,75 +2505,6 @@ parse_line_formatted(char *context, int num_params, char *params[])
} }
} }
// Legacy disk options emulation
else if (!strcmp(params[0], "diskc")) { // DEPRECATED
BX_INFO(("WARNING: diskc directive is deprecated, use ata0-master: instead"));
if (bx_options.atadevice[0][0].Opresent->get()) {
PARSE_ERR(("%s: master device of ata channel 0 already defined.", context));
}
if (num_params != 5) {
PARSE_ERR(("%s: diskc directive malformed.", context));
}
if (strncmp(params[1], "file=", 5) ||
strncmp(params[2], "cyl=", 4) ||
strncmp(params[3], "heads=", 6) ||
strncmp(params[4], "spt=", 4)) {
PARSE_ERR(("%s: diskc directive malformed.", context));
}
bx_options.ata[0].Opresent->set(1);
bx_options.atadevice[0][0].Otype->set (BX_ATA_DEVICE_DISK);
bx_options.atadevice[0][0].Opath->set (&params[1][5]);
bx_options.atadevice[0][0].Ocylinders->set (atol(&params[2][4]));
bx_options.atadevice[0][0].Oheads->set (atol(&params[3][6]));
bx_options.atadevice[0][0].Ospt->set (atol(&params[4][4]));
bx_options.atadevice[0][0].Opresent->set (1);
}
else if (!strcmp(params[0], "diskd")) { // DEPRECATED
BX_INFO(("WARNING: diskd directive is deprecated, use ata0-slave: instead"));
if (bx_options.atadevice[0][1].Opresent->get()) {
PARSE_ERR(("%s: slave device of ata channel 0 already defined.", context));
}
if (num_params != 5) {
PARSE_ERR(("%s: diskd directive malformed.", context));
}
if (strncmp(params[1], "file=", 5) ||
strncmp(params[2], "cyl=", 4) ||
strncmp(params[3], "heads=", 6) ||
strncmp(params[4], "spt=", 4)) {
PARSE_ERR(("%s: diskd directive malformed.", context));
}
bx_options.ata[0].Opresent->set(1);
bx_options.atadevice[0][1].Otype->set (BX_ATA_DEVICE_DISK);
bx_options.atadevice[0][1].Opath->set (&params[1][5]);
bx_options.atadevice[0][1].Ocylinders->set (atol( &params[2][4]));
bx_options.atadevice[0][1].Oheads->set (atol( &params[3][6]));
bx_options.atadevice[0][1].Ospt->set (atol( &params[4][4]));
bx_options.atadevice[0][1].Opresent->set (1);
}
else if (!strcmp(params[0], "cdromd")) { // DEPRECATED
BX_INFO(("WARNING: cdromd directive is deprecated, use ata0-slave: instead"));
if (bx_options.atadevice[0][1].Opresent->get()) {
PARSE_ERR(("%s: slave device of ata channel 0 already defined.", context));
}
if (num_params != 3) {
PARSE_ERR(("%s: cdromd directive malformed.", context));
}
if (strncmp(params[1], "dev=", 4) || strncmp(params[2], "status=", 7)) {
PARSE_ERR(("%s: cdromd directive malformed.", context));
}
bx_options.ata[0].Opresent->set(1);
bx_options.atadevice[0][1].Otype->set (BX_ATA_DEVICE_CDROM);
bx_options.atadevice[0][1].Opath->set (&params[1][4]);
if (!strcmp(params[2], "status=inserted"))
bx_options.atadevice[0][1].Ostatus->set (BX_INSERTED);
else if (!strcmp(params[2], "status=ejected"))
bx_options.atadevice[0][1].Ostatus->set (BX_EJECTED);
else {
PARSE_ERR(("%s: cdromd directive malformed.", context));
}
bx_options.atadevice[0][1].Opresent->set (1);
}
else if (!strcmp(params[0], "boot")) { else if (!strcmp(params[0], "boot")) {
if (num_params < 2) { if (num_params < 2) {
PARSE_ERR(("%s: boot directive malformed.", context)); PARSE_ERR(("%s: boot directive malformed.", context));
@ -2954,22 +2877,6 @@ parse_line_formatted(char *context, int num_params, char *params[])
BX_ERROR(("%s: WARNING: ips is AWFULLY low!", context)); BX_ERROR(("%s: WARNING: ips is AWFULLY low!", context));
} }
} }
else if (!strcmp(params[0], "pit")) { // Deprecated
if (num_params != 2) {
PARSE_ERR(("%s: pit directive: wrong # args.", context));
}
BX_INFO(("WARNING: pit directive is deprecated, use clock: instead"));
if (!strncmp(params[1], "realtime=", 9)) {
switch (params[1][9]) {
case '0':
BX_INFO(("WARNING: not disabling realtime pit"));
break;
case '1': bx_options.clock.Osync->set (BX_CLOCK_SYNC_REALTIME); break;
default: PARSE_ERR(("%s: pit expected realtime=[0|1] arg", context));
}
}
else PARSE_ERR(("%s: pit expected realtime=[0|1] arg", context));
}
else if (!strcmp(params[0], "max_ips")) { else if (!strcmp(params[0], "max_ips")) {
if (num_params != 2) { if (num_params != 2) {
PARSE_ERR(("%s: max_ips directive: wrong # args.", context)); PARSE_ERR(("%s: max_ips directive: wrong # args.", context));
@ -3168,22 +3075,6 @@ parse_line_formatted(char *context, int num_params, char *params[])
} }
} }
} }
else if (!strcmp(params[0], "newharddrivesupport")) {
if (num_params != 2) {
PARSE_ERR(("%s: newharddrivesupport directive malformed.", context));
}
if (strncmp(params[1], "enabled=", 8)) {
PARSE_ERR(("%s: newharddrivesupport directive malformed.", context));
}
BX_INFO(("WARNING: newharddrivesupport directive is deprecated and should be removed."));
if (params[1][8] == '0')
bx_options.OnewHardDriveSupport->set (0);
else if (params[1][8] == '1')
bx_options.OnewHardDriveSupport->set (1);
else {
PARSE_ERR(("%s: newharddrivesupport directive malformed.", context));
}
}
else if (!strcmp(params[0], "cmosimage")) { else if (!strcmp(params[0], "cmosimage")) {
if (num_params != 2) { if (num_params != 2) {
PARSE_ERR(("%s: cmosimage directive: wrong # args.", context)); PARSE_ERR(("%s: cmosimage directive: wrong # args.", context));
@ -3191,13 +3082,6 @@ parse_line_formatted(char *context, int num_params, char *params[])
bx_options.cmos.Opath->set (strdup(params[1])); bx_options.cmos.Opath->set (strdup(params[1]));
bx_options.cmos.OcmosImage->set (1); // CMOS Image is true bx_options.cmos.OcmosImage->set (1); // CMOS Image is true
} }
else if (!strcmp(params[0], "time0")) { // Deprectated
BX_INFO(("WARNING: time0 directive is deprecated, use clock: instead"));
if (num_params != 2) {
PARSE_ERR(("%s: time0 directive: wrong # args.", context));
}
bx_options.clock.Otime0->set (atoi(params[1]));
}
else if (!strcmp(params[0], "clock")) { else if (!strcmp(params[0], "clock")) {
for (i=1; i<num_params; i++) { for (i=1; i<num_params; i++) {
if (!strncmp(params[i], "sync=", 5)) { if (!strncmp(params[i], "sync=", 5)) {
@ -3485,6 +3369,45 @@ parse_line_formatted(char *context, int num_params, char *params[])
} }
} }
} }
// Old timing options have been replaced by the 'clock' option
else if (!strcmp(params[0], "pit")) { // Deprecated
if (num_params != 2) {
PARSE_ERR(("%s: pit directive: wrong # args.", context));
}
BX_INFO(("WARNING: pit directive is deprecated, use clock: instead"));
if (!strncmp(params[1], "realtime=", 9)) {
switch (params[1][9]) {
case '0':
BX_INFO(("WARNING: not disabling realtime pit"));
break;
case '1': bx_options.clock.Osync->set (BX_CLOCK_SYNC_REALTIME); break;
default: PARSE_ERR(("%s: pit expected realtime=[0|1] arg", context));
}
}
else PARSE_ERR(("%s: pit expected realtime=[0|1] arg", context));
}
else if (!strcmp(params[0], "time0")) { // Deprectated
BX_INFO(("WARNING: time0 directive is deprecated, use clock: instead"));
if (num_params != 2) {
PARSE_ERR(("%s: time0 directive: wrong # args.", context));
}
bx_options.clock.Otime0->set (atoi(params[1]));
}
// Old disk options are no longer supported
else if (!strcmp(params[0], "diskc")) { // DEPRECATED
PARSE_ERR(("diskc directive is deprecated, use ata0-master: instead"));
}
else if (!strcmp(params[0], "diskd")) { // DEPRECATED
PARSE_ERR(("diskd directive is deprecated, use ata0-slave: instead"));
}
else if (!strcmp(params[0], "cdromd")) { // DEPRECATED
PARSE_ERR(("cdromd directive is deprecated, use ata0-slave: instead"));
}
else if (!strcmp(params[0], "newharddrivesupport")) { // DEPRECATED
PARSE_ERR(("newharddrivesupport directive is deprecated and should be removed."));
}
else { else {
PARSE_ERR(( "%s: directive '%s' not understood", context, params[0])); PARSE_ERR(( "%s: directive '%s' not understood", context, params[0]));
} }

View File

@ -1,7 +1,7 @@
<!-- <!--
================================================================ ================================================================
doc/docbook/user/user.dbk doc/docbook/user/user.dbk
$Id: user.dbk,v 1.158 2005-01-01 15:39:20 vruppert Exp $ $Id: user.dbk,v 1.159 2005-01-08 19:55:54 vruppert Exp $
This is the top level file for the Bochs Users Manual. This is the top level file for the Bochs Users Manual.
================================================================ ================================================================
@ -2873,8 +2873,8 @@ where to look for disk images, how the Bochs emulation layer should work, etc.
When you first start up Bochs, it looks around for its configuration file, and When you first start up Bochs, it looks around for its configuration file, and
parses it. Here are a few lines from a sample file: parses it. Here are a few lines from a sample file:
<screen> <screen>
diskc: file="30M.sample", cyl=615, heads=6, spt=17 ata0-master: type=disk, path="30M.sample", cylinders=615, heads=6, spt=17
boot: c boot: disk
</screen> </screen>
The format is very strict, so be sure to put the right number of spaces and The format is very strict, so be sure to put the right number of spaces and
use lowercase letters. As you can see, most lines have a keyword telling what use lowercase letters. As you can see, most lines have a keyword telling what
@ -2891,7 +2891,7 @@ The syntax used for bochsrc can also be used as command line arguments for Bochs
If you have any spaces in your command line arguments, they should be enclosed If you have any spaces in your command line arguments, they should be enclosed
in single quotes, for example: in single quotes, for example:
<screen> <screen>
bochs 'boot:a' 'floppya: 1_44=a.img, status=inserted' bochs 'boot:floppy' 'floppya: 1_44=a.img, status=inserted'
</screen> </screen>
For other arguments, see section <link linkend="commandline">Command line arguments</link>. For other arguments, see section <link linkend="commandline">Command line arguments</link>.
</para> </para>
@ -2900,8 +2900,8 @@ For other arguments, see section <link linkend="commandline">Command line argume
Starting with version 1.3, you can use environment variables in Starting with version 1.3, you can use environment variables in
the bochsrc file, for example: the bochsrc file, for example:
<screen> <screen>
diskc: file="$IMAGES/30M.sample", cyl=615, heads=6, spt=17 floppya: 1_44="$IMAGES/bootdisk.img", status=inserted
boot: c boot: floppy
</screen> </screen>
Starting with version 2.0, two environment variables have a built-in Starting with version 2.0, two environment variables have a built-in
default value which is set at compile time. $BXSHARE points to the default value which is set at compile time. $BXSHARE points to the
@ -3179,19 +3179,6 @@ The biosdetect option has currently no effect on the bios
</para> </para>
</section> </section>
<section><title>newharddrivesupport</title>
<para>
Examples:
<screen>
newharddrivesupport: enabled=1
</screen>
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.
</para>
</section>
<section><title>boot</title> <section><title>boot</title>
<para> <para>
Examples: Examples:
@ -3300,9 +3287,12 @@ Examples:
log: bochsout.txt log: bochsout.txt
log: /dev/tty (Unix only) log: /dev/tty (Unix only)
log: /dev/null (Unix only) log: /dev/null (Unix only)
log: nul (win32 only)
</screen> </screen>
Give the path of the log file you'd like Bochs debug and misc. verbage to be 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. to be written to. If you don't use this option or set the filename to '-'
the output is written to the console. If you really don't want it,
make it "/dev/null" (Unix) or "nul" (win32). :^(
</para> </para>
</section> </section>
@ -3721,9 +3711,11 @@ located in the <constant>bochs/host/linux/pcidev/</constant> directory.
<para> <para>
Example: Example:
<screen> <screen>
usb1: enabled=1, ioaddr=0xFF80, irq=10 usb1: enabled=1, ioaddr=0xFF80
</screen> </screen>
Enables the i440fx PCI USB root hub. PCI support must be enabled, too. Controls the presence of the USB root hub which is a part of the i440FX PCI
chipset. If you enable USB and use the mouse option 'type=usb' you'll have
a 3-button mouse connected to port #1. PCI support must be enabled, too.
</para> </para>
</section> </section>
@ -3940,60 +3932,6 @@ This defines image file that can be loaded into the CMOS RAM at startup.
</para> </para>
</section> </section>
<section><title>diskc/diskd</title>
<para>
The diskc and diskd options are deprecated. Use
<link linkend="bochsopt-ata-master-slave">ataX-*: type=disk,... option</link>
instead.
</para>
<para>
Examples:
<screen>
diskc: file=10M.img, cyl=306, heads=4, spt=17
diskc: file=112M.img, cyl=900, heads=15, spt=17
diskd: file=483.img, cyl=1024, heads=15, spt=63
</screen>
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. Using a raw
hard drive is possible under 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 (see <xref linkend="diskimagehowto">) to create an image, it
will give you the required cyl, head, and spt information.
<note><para>
You cannot use both diskd and cdromd together.
</para></note>
</para>
</section>
<section><title>cdromd</title>
<para>
The cdromd option is deprecated. Use
<link linkend="bochsopt-ata-master-slave">ataX-*: type=cdrom,... option</link>
instead.
</para>
<para>
Examples:
<screen>
cdromd: dev=/dev/cdrom, status=inserted (Unix only)
cdromd: dev=e:, status=inserted (Windows only)
cdromd: dev=cdromimage.iso, status=inserted
</screen>
The cdromd line tells Bochs to emulate a CD-ROM device.
<note><para>
You cannot use both diskd and cdromd together, and there is no cdromc option.
</para></note>
</para>
</section>
<section><title>pit</title> <section><title>pit</title>
<para> <para>
The pit option is deprecated. Use the <link linkend="bochsopt-clock">clock option</link> instead. The pit option is deprecated. Use the <link linkend="bochsopt-clock">clock option</link> instead.
@ -7593,7 +7531,7 @@ This has been contributed by Volker Ruppert
7. Set up Bochs for the FreeDOS installation: 7. Set up Bochs for the FreeDOS installation:
boot: a boot: floppy
floppya: 1_44=FDB8_144.DSK, status=inserted floppya: 1_44=FDB8_144.DSK, status=inserted
floppyb: 1_44=base1.img, status=inserted floppyb: 1_44=base1.img, status=inserted
ata0-master: type=disk, path=c.img, cylinders=20, heads=16, spt=63 ata0-master: type=disk, path=c.img, cylinders=20, heads=16, spt=63
@ -7771,11 +7709,11 @@ on your home directory and edit it with your favorite editor (GNU Emacs, i hope
<screen> <screen>
romimage: file=/usr/share/bochs/BIOS-bochs-latest, address=0xf0000 romimage: file=/usr/share/bochs/BIOS-bochs-latest, address=0xf0000
megs: 128 megs: 128
vgaromimage: /usr/share/vgabios/vgabios.bin vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest
floppya: 1_44=/dev/fd0, status=ejected floppya: 1_44=/dev/fd0, status=ejected
diskc: file="/home/asyd/travail/hurd/gnu.img", cyl=227, heads=16, spt=63 # edit me ata0-master: type=disk, path="/home/asyd/travail/hurd/gnu.img", cylinders=227, heads=16, spt=63 # edit me
cdromd: dev=/dev/cdrom, status=inserted ata0-slave: type=cdrom, path=/dev/cdrom, status=inserted
boot: c boot: disk
log: /dev/stdout log: /dev/stdout
panic: action=ask panic: action=ask
error: action=report error: action=report
@ -8070,11 +8008,11 @@ the following settings in '.bochsrc':
</para> </para>
<programlisting> <programlisting>
diskc: file=62M, cyl=940, heads=8, spt=17 ata0-master: type=disk, path=62M.img, cylinders=940, heads=8, spt=17
use (940 * 8 * 17 * 512bytes-per-sector = 127840): use (940 * 8 * 17 * 512bytes-per-sector = 127840):
unix-> dd if=/dev/zero of=62M bs=512 count=127840 unix-> dd if=/dev/zero of=62M.img bs=512 count=127840
</programlisting> </programlisting>
<para> <para>
@ -8083,11 +8021,11 @@ Setup your '.bochsrc' file. For example:
<programlisting> <programlisting>
megs: 16 megs: 16
boot: c boot: disk
diskc: file=62M, cyl=940, heads=8, spt=17 ata0-master: type=disk, path=62M.img, cylinders=940, heads=8, spt=17
floppya: 1_44=1.44, status=inserted floppya: 1_44=1.44, status=inserted
vgaromimage: bios/VGABIOS-elpin-2.40 vgaromimage: file=bios/VGABIOS-lgpl-latest
romimage: bios/BIOS-bochs-latest (use newest one) romimage: file=bios/BIOS-bochs-latest # use newest one
log: ./bochs.out log: ./bochs.out
vga_update_interval: 300000 vga_update_interval: 300000
keyboard_serial_delay: 200 keyboard_serial_delay: 200
@ -8113,7 +8051,7 @@ Fire up bochs and boot the Win'95 boot diskette:
</para> </para>
<programlisting> <programlisting>
unix-> bochs boot:a unix-> bochs boot:floppy
Microsoft Windows 95 Setup Microsoft Windows 95 Setup
</programlisting> </programlisting>
@ -8143,7 +8081,7 @@ in the GUI toolbar. Fire up bochs again.
</para> </para>
<programlisting> <programlisting>
unix-> bochs boot:a unix-> bochs boot:floppy
Microsoft Windows 95 Setup Microsoft Windows 95 Setup
@ -8399,12 +8337,12 @@ attempt to reboot.
</para> </para>
<para> <para>
Fire up bochs again. The 'boot:c' is not necessary if Fire up bochs again. The 'boot:disk' is not necessary if
you have the 'boot: c' directive in your '.bochsrc' file. you have the 'boot: disk' directive in your '.bochsrc' file.
</para> </para>
<programlisting> <programlisting>
unix-> bochs boot:c unix-> bochs boot:disk
</programlisting> </programlisting>
<para> <para>
@ -8498,7 +8436,7 @@ execution. Make a backup copy.
</para> </para>
<programlisting> <programlisting>
unix-> cp 62M 62M.win95.installedOK unix-> cp 62M.img 62M.win95.installedOK
</programlisting> </programlisting>
<para> <para>
@ -8519,7 +8457,7 @@ associated with your hard disk image file, for example:
</para> </para>
<programlisting> <programlisting>
~/.mtoolsrc: drive c: file="/path/62M" partition=1 ~/.mtoolsrc: drive c: file="/path/62M.img" partition=1
</programlisting> </programlisting>
<para> <para>
@ -8586,7 +8524,7 @@ image files, used to facilitate installation.
<para> <para>
OK, you're done!!! Make sure you tell bochs to boot the OK, you're done!!! Make sure you tell bochs to boot the
hard drive either in '.bochsrc' or by the 'boot:c' option, hard drive either in '.bochsrc' or by the 'boot:disk' option,
and fire it up. and fire it up.
</para> </para>
@ -9041,29 +8979,27 @@ megs: 64
# Filename of ROM images go here. Be sure to check your installation for the location # Filename of ROM images go here. Be sure to check your installation for the location
# of these two files (type: man find). Paths must be absolute. # of these two files (type: man find). Paths must be absolute.
romimage: file=/usr/local/etc/bochs/bios/BIOS-bochs-latest, address=0xf0000 romimage: file=/usr/local/etc/bochs/bios/BIOS-bochs-latest, address=0xf0000
vgaromimage: /usr/local/etc/bochs/bios/VGABIOS-elpin-2.40 vgaromimage: file=/usr/local/etc/bochs/bios/VGABIOS-lgpl-latest
# Floppies are commented out, but you may need them later. # Floppies are commented out, but you may need them later.
# floppya: 1_44=/dev/fd0, status=inserted # floppya: 1_44=/dev/fd0, status=inserted
# floppyb: 1_44=/home/david/win98/floppyb.img, status=inserted # floppyb: 1_44=/home/david/win98/floppyb.img, status=inserted
# Cylinder, head, and spt info taken from bximage program output # Cylinder, head, and spt info taken from bximage program output
diskc: file="/home/david/win98/c.img", cyl=3657, heads=16, spt=63 ata0-master: type=disk, path="/home/david/win98/c.img", cylinders=3657, heads=16, spt=63
# Have your Windows 98 CD in the drive, but always boot from hard disk. # Have your Windows 98 CD in the drive, but always boot from hard disk.
# Comment this line out if you are using a disk image for the CD-ROM # Comment this line out if you are using a disk image for the CD-ROM
# (See next comment). # (See next comment).
cdromd: dev=/dev/cdrom, status=inserted ata0-slave: type=cdrom, path=/dev/cdrom, status=inserted
# You can optionally run the following command: # You can optionally run the following command:
# dd if=/dev/cdrom of=/home/david/win98/win98.iso # dd if=/dev/cdrom of=/home/david/win98/win98.iso
# and uncomment the next line # and uncomment the next line
# cdromd: dev=/home/david/win98/win98.iso, status=inserted # ata0-slave: type=cdrom, path=/home/david/win98/win98.iso, status=inserted
newharddrivesupport: enabled=1
# choose the boot disk. # choose the boot disk.
boot: c boot: disk
# where do we send log messages? # where do we send log messages?
log: bochsout.txt log: bochsout.txt
@ -9356,27 +9292,24 @@ megs: 64
# Filename of ROM images go here. Be sure to check your installation for the location # Filename of ROM images go here. Be sure to check your installation for the location
# of these two files (type: man find). Paths must be absolute. # of these two files (type: man find). Paths must be absolute.
romimage: file=/usr/local/etc/bochs/bios/BIOS-bochs-latest, address=0xf0000 romimage: file=/usr/local/etc/bochs/bios/BIOS-bochs-latest, address=0xf0000
vgaromimage: /usr/local/etc/bochs/bios/VGABIOS-elpin-2.40 vgaromimage: file=/usr/local/etc/bochs/bios/VGABIOS-lgpl-latest
# Floppies are commented out, but you may need them later. # Floppies are commented out, but you may need them later.
# floppya: 1_44=/dev/fd0, status=inserted # floppya: 1_44=/dev/fd0, status=inserted
# floppyb: 1_44=/home/david/win98/floppyb.img, status=inserted # floppyb: 1_44=/home/david/win98/floppyb.img, status=inserted
# Cylinder, head, and spt info taken from bximage program output # Cylinder, head, and spt info taken from bximage program output
diskc: file="/home/david/win98/c.img", cyl=2031, heads=16, spt=63 ata0-master: type=disk, path="/home/david/win98/c.img", cylinders=2031, heads=16, spt=63
# If you ran the following command: # If you ran the following command:
# dd if=/dev/cdrom of=/home/david/win98/win98.iso # dd if=/dev/cdrom of=/home/david/win98/win98.iso
# you can use the CD-ROM image on your hard drive: # you can use the CD-ROM image on your hard drive:
cdromd: dev=/home/david/win98/win98.iso, status=inserted ata0-slave: type=cdrom, path=/home/david/win98/win98.iso, status=inserted
# Optionally, if you have your Windows 98 CD in the drive # Optionally, if you have your Windows 98 CD in the drive
# you can uncomment the next line, but the installation # you can uncomment the next line, but the installation
# process will be slower. # process will be slower.
# cdromd: dev=/dev/cdrom, status=inserted # ata0-slave: type=cdrom, path=/dev/cdrom, status=inserted
newharddrivesupport: enabled=1
# choose the boot disk. # choose the boot disk.
boot: cdrom boot: cdrom
@ -9721,8 +9654,8 @@ Parts/Attachments:
4) Prepare the instalation Bochs 4) Prepare the instalation Bochs
I edit the bochsrc.txt file so I edit the bochsrc.txt file so
- WinMe.img is diskc - WinMe.img is ata0-master
- Win98.img is diskd - Win98.img is ata0-slave
5) Running setup 5) Running setup
@ -9884,7 +9817,7 @@ Parts/Attachments:
11) That's all 11) That's all
Now you can comment out the diskd line in the bochsrc.txt. WinMe.img Now you can comment out the ata0-slave line in the bochsrc.txt. WinMe.img
contains a working WinMe. contains a working WinMe.
NOTE: if you lower the IPS, WinMe will be unstable ... surelly NOTE: if you lower the IPS, WinMe will be unstable ... surelly
@ -10042,7 +9975,7 @@ ata1: enabled=0
ata2: enabled=0 ata2: enabled=0
ata3: enabled=0 ata3: enabled=0
romimage: file=bios/BIOS-bochs-latest, address=0xf0000 romimage: file=bios/BIOS-bochs-latest, address=0xf0000
vgaromimage: bios/VGABIOS-elpin-2.40 vgaromimage: file=bios/VGABIOS-lgpl-latest
megs: 64 megs: 64
parport1: enabled=1, file="lp.pipe" parport1: enabled=1, file="lp.pipe"
com1: enabled=0 com1: enabled=0
@ -10054,14 +9987,12 @@ keyboard_serial_delay: 250
keyboard_paste_delay: 100000 keyboard_paste_delay: 100000
floppy_command_delay: 500 floppy_command_delay: 500
ips: 3000000 ips: 3000000
pit: realtime=1 clock: sync=realtime, time0=0
text_snapshot_check: 0 text_snapshot_check: 0
mouse: enabled=0 mouse: enabled=0
private_colormap: enabled=0 private_colormap: enabled=0
i440fxsupport: enabled=0 i440fxsupport: enabled=0
time0: 0
# no ne2k # no ne2k
newharddrivesupport: enabled=1
# no loader # no loader
log: osr5.log log: osr5.log
logprefix: %t-%e-%i%d logprefix: %t-%e-%i%d
@ -10114,7 +10045,7 @@ step took just over eight hours! (BTW, it was MUCH longer in version 1.4.1. Gr
After the install finishes, you will need to change the following lines in .bochsrc file: After the install finishes, you will need to change the following lines in .bochsrc file:
<programlisting> <programlisting>
ne2k: ioaddr=0x280, irq=10, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0 ne2k: ioaddr=0x280, irq=10, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
boot: c boot: disk
</programlisting> </programlisting>
Obviously, if you're not using Linux, the ethmode and ethdev values on the ne2k line will be different. Obviously, if you're not using Linux, the ethmode and ethdev values on the ne2k line will be different.
Also, since Bochs uses "raw" network card access, you'll have to "setuid root" on the Bochs executable: Also, since Bochs uses "raw" network card access, you'll have to "setuid root" on the Bochs executable:

View File

@ -17,7 +17,7 @@ home directory.
Starting with Bochs 1.3, you can use environment variables in Starting with Bochs 1.3, you can use environment variables in
the bochsrc file, for example: the bochsrc file, for example:
diskc: file="$IMAGES/30M.sample", cyl=615, heads=6, spt=17 floppya: 1_44="$IMAGES/bootdisk.img", status=inserted
Starting with version 2.0, two environment variables have a built-in Starting with version 2.0, two environment variables have a built-in
default value which is set at compile time. $BXSHARE points to the default value which is set at compile time. $BXSHARE points to the
@ -130,13 +130,12 @@ Example:
.TP .TP
.I "vgaromimage:" .I "vgaromimage:"
You also need to load a VGA ROM BIOS into You also need to load a VGA ROM BIOS into 0xC0000.
C0000.
Examples: Examples:
vgaromimage: bios/VGABIOS-elpin-2.40 vgaromimage: file=bios/VGABIOS-elpin-2.40
vgaromimage: bios/VGABIOS-lgpl-latest vgaromimage: file=bios/VGABIOS-lgpl-latest
vgaromimage: $BXSHARE/VGABIOS-lgpl-latest vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
.TP .TP
.I "floppya: \fPor \fIfloppyb:" .I "floppya: \fPor \fIfloppyb:"
@ -244,22 +243,28 @@ Examples:
ata3-slave: type=cdrom, path=iso.sample, status=inserted ata3-slave: type=cdrom, path=iso.sample, status=inserted
.TP .TP
.I "com1:" .I "com1: \fP, \fIcom2: \fP, \fIcom3: \fPor \fIcom4:"
This defines a serial (COM) port. You can specify a device to use as com1. This defines a serial port (UART type 16550A). In the 'term' you can specify
This can be a real serial line, or a pty. To use a pty (under X/Unix), a device to use as com1. This can be a real serial line, or a pty. To use
create two windows (xterms, usually). One of them will run bochs, and the a pty (under X/Unix), create two windows (xterms, usually). One of them will
other will act as com1. Find out the tty the com1 window using the `tty' run bochs, and the other will act as com1. Find out the tty the com1 window
command, and use that as the `dev' parameter. Then do `sleep 1000000' in using the `tty' command, and use that as the `dev' parameter. Then do
the com1 window to keep the shell from messing with things, and run bochs in `sleep 1000000' in the com1 window to keep the shell from messing with things,
the other window. Serial I/O to com1 (port 0x3f8) will all go to the other and run bochs in the other window. Serial I/O to com1 (port 0x3f8) will all
window. go to the other window.
Other serial modes are 'null' (no input/output), 'file' (output to a file
specified as the 'dev' parameter), 'raw' (use the real serial port - under
construction for win32) and 'mouse' (standard serial mouse - requires
mouse option setting 'type=serial' or 'type=serial_wheel')
Examples: Examples:
com1: enabled=1, dev=/dev/ttyp7 com1: enabled=term, dev=/dev/ttyp7
com1: enabled=0 com2: enabled=1, mode=file, dev=serial.out
com1: enabled=1, mode=mouse
.TP .TP
.I "parport1:" .I "parport1: \fPor \fIparport2:"
This defines a parallel (printer) port. When turned on and an output file is This defines a parallel (printer) port. When turned on and an output file is
defined the emulated printer port sends characters printed by the guest defined the emulated printer port sends characters printed by the guest
OS into the output file. On some platforms a device filename can be used to OS into the output file. On some platforms a device filename can be used to
@ -267,29 +272,17 @@ send the data to the real parallel port (e.g. "/dev/lp0" on Linux).
Examples: Examples:
parport1: enabled=1, file=parport.out parport1: enabled=1, file=parport.out
parport1: enabled=1, file="/dev/lp0" parport2: enabled=1, file="/dev/lp0"
parport1: enabled=0 parport1: enabled=0
.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 .TP
.I "boot:" .I "boot:"
This defines your boot drive. You can either This defines the boot sequence. Now you can specify up to 3 boot drives.
boot from 'floppy', 'disk' or 'cdrom'. You can either boot from 'floppy', 'disk' or 'cdrom'
(legacy 'a' and 'c' are also supported) (legacy 'a' and 'c' are also supported)
Example: Example:
boot: disk boot: cdrom, floppy, disk
.TP .TP
.I "floppy_bootsig_check:" .I "floppy_bootsig_check:"
@ -588,18 +581,23 @@ Example:
.TP .TP
.I "mouse:" .I "mouse:"
This option prevents Bochs from creating mouse This option prevents Bochs from creating mouse "events"
"events" unless a mouse is enabled. The unless a mouse is enabled. The hardware emulation itself
hardware emulation itself is not disabled by is not disabled by this. You can turn the mouse on by
this. You can turn the mouse on by setting setting enabled to 1, or turn it off by setting enabled
enabled to 1, or turn it off by setting to 0. Unless you have a particular reason for enabling
enabled to 0. Unless you have a particular the mouse by default, it is recommended that you leave
reason for enabling the mouse by default, it off. You can also toggle the mouse usage at runtime
it is recommended that you leave it off. (control key + middle mouse button).
With the mouse type option you can select the type of mouse to emulate.
The default value is 'ps2'. The other choices are 'imps2' (wheel mouse
on PS/2), 'serial', 'serial_wheel' (one com port requires setting
'mode=mouse') and 'usb' (3-button mouse on USB port #1 - requires PCI and
USB support).
Example: Examples:
mouse: enabled=1
mouse: enabled=0 mouse: enabled=0
mouse: enabled=1, type=imps2
.TP .TP
.I "private_colormap:" .I "private_colormap:"
@ -722,50 +720,12 @@ Example:
.TP .TP
.I "usb1:" .I "usb1:"
Enables the i440fx PCI USB root hub. USB devices with access to real hardware Controls the presence of the USB root hub which is a part of the i440FX PCI
are not implemented yet. PCI support must be enabled, too. chipset. If you enable USB and use the mouse option 'type=usb' you'll have
a 3-button mouse connected to port #1. PCI support must be enabled, too.
Example: Example:
usb1: enabled=1, ioaddr=0xFF80, irq=10 usb1: enabled=1, ioaddr=0xFF80
.TP
.I "diskc:"
or
.I "diskd:"
The \fBdiskc\fR and \fBdiskd\fR options are deprecated. Use \fBata*\fR
options instead.
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:"
The \fBcdromd\fR option is deprecated. Use \fBata*\fR options instead.
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 .TP
.I "pit:" .I "pit:"