您的位置:首页 > 运维架构 > Linux

ubuntu下使用bochs调试linux0.11

2013-10-31 11:54 441 查看
http://oldlinux.org/Linux.old/bochs/linux-0.11-devel-040329.zip
用synaptic安装
bochs
bochsbios
bochs-x
vgabios
配置文件bochsrc-hd.bxrc修改如下,修改好后执行bochs -qf bochsrc-hd.bxrc
# You many now use double quotes around pathnames, in case

# your pathname includes spaces.

#=======================================================================

# ROMIMAGE:

# You now need to load a ROM BIOS into F0000-FFFFF. I've wiped

# out most of the BIOS hooks, and replace them with real BIOS

# support. Normally, you can use a precompiled BIOS in the bios/

# directory, named BIOS-bochs-yymmdd. Use the latest one in there.

#=======================================================================

#romimage: bios/BIOS-bochs-970717a

romimage: file=$BXSHARE/BIOS-bochs-latest

#romimage: file=bios/BIOS-bochs-2-processors, address=0xf0000

#romimage: file=bios/BIOS-bochs-4-processors, address=0xf0000

#romimage: file=bios/rombios.bin, address=0xf0000

#=======================================================================

# MEGS

# set this to the default number of Megabytes of memory you want

# to emulate. You may also pass the '-megs xyz' option to bochs

#

# The default is 32MB, most OS's won't need more than that.

#=======================================================================

#megs: 256

#megs: 128

#megs: 64

#megs: 32

megs: 16

#megs: 8

#=======================================================================

# VGAROMIMAGE

# You now need to load a VGA ROM BIOS into C0000.

#=======================================================================

#vgaromimage: bios/VGABIOS-lgpl-0.3a

vgaromimage: file=/usr/share/vgabios/vgabios.bin

#=======================================================================

# FLOPPYA:

# Point this to pathname of floppy image file or device

# This should be of a bootable floppy(image/device) if you're

# booting from 'a'.

#

# You can set the initial status of the media to 'ejected' or 'inserted'.

# floppya: 2_88=path, status=ejected (2.88M 3.5" floppy)

# floppya: 1_44=path, status=inserted (1.44M 3.5" floppy)

# floppya: 1_2=path, status=ejected (1.2M 5.25" floppy)

# floppya: 720k=path, status=inserted (720K 3.5" floppy)

#

# The path should be the name of a disk image file. On unix, you can use

# a raw device name such as /dev/fd0 on Linux. On WinNT and Win2k, use

# drive letters such as a: or b: as the path. Raw floppy access is not

# supported on Windows 95 and 98.

#=======================================================================

#floppya: 1_44=/dev/fd0, status=inserted

#floppya: file=../1.44, status=inserted

#floppya: 1_44=/dev/fd0H1440, status=inserted

#floppya: 1_2=../1_2, status=inserted

#floppya: 1_44=a:, status=inserted # for win32

floppya: 1_44="bootimage-0.11-hd", status=inserted

#=======================================================================

# FLOPPYB:

# See FLOPPYA above for syntax

#=======================================================================

#floppyb: 1_44=b:, status=inserted

floppyb: 1_44=diskb.img, status=inserted

#=======================================================================

# DISKC: file=, cyl=, heads=, spt=

# Point this at a 10M, 20M, or 30M 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

#=======================================================================

#ata0-master: type=disk, path="hd.img", cylinders=227, heads=16, spt=63

ata0-master: type=disk, path="hdc-0.11.img", mode=flat, cylinders=121, heads=16, spt=63

#=======================================================================

# 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

#=======================================================================

# CDROM

#

# 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. Depending

# on versions of windows and drivers, you may only be able to access the

# "first" cdrom in the system.

#

# NOTE: diskd and cdromd must not be used together!

#=======================================================================

#cdromd: dev=D:, status=inserted # for win32

#cdromd: dev=/dev/cdrom, status=inserted

#=======================================================================

# NEWHARDDRIVESUPPORT: enabled=[0|1]

# As of cvs version on 5/17/2001, newharddrivesupport is on by default.

#=======================================================================

#newharddrivesupport: enabled=1

#=======================================================================

# BOOT:

# This defines your boot drive.

# You can either boot from 'a', 'c' or 'cdrom'

# Examples:

# boot: c

# boot: a

# boot: cdrom

#=======================================================================

boot: a

#boot: c

#=======================================================================

# LOG:

# 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. :^(

#

# Examples:

# log: ./bochs.out

# log: /dev/tty

#=======================================================================

#log: /dev/null

log: bochsout.txt

#=======================================================================

# LOG CONTROLS

#

# Bochs now has four severity levels for event logging.

# panic: cannot proceed. If you choose to continue after a panic,

