歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux文化

如何編譯內核


如何編譯內核:
如果你不想改變內核的版本,直接到第四步。

第一步:在任何一個子目錄下(但通常是在/usr/src/下)untar 解開新的內核源程序:
tar xvfz linux-x.x.xx.tar.gz (例如linux-2.0.35.tar.gz)
或者是打補丁(patch):
gzip -cd patch-2.0.35.gz | patch -p0
打完補丁直接跳到第四步

第二步:rm /usr/src/linux
這通常是一個符號連接。

第三步:在 /usr/src/ 下建立一個符號連接到你的新內核目錄。
Ln -s /usr/src/linux.2.x.xx /usr/src/linux
老版本的內核可能還要做一下工作:
cd /usr/include
rm -rf asm linux scsi
ln -s /usr/src/linux/include/asm-i386 asm
ln -s /usr/src/linux/include/linux linux
ln -s /usr/src/linux/include/scsi scsi

第四步:將當前目錄變成 /usr/src/linux
cd /usr/src/linux

第五步:變成超級用戶
su

第六步:配置內核
如果你在 X window 下並且希望有圖形界面,你就說:
     make xconfig
注: 你需要安裝Tk/Tcl包並且X Server的分辨率在800x600以上.
如果你不在 X Window 下或不想使用圖形界面,你就說:
make config 或 make menuconfig (推薦)
逐個回答完問題後稍等片刻,等提示符出現或圖形界面消失,
系統就配置好了。

第七步:生成新內核,你說:
make dep ; make clean
make zImage (或則用make bzImage進一步壓縮內核)
注意大小寫一定要搞對!
還有make zlilo/make install等可選擇。

第八步:如果你用了模塊,你還需要生成和安裝模塊
make modules
make modules-install
depmod -a

第九步:察看你的 /etc/lilo.conf 看用的是那個目錄的那個文件作為
image。例如:image = /boot/vmlinuz (slackware版是/vmlinuz)
    將 /usr/src/linux/System.map 復制到 /boot 目錄中,
將 /usr/src/linux/arch/i386/boot/zImage 復制到 /boot 目錄中並改名為 vmlinuz
我不贊成改名覆蓋的辦法,推薦的方法是:
用一個新文件名將新內核拷貝到相應的目錄下,如
cp /usr/src/linux/arch/i386/boot/zImage /boot/zImage2
然後編輯/etc/lilo.conf文件,把原內核有關的那一段復制一份,如
image = /boot/vmlinuz
root = /dev/hda1
label = linux
復制後把image改成/boot/zImage2 把label改成newlinux.
這樣新內核與舊內核可以共存,當新內核不能啟動時,還有備份在那兒呢.
注意復制後放置的位置,如果沒有設置default則誰是第一項誰就是缺省啟動項。

第十步:安裝新內核並重新起動。
Lilo (不要忘記了這一步哦! 並注意看輸出信息)
shutdown -r now

警告:你應該有備用的起動手段,不然新內核起動不了你哭都沒眼淚! :-)

編譯一次在我的 120 MHz 奔騰 32 MB 主存的機器上要 20 分鐘,在我的P2 400上只需幾分鐘.

更詳細的情況請看 /usr/src/linux/readme, 以及用"man lilo" "man lilo.conf" "man initrd"等命令查看有關資料,
動手之前仔細閱讀有關資料是個好習慣!
給新手的提示:開機啟動LILO後出現"LILO:"的提示時,按TAB鍵顯示所有可啟動的項(由label定義)。


——摘自:北京Linux俱樂部


Copyright © Linux教程網 All Rights Reserved