下载
bochs-2.5.1.tar.gz
http://bochs.sourceforge.net/cgi-bin/topper.pl?name=See+All+Releases&url=http://sourceforge.net/projects/bochs/files
Mac 在下载文件后,会自动把 gz 文件解压缩,得到 bochs-2.5.2.tar,缺省位置在用户home目录下的 Downloads 目录下。
因为我的用户名是 home,所以在我的机器上,bochs-2.5.2.tar 在 /Users/home/Downloads 中。
为了方便,我把 bochs-2.5.2.tar 拷贝到 /bochs 目录中。
取得 root 权限
$ su
Password:
输入密码的时候屏幕不会有任何显示。
缺省情况下,Mac 不启用 root 用户。启用 root 用户的步骤在这里。
http://support.apple.com/kb/HT1528?viewlocale=zh_CN&locale=zh_CN
解包
# cd /bochs
# tar xvf bochs-2.5.1.tar
# cd /bochs/bochs-2.5.1
生成 makefile
增加如下内容
在CFLAGS, LDFLAGS 中增加 "-arch i386 -m32"
CXX="g++ -arch i386 -m32"
export CXX
-enable-gdb-stub \
最后的结果是这样的
# this sets up the compile for MacOS X
#
# To support plugins on macosx, you must have "dlcompat" installed. You can
# get dlcompat by installing the fink package "dlcompat-devel". On the SF
# compile farm, dlcompat is in /sw/include and /sw/lib, so we have added
# those paths to the environment variables.
set echo
CFLAGS="-arch i386 -m32 -pipe -O3 -I/sw/include -fomit-frame-pointer -finline-functions -falign-loops=16 -falign-jumps=16 -falign-functions=16 -falign-labels=16 -falign-loops-max-skip=15 -falign-jumps-max-skip=15 -fprefetch-loop-arrays $CFLAGS"
CPATH="/sw/include"
CPPFLAGS=""
CXXFLAGS="$CFLAGS"
LDFLAGS="-arch i386 -m32 -L/sw/lib"
CXX="g++ -arch i386 -m32"
export CFLAGS
export CPATH
export CPPFLAGS
export CXXFLAGS
export LDFLAGS
export CXX
./configure --enable-sb16 \
--enable-ne2000 \
--enable-all-optimizations \
--enable-cpu-level=6 \
--enable-x86-64 \
--enable-gdb-stub \
--enable-pci \
--enable-clgd54xx \
--enable-usb \
--enable-plugins \
${CONFIGURE_ARGS}
其中 -enable-gdb-stub \ 可以不加,加上是为了远程调试。
# sh ./.conf.macosx
编译
# make
命令执行完成后在 /bochs/bochs-2.5.1 目录下会产生一个 bochs.app,这就是可以运行的 application。
运行
bochs.app 需要在图形界面下运行,并且还需要一些辅助文件。
为了不和其他的源文件混在一起,可以把 bochs.app 拷贝到其他的目录中,比如 /app。
还需要把 /bochs/bochs-2.5.1/bios 目录中的 BIOS-bochs-latest 和 VGABIOS-lgpl-latest 也拷贝到 /app 目录下。
另外,需要拷贝操作系统镜像到 /app 目录下,这里以《Linux 内核完全剖析》中介绍的 0.12 版的 Linux 为例。
下载如下软件包
下载后会自动解压缩为 linux-0.12-080324 目录。
把此目录下的 bootimage-0.12-hd 和 rootimage-0.12-hd 拷贝到 /app目录中。
最后还需要编写一个配置文件。
在 /bochs/bochs-2.5.1 目录下有一个配置文件的例子,文件名是 bochsrc-sample.txt。
我做了少量的修改,成为下面这个样子,并取名为 bochsrc,放在 /app 目录中。
romimage: file=BIOS-bochs-latest
cpu: count=1, ips=50000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
cpu: cpuid_limit_winnt=0
memory: guest=512, host=256
vgaromimage: file=VGABIOS-lgpl-latest
floppya: 1_44="bootimage-0.12-hd", status=inserted
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
ata0-master: type=disk, path="rootimage-0.12-hd", mode=flat, cylinders=487, heads=16, spt=63
boot: floppy
floppy_bootsig_check: disabled=0
log: bochsout.txt
panic: action=ask
error: action=report
info: action=report
debug: action=ignore
debugger_log: -
parport1: enabled=1, file="parport.out"
keyboard_serial_delay: 250
keyboard_paste_delay: 100000
mouse: enabled=0
private_colormap: enabled=0
keyboard_mapping: enabled=0, map=
pci: enabled=1, chipset=i440fx
完成,可以双击运行啦。
本文详细介绍了如何在Mac操作系统下安装并配置Bochs虚拟机,包括下载、解压、获取root权限、解包、生成makefile、修改配置文件、编译、运行等步骤,同时提供了必要的辅助文件和配置文件示例。
669

被折叠的 条评论
为什么被折叠?



