編譯 linux 0.01

編譯 linux 0.01

1.下載linux-0.11-devel-060625(這個有gar,編譯時要用),bochs 2.5

2.建新硬盤img
  用bochs自帶的bximage建,按<linux-0.11內核完全解析>裏的說明進行,也是256M.
  然後fdisk,mkfs,然後把mkdir root, 然後把/bin,/dev,/usr複製過來,這樣硬盤的minix系統就OK了。

2.按這個patch修改內核代碼:
  http://www.oldlinux.org/oldlinux/viewthread.php?tid=4827    
  只能手動改,那個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了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章