天天看點

linux kernel README

**********************該檔案解釋怎麼樣安裝核心********************************

1、什麼是linux

   linux目的是服從posix和sus标準。

2.它運作在什麼硬體上

   linux很容易移植到32或64位架構機器上,隻要這些架構有分頁機制(PMMU)和gcc編譯器。linux也支援沒有分頁機制的機器,盡

館功能上有某些限制。你現在也可以運作linux核心并把它當做一個使用者程式,這叫做UserMode Linux(UML)。

3. 文獻

   有許多文獻可查,但是我推薦查找在linux FTP站點的linux檔案工程(LDP)的檔案子目錄。

   有各種README檔案在documentation /subdirectory下:這些都包括了典型的核心具體安裝注意事項,比如對于驅動。

    documentation/00-INDEX 列出了每個檔案都包含什麼。閱讀Change file ,它包含一些解決核心更新可能導緻問題的資訊。

   Documentation/DocBook/ 子目包含對核心開發和使用者的指導。這些指導手冊以各種檔案格式提供給你。在安裝以後,

   “make psdocs”, “make pdfdocs”,“make htmldocs”, “make mandocs”将會建立你需要的格式文檔。

4.安裝核心源代碼

   如果你安裝完整的源碼,你把核心tar包放在你授權的目錄裡(例如你的家目錄)并且解壓他:

   不要使用/usr/src/linux,這個區域有一系列核心頭檔案(通常不完整),這些頭檔案被庫頭檔案使用。這些核心頭檔案

   要和庫比對。

   你也可以用更新檔在2.6.xx 發行版中更新。為了更新,先獲得所有更新檔檔案,然後進入核心源碼的頂級目錄(linux-2.6.xx)

   并執行:gzip -cd ../patch-2.6.xx.gz | patch -p1 or bzip2 -dc ../patch-2.6.xx.bz2 |patch -p1

   一直重複即可。你可能想移除備份檔案(xxx~ or xxx.orig),但一定要確定沒有失敗的更新檔檔案(xxx# or xxx.rej)。如果

   有失敗的檔案,要麼你錯了,要麼我(作者)錯了。

   不像對于2.6.x核心的更新檔檔案,對于2.6.x.y的核心檔案的更新檔檔案(也被稱為stable kernel)不是增加量而是直接應用于

    2.6.x核心。請閱讀Docmentation/applying-patches.txt獲得更多資訊。

    可選擇的,更新檔核心腳本可以被用于自動完成這一過程。這取決于目前核心版本和應用的更新檔。

     linux/scripts/patch-kernel linux

    在上邊指令中,第一個參數是核心源碼的位置。更新檔從目前目錄被應用,但一個可選的目錄可以被具體化給出在第二個參數中。

    如果你正在用stable系列的更新檔(patch-2.6.xx.y)更新,注意“dot-releases”是不可增加的,必須被用于2.6.xx base tree    對于2.6.12.3 更新檔,你沒必要先應用2.6.12.1和2.6.12.2更新檔。類似,如何你正在運作2.6.12.2核心,并想跳到2.6.12、3,

    你必須首先逆轉2.6.12.2更新檔(即patch -R)然後應用2.6.12.3更新檔。

    你可以讀documentation/applying-patches.txt擷取更多資訊。

5. 確定你沒有stale .o 檔案并應用:cd linux

    make mrproper  你現在有可正确安裝的源碼了。

6.軟體要求

  看Documentation/Changes,了解最小需求和怎樣獲得這些軟體包的 更新。使用過久的版本會導緻間接錯誤,這很難跟蹤。是以

  不要以為你可以更新軟體包當明顯的錯誤出現時(在編譯或操作過程中)。

7.核心的編譯目錄

  當編譯核心時,所有的輸出檔案将以預設的方式和核心源碼存在一起。用選項"make 0=output/dir"可以指定一個具體的輸出位置(包括.config)。

  例如:kernel source code:  /usr/src/linux-2.6.N

       build directory:    /home/name/build/kernel

    為配置編譯核心使用:

   cd /usr/src/linux-2.6.N

   make 0=/home/name/build/kernel menuconfig

   make 0=/home/name/build/kernel

   sudo make 0=/home/name/build/kernel modules_install install

  請注意:如果'0=output/dir"被用,那麼他必須被用于所有的make調用。

8. 配置核心

   有新的配置選項添加到每個發行版,并且奇怪的問題會出現 ,如果配置檔案沒有按期望的設定。如果你想執行已存在的配置檔案

   生成用最小的工作配置一個新的配置檔案,請用“make oldconfig”, 它隻會讓你回答新的問題。

   選擇配置指令:略。你可以找的更多配置核心工具的資訊在 Documentation/kbuild/kconfig.txt

9.編譯核心

    至少gcc3.2

    做一個make 建立一個壓縮核心鏡像。盡可能做Makefile如果有适合核心Makefile的lilo,但是你首先檢查你的lilo設定。

    如果你配置任何子產品,你必須做make modules_install。

10.繁雜的核心編譯(compile )或 建構(build)輸出:

    一般編譯很安靜,但是,有時需要開發者觀察編譯,連結,其他指令的正确性,這需要用 “繁雜(verbose)模式”。應當這樣

   在make指令插入“V=1”,如:make V=1 all

    為使編譯系統告訴你每個編譯目标重編譯的原因,用“V=2”。

   備份核心,以防萬一。在編譯核心前,用“LOCALVERSION"配置選項追加一個特殊字尾給核心版本,他可以在”General setup“設定菜單。

   為了啟動你的新核心,你需要拷貝核心鏡像(例如 ../linux/arch/i386/boot/bzImage 在編譯之後)到你正常的啟動核心的位置。

  核心鏡像檔案是/vmlinuz,/boot/vmlinuz, /bzImage /boot/bzImage.要使用新核心,儲存就核心鏡像,用新核心覆寫舊鏡像。

  然後,然後,你必須傳回lilo更新加載中的鏡像。如果不,你不能啟動新鏡像。

  重新安裝lilo通常是運作/sbin/lilo的問題。你可能期望編輯/etc/lilo.conf 确定你舊鏡像的入口,以防新的核心不能啟動。

  充裝lilo,你重新設定,重新開機系統。

繼續閱讀