免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1544 | 回复: 0
打印 上一主题 下一主题

Ubuntu下bochs虚拟机的安装配置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-12 16:31 |只看该作者 |倒序浏览
十一放假七天,本计划回家帮一帮手的,可惜跑到火车站却没买到票。而此时几个高中同学又找来了,说许久不见,要好好聚聚。于是,几个人一合计就去了华山。就这样,我玩了三天半,睡了一天,做了一天的作业,剩下的一天半整了一下虚拟机bochs,呵呵。
     Bochs是由Kevin Lawton 于1994年开始开发的一个用于完全模拟Intel的x86模拟器。开始它仅仅是一个商业产品,不过可以购买到它的源程序。2000年3月,Mandrakesoft买下了Bochs,并把它置于GNU
LGPL下使之成为一个开源程序。在2001年3月,Kevin把Bochs的家从bochs.com移到了
bochs.sourceforge.net上了。
  
Bochs是用C++开发的,它被设计成可以运行于多种主流平台下,包括x86, PPC, Alpha,
Sun和MIPS。它完全是靠软件模拟来实现的。从启动到重启,包括PC的外设键盘,鼠标,VGA卡,磁盘,网卡等,全部都是有软件来模拟的。这和其它的
模拟器如VMware,plex86等有很大的区别。也正是由于Bochs完全是靠软件来模拟整个PC环境,因此它非常的适合开发操作系统,这对广大操作
系统爱好者来说是一个福音。因为有它,使得调试操作系统非常非常的容易,它自带一个调试器bochsdbg,它可以从PC机刚启动的那一刹那起就开始模
拟,注意,这不是从读取磁盘中的引导扇区那开始模拟。
   鉴于Bochs对操作系统设计的巨大作用,《操作系统:设计与实现》这一伟大的操作系统书籍所带的光盘中就有Bochs软件。而且就现在linux内核的调试也很多时候也要靠它哦。
  
我很久很久以前曾在XXP上使用过它,不过自从转到Ubuntu上后就没怎么动过这法宝了。最近正在学习操作系统课程,碰到很多很多抽象的概念,其实操作
系统课本我已经看过多遍,但还是对那些概念没有一个感性的认识,只是每次看时有些感觉过后就怎么都记不起来了,郁闷哪!
   这次我试验了一下在Ubuntu安装配置bochs,在网上抓的资料全都是独立编译的。其中感觉比较好的是这篇:[Bochs HOWTO:
http://www.wangcong.org/articles/bochs.html
]。
   其实,在Ubuntu下只用一条命令就可以搞定:
                      sudo apt-get install bochs
   但是,只是这样还差很远。我就遇到了这些问题,而网上却少有相关的资料。由此,我把我遇到的问题及解决方法发出来以供大家参考。
问题一、安装bochs在terminal下输入下列代码
sudo apt-get install bochs
这样安装结束后,在我使用bochs的时候出现了下列错误:
[color="#f00000"]Event type: PANIC
Device: [     ]
Message: dlopen failed for module 'x': file not found
这是由于在安装的时候,少安装了个[color="#f00000"]bochs-x包
这个包可以在
http://packages.ubuntu.com/dapper/misc/bochs-x
找到
也可以在terminal下面输入
[color="#f00000"]sudo apt-get install bochs-x
这样才算安装完毕了。
  问题二、启动问题
点进入系统后控制台出现下面的提示:
Please choose one: [6] 6
00000000000i[     ] installing win32 module as the Bochs GUI
00000000000i[     ] using log file bochsout.txt
========================================================================
Event type: PANIC
Device: [MEM0 ]
Message: ROM: System BIOS must end at 0xfffff
A PANIC has occurred.  Do you want to:
  cont       - continue execution
  alwayscont - continue execution, and don't ask again.
               This affects only PANIC events from device [MEM0 ]
  die        - stop execution now
  abort      - dump core
Choose one of the actions above: [die]
问题原因:
在2.3.5以前的bochs使用的BIOS-bochs-latest是64k的,那个时候需要加上
romimage: file=BIOS-bochs-latest,address=0xf0000
在2.3.5中的BIOS-bochs-latest更新了,变成了128k的,这个时候配置需要改为
romimage: file=$BXSHARE/BIOS-bochs-latest
解决方法:
去掉配置文件中的address那个
问题三、bochs的启动配置文件bochsrc
一般网上的资料都会提示你安装好后会有如下工具:
/usr/bin/bochs     Bochs启动程序
/usr/bin/bximage     Bochs带的制作磁盘镜像文件的工具
/usr/bin/bxcommit     把redolog放进flat磁盘镜像文件中去的交互工具
/usr/share/doc/bochs/bochsrc-sample.txt     Bochs配置文件的例子
/usr/share/bochs/BIOS-bochs-*     ROM BIOS镜像文件
/usr/share/bochs/VGABIOS-*     与VGA BIOS镜像文件相关的文件
/usr/bin/bochs-dlx     启动Bochs中DLX linux的程序
/usr/share/bochs/dlxlinux/     DLX Linux的目录,包含它的磁盘镜像文件和配置文件
/usr/share/bochs/keymaps/*.map     X11和SDL的keymap列表
其实在终端安装的却没有第四、第七和第八项,就连第二第三项也要另外安装:
       sudo apt-get install bximage
       sudo apt-get install bxcommit
所以,网上那些bochsrx在Ubuntu是运行不了的,就因为这点,我搞近一个下午,开始我老以为是配置文件不对呢。
普通的bochsrc:
romimage: file=$BXSHARE/BIOS-bochs-latest, address=0xf0000
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
但是在Ubuntu下压根就没有VGABIOS-lgpl-latest
例如:
lzel@lzel-desktop:/usr/share/bochs$ ls
BIOS-bochs-latest  BIOS-bochs-legacy  BIOS-qemu-latest   keymaps
lzel@lzel-desktop:/usr/share/bochs$
后来我才发现,从终端下安装bochs时它把VGA专门作为了一个程序安装在了/usr/share/vgabios/中了。
lzel@lzel-desktop:/usr/share/bochs$ ls /usr/share/vgabios/
vgabios.bin  vgabios.cirrus.bin  vgabios.cirrus.debug.bin  vgabios.debug.bin
lzel@lzel-desktop:/usr/share/bochs$
这样配置文件就要改为:
   romimage: file=$BXSHARE/BIOS-bochs-latest
   megs:4
   floppya: image=./boot.img,status=inserted
   vgaromimage: file=/usr/share/vgabios/vgabios.bin

boot:a                                                                                                                                                  
  log:out.bochs
OK,这样应该差不多了。如果还有其他的什么问题,欢迎给我发邮件交流:
lizeliang.linux@gmail.com
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/73569/showart_1287009.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP