linux 编译的问题

来源:互联网 发布:生意参谋数据下载 编辑:程序博客网 时间:2024/05/29 08:35
http://linux.chinaunix.net/techdoc/system/2008/10/10/1037409.shtml
http://www.linuxidc.com/Linux/2012-04/58644.htm
http://blog.renren.com/share/257197565/6676265612
http://blog.163.com/vic_kk/blog/static/4947052420108132423450/
.code32
gas as
gld ld
.align 2 .align 4
.align 3 .align 8

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


参考1:Ubuntu下bochs虚拟机的安装配置(http://www.kanwenzhang.com/software/ubuntu/c/6823/kwz2_26823.html)
参考2:ubutu 搭建bochs 调试linux0.11(http://hi.baidu.com/ju136/blog/item/2058330a69effb37b0351d7e.html)
参考3:ubuntu 8.04 编译 linux 0.11 - 及实验运行(http://www.kanwenzhang.com/software/ubuntu/c/6823/kwz2_26823.html)
原创粉丝点击