歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Kernel2.6x編譯過程

Kernel2.6x編譯過程

日期:2017/2/27 14:29:30   编辑:更多Linux
  提要:在Kernel 2.6x和以前的版本的編譯方法有點區別,所以就簡單的把編譯過程寫出來,主要是幫助初學Linux的兄弟。     Kernle 2.6x 編譯比較簡單,最適合我等菜鳥!!     本文是以Redhat為例,內版本是2.6.0-test8     一、下載   http://www.kernel.org     二、解壓   1.把下載好的內核放到/usr/src目錄中,比如我下載的是linux-2.6.0-test8.tar.bz2     #mv linux-2.6.0-test8.tar.bz2 /usr/src  #tar jxvf linux-2.6.0-test8.tar.bz2     2.進入相應的目錄編譯和安裝,進入內核選項設置     #cd linux-2.6.0-test8  #make mrproper  #make menUConfig     進入內核選項卡,M是以模快方式編譯,*是直接編入內核     至於哪些要編入內核,哪些要編譯成模塊。在文章管理器和基礎討論區的帖子中都有,自己試著找一找。另外內核中的doc也有相應的文檔     3.編譯和安裝內核     #make  #sudo make install     這個過程是編譯和安裝內核的過程,系統自動為我們做了哪些事?     1]系統會在/usr/src/linux/arch/i386/boot/目錄中產生bzImage,並把bzImage復制為vmlinuz-2.6.0-test8到/boot目錄中,並創建議vmlinuz-2.6.0-test8的鏈接vmlinuz;     2]在/boot目錄中,系統會產生System.map-2.6.0-test8,以及創建它的鏈接System.map;     3]在/boot目錄中,自動生為initrd-2.6.0-test8.img;     4]修改/etc/grub.conf 文件,加入了新內核的啟動項。     [注]經大熊寶寶兄的提示,怕初學的弟兄不明白這個過程,所以就把這個過程詳細的寫出來,所以我也做了補充。以上的四點都是系統自動安裝內核時所做的任務。查看一下/boot目錄中的文件以及/etc/grub.conf就明白了。這一點和以往2.4.x不一樣的地方。做個比喻就是2.4.x還是半自動的,上面的東西要執行好多個命令,而在2.6.x中,一步就到位,是全自動的!     4.編譯和安裝模快     #make modules  #make modules_install     5.設置/etc/grub.conf,我不用lilo,更確切的來說,我不太懂,所以只能說Grub的設置辦法。     為什麼要設置這個呢?其實在編譯和安裝內核的過程中,系統已經自動把新內核的啟動項直接添加到了/etc/grub.conf中。當我們不對/etc/grub.conf進行改動,直接啟用新內核會發現VFS錯誤之類的提示。     下面的是我安裝後新內核後,沒有改動過的/etc/grub.conf     title Fedora Core (2.6.0-test8)  root (hd0,7)  kernel /boot/vmlinuz-2.6.0-test8 ro root=LABEL=/  initrd /boot/initrd-2.6.0-test8.img  title Fedora Core (2.4.22-1.2061.nptl)  lock  root (hd0,7)  kernel /boot/vmlinuz-2.4.22-1.2061.nptl ro root=LABEL=/  initrd /boot/initrd-2.4.22-1.2061.nptl.img     改動後的就是     title Fedora Core (2.6.0-test8)  root (hd0,7)  kernel /boot/vmlinuz-2.6.0-test8 ro root=/dev/hda8  initrd /boot/initrd-2.6.0-test8.img  title Fedora Core (2.4.22-1.2061.nptl)  lock  root (hd0,7)  kernel /boot/vmlinuz-2.4.22-1.2061.nptl ro root=LABEL=/  initrd /boot/initrd-2.4.22-1.2061.nptl.img     對比改動過的/etc/grub.conf,我們不難發現,我們在新內核2.x中,指定root的根分區所在的位置時,沒有用標簽LABEL=/,而是用的是真正的分區位置。     請對Linux不太熟的弟兄,不要照搬我的分區設置。如果想知道這方面的,在基礎討論區中,有關於GRUB和分區訪問的文章,在文章管理器中也有。     最後還有一點就是如果顯示卡原來安裝過驅動,就要在新內核中重新安裝。比如我用的是NVIDIA的顯卡,我下載的是LinuxSir.Org的下載區中,哈兄提供的打過補丁的NVIDIA的驅動。裝上就OK了。




Copyright © Linux教程網 All Rights Reserved