# don't be surprised if you get strange behavior or crashes.

# error: something went wrong, but it is probably safe to continue the

# simulation.

# info: interesting or useful messages.

# debug: messages useful only when debugging the code. This may

# spit out thousands per second.

#

# For events of each level, you can choose to crash, report, or ignore.

# TODO: allow choice based on the facility: e.g. crash on panics from

# everything except the cdrom, and only report those.

#

# If you are experiencing many panics, it can be helpful to change

# the panic action to report instead of fatal. However, be aware

# that anything executed after a panic is uncharted territory and can

# cause bochs to become unstable. The panic is a "graceful exit," so

# if you disable it you may get a spectacular disaster instead.

#=======================================================================

#panic: action=ask

#error: action=report

#info: action=report

#debug: action=ignore

#=======================================================================

# com1:

# Specify the device to use as com1. This can be a real serial line, or

# a pty. To use a pty (under X/Unix), create two windows (xterms,

# usually). One of them will run bochs, and the other will act as com1.

# Find out the tty the com1 window using the `tty' command, and use that

# as the `dev' parameter. Then do `sleep 1000000' in the com1 window to

# keep the shell from messing with things, and run bochs in the other

# window. Serial I/O to com1 (port 0x3f8) will all go to the other

# window.

#=======================================================================

#com1: dev=/dev/ttyp9

#=======================================================================

# PARPORT1:

# This defines a parallel (printer) port. When turned on, the emulated

# printer port sends characters printed by the guest OS into an output file.

#

# Examples:

# parport1: enable=1, file="parport.out"

# parport1: enable=0

#=======================================================================

#parport1: enable=0

#=======================================================================

# SB16:

# This defines the SB16 sound emulation. It can have several of the

# following properties.

# All properties are in the format sb16: property=value

# midi: The filename is where the midi data is sent. This can be a

# device or just a file if you want to record the midi data.

# midimode:

# 0=no data

# 1=output to device (system dependent. midi denotes the device driver)

# 2=SMF file output, including headers

# 3=output the midi data stream to the file (no midi headers and no

# delta times, just command and data bytes)

# wave: This is the device/file where wave output is stored

# wavemode:

# 0=no data

# 1=output to device (system dependent. wave denotes the device driver)

# 2=VOC file output, incl. headers

# 3=output the raw wave stream to the file

# log: The file to write the sb16 emulator messages to.

# loglevel:

# 0=no log

# 1=only midi program and bank changes

# 2=severe errors

# 3=all errors

# 4=all errors plus all port accesses

# 5=all errors and port accesses plus a lot of extra info

# dmatimer:

# microseconds per second for a DMA cycle. Make it smaller to fix

# non-continous sound. 750000 is usually a good value. This needs a

# reasonably correct setting for IPS.

#

# For an example look at the next line:

#=======================================================================

#sb16: midimode=1, midi=/dev/midi00, wavemode=1, wave=/dev/dsp, loglevel=2, log=sb16.log, #dmatimer=600000

#=======================================================================

# VGA_UPDATE_INTERVAL:

# Video memory is scanned for updates and screen updated every so many

# virtual seconds. The default is 300000, about 3Hz. This is generally

# plenty. Keep in mind that you must tweak the 'ips:' directive

# to be as close to the number of emulated instructions-per-second

# your workstation can do, for this to be accurate.

#

# Examples:

# vga_update_interval: 250000

#=======================================================================

vga_update_interval: 300000

# using for Winstone '98 tests

#vga_update_interval: 100000

#=======================================================================

# KEYBOARD_SERIAL_DELAY:

# Approximate time in microseconds that it takes one character to

# be transfered from the keyboard to controller over the serial path.

# Examples:

# keyboard_serial_delay: 200

#=======================================================================

keyboard_serial_delay: 200

#=======================================================================

# KEYBOARD_PASTE_DELAY:

# Approximate time in microseconds between attempts to paste

# characters to the keyboard controller. This leaves time for the

# guest os to deal with the flow of characters. The ideal setting

# depends on how your operating system processes characters. The

# default of 100000 usec (.1 seconds) was chosen because it works

# consistently in Windows.

#

# If your OS is losing characters during a paste, increase the paste

# delay until it stops losing characters.

#

# Examples:

# keyboard_paste_delay: 100000

#=======================================================================

keyboard_paste_delay: 100000

#=======================================================================

# FLOPPY_COMMAND_DELAY:

# Time in microseconds to wait before completing some floppy commands

# such as read/write/seek/etc, which normally have a delay associated.

# I had this hardwired to 50,000 before.

#

# Examples:

# floppy_command_delay: 50000

#=======================================================================

#floppy_command_delay: 50000

#=======================================================================

# IPS:

