转自http://hi.baidu.com/ch_sylar/item/21a92fe9984e413f86d9de5b
Unbuntu下安装Bochs过程中出现的错误和Bochs的配置
Bochs安装:
看《Orange's:一个操作系统的实现》,想尝试下Bochs虚拟机的调试功能。哎,么想到出现了
一大堆大堆的问题,一直安装不成功,让我有种“神马都是浮云”的感觉,失望极了。
想想学习以来,前赴后继出现了一大堆问题,一个个解决了;
再想想余渊老师在书里面写的“只要用心,就没有学不会的东西”。
狠下心来,决定把这些bug解决了。
GNU/Linux系统:Ubuntu9.04(虽然10.10出来很久了,安装一次,没找到A卡驱动)
Bochs: Bochs2.4
我从Bochs官网上下了一个包bochs-2.4.tar.gz(书上用的是bochs-2.3.5.tar.gz)
按照书上的步骤:tar vxzf bochs-2.4.tar.gz
cd bochs-2.4
./configure –enable-debugger –enable-disasm
结果出现了第1个错误:
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
不知道怎么解决,去个google了一下,网上的前辈们解决方法是:
apt-get install build-essential 我在9.04上面试过,估计已经安装过了,安装不成功。
我就试试安装 g++ 。
解决方法:sudo apt-get install g++
网友们的Blog也提到了在安装过程中出现的其他问题,我预先安装了一些包,避免这些错误。
错误2:checking for default gui on this platform... x11
ERROR: X windows gui was selected, but X windows libraries were not found.
解决方法:通过新立得安装,sudo apt-get install xorg-dev
错误3:ERROR: pkg-config was not found, or unable to access the gtk+-2.0 package.
解决方法: 通过新立得安装 sudo apt-get install libgtk2.0-dev
完成上面的步骤之后,进入bochs-2.4目录。
在终端输入 ./configure –enable-debugger –enable-disasm
经过一段时间后,没提示什么错误,我在输入 make。在这过程中会出现一些警告,如果没是那么错误,就行了,这差不多要等几分钟。
最后输入sudo make install.
完成这些之后:输入 bochs,如果在终端出现一个 7个选项的菜单,表示你安装成功。
Bochs配置:
Boch对初学者来说是一个比较难的问题,我也是一个初学者,真正接触和使用GNU/Linux系
统不到半年。在Linux下面需要配置这个配置那个自己安装软件,初看刚觉很难,其实不然,上
网搜搜,前辈们都碰到过这些问题,他们特很好心,把这些问题写出来。
Bochs的配置文件:bochsrc
###############################################################
# Configuration file for Bochs(Linux)
###############################################################
# how much memory the emulated machine will have
megs: 32# filename of ROM images
#romimage: file=/usr/share/bochs/BIOS-bochs-latest
romimage:file=/usr/local/share/bochs/BIOS-bochs-latest
#vgaromimage:file=/usr/share/vgabios/vgabios.bin
vgaromimage:file=/usr/local/share/bochs/VGABIOS-lgpl-latest
# what disk images will be used
floppya: 1_44=a.img, status=inserted
# choose the boot disk.
boot: floppy
# where do we send log messages?
# log: bochsout.txt
# disable the mouse
mouse: enabled=0
# enable key mapping, using US layout as default.
#keyboard_mapping: enabled=1, map=/usr/share/bochs/keymaps/x11-pc-us.map
keyboard_mapping: enabled=1, map=/usr/local/share/bochs/keymaps/x11-pc-us.map
我这个配置文件是对《Orange's:一个操作系统的实现》书中一配置文件修改而成的,使用也是光盘中的a.img文件。如果红色字体部分路径不正确,会出现“can not open ROM imagefile”之类的错误提示。
修改好这个之后,经如输入bochsrc所在的文件夹(bochsrc和镜像文件a.img最好放在一个文件夹里面)
在终端输入:bochs -f bochsrc 会出现一个菜单,提示输入6后出现另外一个菜单,再输入c,哎,终于出现了了“Hello ,OS World”,MBR终于在bochs里面启动成功。虽然几天前在Windows下用VirtualBox引导MBR成功,感觉现在比那时更激动。
从下午忙到晚上十一点多,但是觉得很值,以后也可以用来调试Linux内核代码。 Windows下安装的Boch配置文件: # how much memory the emulated machine will have
megs: 32
# filename of ROM images
romimage: file=$BXSHARE/BIOS-bochs-latest
vgaromimage:file = $BXSHARE/VGABIOS-elpin-2.40
# what disk images will be used
floppya: 1_44=a.img , status=inserted
# choose the boot disk.
boot: a
# where do we send log messages?
log: bochsout.txt
mouse: enabled=0
# enable key mapping, using US layout as default.
keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-us.map