Ubuntu10.04搭建linux-0.11编译环境(1.bochs安装和使用)

http://www.cnblogs.com/linucos/archive/2012/02/21/2361550.html

1. 安装bochs

sudo apt-get install bochs vgabios bochs-x bochsbios bochs-doc bochs-sdl

如有问题,找到合适源即可.

 

2. 获取可启动的linux-0.11 系统

1. 下载压缩包

http://oldlinux.org/Linux.old/bochs/linux-0.11-devel-060625.zip

2. 解压

unzip linux-0.11-devel-060625.zip

3. 进入

cd linux-0.11-devel-060625

 

3. 测试下载过来的镜像

在linux-0.11-devel-060625目录下

执行 bochs -f bochsrc-hd.bxrc

----- 发生错误以及解决办法 -----

(1) >>PANIC<< bochsrc-hd.bxrc:37: vgaromimage directive malformed.

A. 注释掉相应行

B. 改成:vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest

(2) >>PANIC<< bochsrc-hd.bxrc:284: directive 'floppy_command_delay' not understood

A. 注释掉相应行

(3) bochsrc-hd.bxrc:194: unknown parameter for parport1 ignored.

A. 注释掉

B. 改成:parport1: enabled=1, file="parport.out"

(4) >>PANIC<< bochsrc-hd.bxrc:307: directive 'ips' not understood

A. 注释掉

B. 改成:cpu: count=1, ips=1000000

(5) dlopen failed for module 'x': file not found

A. 配置文件顶部增加:

config_interface: textconfig                                                                                                                         
display_library: sdl

(来源于bochs默认配置文件 /etc/bochs-init/bochsrc)

(6) ROM: System BIOS must end at 0xfffff

A. romimage: file=$BXSHARE/BIOS-bochs-latest, address=0xf0000 改成 romimage: file=/usr/share/bochs/BIOS-bochs-latest

(7) 其他问题参考

http://www.cnblogs.com/soli/archive/2009/09/21/1571466.html

-----------------------------------------------------------------------------

重新执行 bochs -f bochsrc-hd.bxrc 即可.

 

注意:实际上,如果是以学习为目的的话,至此已经可以在现有的环境下学习linux-0.11的源码了,上边下载的镜像中,包含了linux-0.11源码,可以直接编译.

编译后,只需要把Image镜像写入到启动盘即可.

写入启动盘的方法是:(假设fd0是启动软盘)

dd if=Image of=/dev/fd0

(本文完)


<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(2337) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
带中文注释可成功编译运行的Linux0.11Bochs2.62实验环境说明 此注释以网上获得的“linux带中文注释的0.11版本”为基础,对照赵炯博士《Linux内核完全注释(0.11) 》V3.0版(http://oldlinux.org/download/clk011c-3.0.pdf)编辑而成。作为对赵博士感谢,以及对Linux初学者的回馈,特发布在CSDN上。 此注释可以在http://oldlinux.org/Linux.old/bochs/提供的Linux-0.11-devel-XXXXXX实验环境下正确编译成功,使用:"make disk"命令重启Bochs虚拟机后,新编译源码直接生效,便于学习者直接阅读源码,直接进行实验。 注意事项: 1、为了使注释版与实验环境上的Linux0.11内核保持一致,达到对应文件可以互换的目的,与Linux0.11原始版本相比,加入了15个系统调用函数(参见include/Linux/sys.h第78-92行。赵博士原书没有这部分注释,我不敢班门弄斧),其它相关的文件加入了相应的定义。新加入的代码只有函数体定义,没有具体实现,对其它原始代码没有改变、没有影响。 2、键盘定义改成了美式键盘(原始代码中是芬兰键盘,会导致个别键出问题,调试的时候我曾被迷糊了好久,以为自己把程序搞乱了)。 3、把网上VC版的注释统一改成了 “/* */” 格式的注释。经测试,在Linux0.11实验环境中(gcc1.40),只有标准C注释语法可以正常编译。 4、由于《Linux内核完全注释(0.11) 》原书版本更新的原因,注释中提到的图、表可能与V3.0版书中不一致。 5、由于代码中加入注释,代码行号发生变化,注释中提到的代码行号会出现不一致,建议对照3.0版查询对应内容。 6、实验方法:请先安装附带的Bochs2.62版安装包,双击Test.bxrc即可启动实验系统,执行命令:sh t,即可完成对linuxcn的编译。 7、linux目录中是此实验系统中/usr/src/linux提取出来的不含中文注释的linux0.11源码(此版本比原始的0.11版多15个系统调用函数),linuxcn是加入了中文注释的源码。 8、diskb.img是实验系统与Windows环境下进行文件交换的1.44M软盘映像,执行脚本命令"sh t"时会自动从此映像中读取linux.tar、linuxcn.tar包,解包并编译编译结果在:/usr/root/zw/linuxcn目录下。为了方便文件交换,建议使用7zip为压缩/解压缩工具(7zip可以直接生成tar包),用WinImage实现Windows环境与软件映像交换文件。 9、实验系统下 .profile中加入了几个命令,请读者注意。 10、若实验环境的启动盘被破坏,请用压缩包中的bootimage-0.11-hd覆盖对应文件即可。 11、若实验环境的要命文件系统被破坏,请用压缩包中的hdc-0.11-new.img覆盖对应文件即可。 2014-5-4 cyfx2288
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值