# Emulated Instructions Per Second. This is the number of IPS that bochs

# is capable of running on your machine. Read the note in config.h

# on how to find this. Make sure to recompile after.

#

# IPS is used to calibrate many time-dependent events within the bochs

# simulation. For example, changing IPS affects the frequency of VGA

# updates, the duration of time before a key starts to autorepeat, and

# the measurement of BogoMips and other benchmarks.

#

# Examples:

# Machine Mips

# ________________________________________________________________

# 650Mhz Athlon K-7 with Linux 2.4.4/egcs-2.91.66 2 to 2.5 Mips

# 400Mhz Pentium II with Linux 2.0.36/egcs-1.0.3 1 to 1.8 Mips

# 166Mhz 64bit Sparc with Solaris 2.x approx 0.75 Mips

# 200Mhz Pentium with Linux 2.x approx 0.5 Mips

#

#=======================================================================

#ips: 4000000

#=======================================================================

# mouse: Not used in any of the GUI specific modules, but the option

# bx_options.mouse_enabled is set to this value. The idea,

# is that the GUI code should not generate mouse events when

# not enabled. The hardware emualation itself is not disabled

# by this. This is to facilitate deterministic runs of bochs.

#

# Examples:

# mouse: enabled=1

# mouse: enabled=0

#

# I wouldn't recommend enabling the mouse by default, unless you have a

# really good reason to do so.

#=======================================================================

mouse: enabled=0

#=======================================================================

# private_colormap: Request that the GUI create and use it's own

# non-shared colormap. This colormap will be used

# when in the bochs window. If not enabled, a

# shared colormap scheme may be used. Not implemented

# on all GUI's.

#

# Examples:

# private_colormap: enabled=1

# private_colormap: enabled=0

#=======================================================================

private_colormap: enabled=0

#=======================================================================

# fullscreen: ONLY IMPLEMENTED ON AMIGA

# Request that Bochs occupy the entire screen instead of a

# window.

#

# Examples:

# fullscreen: enabled=0

# fullscreen: enabled=1

#=======================================================================

fullscreen: enabled=0

screenmode: name="sample"

#=======================================================================

# ne2k: NE2000 compatible ethernet adapter

#

# Examples:

# ne2k: ioaddr=IOADDR, irq=IRQ, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE

#

# ioaddr, irc: You probably won't need to change ioaddr and irq, unless there

# are IRQ conflicts.

#

# mac: The MAC address MUST NOT match the address of any machine on the net.

# Also, the first byte must be an even number (bit 0 set means a multicast

# 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.

#

# 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.

#=======================================================================

# 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

#=======================================================================

# KEYBOARD_MAPPING:

# This enables a remap of a physical localized keyboard to a

# virtualized us keyboard, as the PC architecture expects.

# If enabled, the keymap file must be specified.

#

# Examples:

# keyboard_mapping: enabled=1, map=gui/keymaps/x11-pc-de.map

#=======================================================================

#keyboard_mapping: enabled=0, map=

#=======================================================================

# KEYBOARD_TYPE:

# Type of keyboard return by a "identify keyboard" command to the

# keyboard controler. It must be one of "xt", "at" or "mf".

# Defaults to "mf". It should be ok for almost everybody. A known

# exception is french macs, that do have a "at"-like keyboard.

#

# Examples:

# keyboard_type: mf

#=======================================================================

#keyboard_type: mf

#=======================================================================

# other stuff

#=======================================================================

# magic_break

#load32bitOSImage: os=nullkernel, path=../kernel.img, iolog=../vga_io.log

#load32bitOSImage: os=linux, path=../linux.img, iolog=../vga_io.log, initrd=../initrd.img

i440fxsupport: enabled=0

#time0: 938581955

#=======================================================================

# for Macintosh, use the style of pathnames in the following

# examples.

#

# vgaromimage: :bios:VGABIOS-elpin-2.20

# romimage: file=:bios:BIOS-bochs-981222a, address=0xf0000

# floppya: 1_44=[fd:], status=inserted

#=======================================================================

阅读(1345) | 评论(0) | 转发(0) |

0
上一篇:linux内核中ASCII字符判断函数

下一篇:C++引用

相关热门文章

ubuntu apt-get command

gentoo-howto-hibernate休眠问...

ubuntu 10.04 安装NBU 6.5.4 c...

infobright实战

Openstack G版本 Ubuntu13.04...

linux 常见服务端口

【ROOTFS搭建】busybox的httpd...

什么是shell

linux socket的bug??

linux的线程是否受到了保护?...

ChinaUnix & ITPUB社区12周年...

ssh连接出现以下提示,求解...

如何扩展MYSQL

准备做一个大型门户,用户什么...

gbk or utf8

给主人留下些什么吧!~~

评论热议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: