ubuntu9.04下用bochs安装及调试linux0.11内核
本帖最后由 michaelyao 于 2010-6-11 04:13 编辑 http://blog.chinaunix.net/u3/114733/showart.php?id=2251085 1.搭建编译环境 在ubuntu下,安装C语言开发环境(主要是gnu的一些Toolchains)。 $ sudo apt-get install build-essential 2.安装包含as86和ld86的软件包bin86 2.1 查找as86和ld86两个工具所在的软件包 $ apt-cache search as86 ld86 2.2 安装该软件包 $ apt-get install bin86 3.安装bochs $ sudo apt-get install bochs vgabios bochs-x bochsbios bochs-doc 4. 下载两个文件包: http://www.oldlinux.org/oldlinux/attachment.php?aid=658 name : linux-0.11-081030.tar.gz : 如果下不下来,google之。 http://oldlinux.org/Linux.old/bochs/linux-0.11-devel-060625.zip name : linux-0.11-devel-060625.zip这个应该可以下下来。 5. 修改Makefile。 GCC4.x 默认检查stack安全,会导致出现__stack_chk_fail错误。将linux-0.11-081030.tar.gz解压,cd进入linux-0.11目录修改下面三个Makefile文件: ./linux-0.11/kernel/Makefile、 ./linux-0.11/kernel/chr_dev/Makefile、 ./linux-0.11/fs/Makefile 三个文件,在 CFLAGS参数中加入-fno-stack-protector 6. make 运行之后,如果无错,那么会得到Image文件。 $ make 7. 解压linux-0.11-devel-060625.zip , 拷出hdc-0.11-new.img 文件到linux-0.11文件夹中(与Image在同一个文件夹中) 8. 编写bxrc文件如下: romimage: file=/usr/share/bochs/BIOS-bochs-latest#注意用绝对路径(原因见参考1) megs: 16 vgaromimage: file=/usr/share/vgabios/vgabios.bin#注意用绝对路径(原因见参考1) vga: extension=vbe floppya: 1_44="Image", status=inserted floppyb: 1_44=diska.img, status=inserted ata0-master: type=disk, path="hdc-0.11-new.img", mode=flat,cylinders=410, heads=16, spt=38 boot: a log: bochsout.txt parport1: enable=0 vga_update_interval: 300000 keyboard_serial_delay: 200 #floppy_command_delay: 50000 必须注释掉不然出错 ips: 4000000 mouse: enabled=0 private_colormap: enabled=0 fullscreen: enabled=0 screenmode: name="sample" 9. 运行bochs $ bochs -f bochsrc.bxrc |