Chinaunix首页 | 论坛 | 博客
  • 博客访问: 178095
  • 博文数量: 69
  • 博客积分: 2627
  • 博客等级: 少校
  • 技术积分: 715
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-24 22:37
文章分类

全部博文(69)

文章存档

2017年(3)

2014年(1)

2013年(4)

2012年(6)

2011年(21)

2010年(15)

2009年(19)

我的朋友

分类: LINUX

2012-03-14 17:25:16

编译 linux 0.01

1.下载linux-0.11-devel-060625(这个有gar,编译时要用),bochs 2.5

2.建新硬盘img
  用bochs自带的bximage建,按里的说明进行,也是256M.
  然后fdisk,mkfs,然后把mkdir root, 然后把/bin,/dev,/usr复制过来,这样硬盘的minix系统就OK了。

2.按这个patch修改内核代码:
   
  只能手动改,那个patch从网页上COPY下来,不能用了。
  boot.s里的|改!,用vi的一个命令就搞定了,好在用不了几分钟.

  *** 为了防止将来的linux0.01启动后报 HD controller not ready.    ***
  *** 需要修改hd.c -> controller_ready()                          ***
  *** 1000改为100000                                              ***
  *** (inb(HD_STATUS)&0xc0)!=0x40 改为 (inb(HD_STATUS)&0x80)      ***
  *** 这个参考 http://www.eetop.cn/blog/html/15/193015-21187.html ***

  *** 还要改下硬盘的参数:(config.h)         ***
  *** #elif    defined(LINUS_HD)            ***
  *** #define HD_TYPE { 16,63,520,300,980,0} ***

3.把修改后的代码放到linux-0.11-devel-060625
  修改后的代码打个包:
  tar cf linux.tar linux (在centos或redhat打包,然后用WinSCP取出来)
  然后把linux.tar通过winimage放入rootimage-0.11,(也可以在centos,或redhat里进行)
  然后启动bochs(用bochs-hd那个),启动后,把rootimage放入A盘,(最初放在B盘,怎么都不好用).
  然后mdir a:看一下,会看到linux.tar
  然后mcopy a:linux.tar /usr/src2(在哪里都行,在/mnt里也行)
  另外,删除文件可用mdel a:filename

4.然后就进入/usr/src2,解开linux.tar: tar xf linux.tar
  然后cd linux,然后make

5.把生成的Image再通过rootimage-0.11传出来.
  mcopy Image a:
  再用winimage从rootimage-0.11里取出这个Image,新建个目录linux0.01,把linux-0.01-devel-060625里的bochs-hd.bxrc弄过来。
  改里面的参数:
  floppya: 1_44="Image", status=inserted  #这个Image就是编译生成的,只要和实际的文件对应就行了。
  ata0-master: type=disk, path="hd256.img", mode=flat, cylinders=520, heads=16, spt=63

6.启动,OK了.

阅读(1922) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~