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)
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)
- linux 编译的问题
- linux 编译遇到的问题
- 编译Linux Kernel 2.6.11.7的问题
- Linux下编译MySQLdb遇到的问题
- linux 编译安装wireshark出现的问题
- MP4Box 的问题及Linux下编译
- Linux 下编译wxWidgets GTK+的问题
- linux kernel 编译时遇到的问题
- 编译linux内核容易忽略的问题
- 编译linux驱动程序出现的一些问题
- LINUX下MATLAB MEX编译的问题
- linux内核编译遇到的问题总结
- linux下C语言编译的问题
- linux 64bit 编译SDL1的问题
- Linux下常见的编译问题
- 编译linux内核遇到的问题
- Linux静态库编译的问题
- Linux下tslib交叉编译的问题
- 网站URL路径的中文问题
- sed小技巧
- 指针和引用的联系与区别
- 构建eLua
- 数组大折腾(第十四周上机任务)
- linux 编译的问题
- 数据导入导出
- 一步一步学JBPM(12)——JBPM流程历史追踪
- Given an array A[i..j] find out maximum j-i such that A[i]<a[j]
- 打开文件夹时,文件默认以列表查看方式浏览
- Flex Tree 的数据源从XML中读取
- cuda的PACK
- 数组,折腾折腾你。。。。
- 线性和相对布局的总结