在安装bochs之前,我们先需要安装虚拟机和linux发行版,也可以安装双系统,总之有个linux操作系统就好。
我是在ubuntu14.04系统下安装bochs的。
安装Bochs
以下为安装步骤
- 下载bochs。官方地址是http://sourceforge.net/projects/bochs/files/bochs/,安装的版本是2.6.2,下载后的文件是bochs-2.6.2.tar.gz。
- 解压压缩包 tar zxvf bochs-2.6.2.tar.gz
- 编译。先进入到目录 cd bochs-2.6.2,开始configure、 make、 make install三步曲
./configure --prefix=/your_path/bochs --enable-debugger --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11 LDFLAGS=‘-pthread‘ LIBS=‘-lX11‘
注意各行结尾‘\‘字符前有个空格,/your_path/要修改为你想要安装的路径,相比与原书的配置,我在上面增加了两行(红色)的配置,这对后面的编译有帮助,会减少一些问题的出现。
configure之后,会生成Makefile,可以编译了。
make
make的过程中可能遇到各种问题,我在下面罗列一下我遇到的。
① 由于g++没有安装,出现C++ preprocessor "/lib/cpp" fail sanity check。
解决办法:安装g++
sudo apt-get install g++
② fatal error: gtk/gtk.h: No such file or directory
解决办法:输入下面的命令行
sudo apt-get install libgtk2.0-dev
如果还不行,尝试在bochs/gui下的makefile 第104后面增加`pkg-config --cflags --libs gtk+-2.0`(注意是 ` ),有可能这也解决不了,那么可以尝试根据出错信息定位所在的目录,修改该目录下的makefile,在相应位置加入`pkg-config --cflags --libs gtk+-2.0`。
$(CXX) -c $(CXXFLAGS) $(LOCAL_CXXFLAGS) $< -o [email protected] `pkg-config --cflags --libs gtk+-2.0`
③ undefined reference to symbol ’XSetForeground‘
解决办法:输入下面命令行
sudo apt-get install xorg-dev
如果上面configure时,没有设置LIBS=‘lX11‘,也会出现这个问题。
④ undefined reference to ‘pthread_create‘
解决办法: configure时加入LDFLAGS=‘-pthread‘。
最后make install
make install
至此,无错误信息,bochs安装成功。
运行bochs
安装bochs的工作已经完成了,如果还出现其他问题,尝试一下在bing、google、baidu等等搜索解决问题,想当初在网上做操作系统JOS实验时,我可是花了大量时间在安装bochs上,那时都快崩溃了,总之很多因素都会导致配置过程中失败,请坚持下去,因为很多人像我一样在安装过程中挣扎着,匍匐前行,如果你安装成功了,也祝贺你,这等于成功了一大半!!
下面开始准备运行bochs:
我们先试试运行下bochs,先进入我们上面配置时制定的bochs地址,然后输入下面的命令:
bin/bochs
正常来说会出现以下界面:
如果不是,尝试根据错误信息解决。
之后我打算省略书上的一些细节,直接描述应该做些什么。
首先,我们创建一个虚拟硬盘,输入以下命令:
bin/bximage -hd -mode="flat" -size=60 -q hd60M.img
然后,我们在当前目录创建一个bochsrc文件了,这是用来配置bochs的,文件名为bochsrc.disk,文件内容为:
#Bochs运行中使用的内存,设置为32Mmegs: 32 #设置真实机器的BIOS和VGA BIOS #修改成你们对应的地址 romimage: file=/home/thougr/Desktop/mybochs/bochs/share/bochs/BIOS-bochs-latest vgaromimage: file=/home/thougr/Desktop/mybochs/bochs/share/bochs/VGABIOS-lgpl-latest #设置Bochs所使用的磁盘#设置启动盘符 boot: disk #设置日志文件的输出 log: bochs.out #开启或关闭某些功能,修改成你们对应的地址 mouse: enabled=0 keyboard_mapping: enabled=1, map=/home/thougr/Desktop/mybochs/bochs/share/bochs/keymaps/x11-pc-us.map #硬盘设置 ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 ata0-master: type=disk, path="hd60M.img", mode=flat, cylinders=121, heads=16, spt=63 #增加bochs对gdb的支持,我们在这里不使用,所以注释掉了 #gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0
执行下列命令运行bochs:
bin/bochs -f bochsrc.disk
结果如图下:
输入‘c‘继续运行(默默地吐槽一句,这是书上没有提示做的)
结果如下图:
显示这个错误时正常的,因为我们还没有设置启动盘,不要桑心,这个问题之后会解决的,做到这里已经很成功了!!!
原文地址:https://www.cnblogs.com/thougr/p/9716192.html