也許2.6.0內核會給Linux帶來革命。從2.5.*內核開始linux有了向高端應用進軍的資本。這次2.6.0內核也是主要是在高級應用上有較大變化。還有增加了對更多的設備的支持(nForce2主板就需要新內核支持)。這些也不是咱們討論的范圍。對了新的內核,給大家第一感受是,鼠標,鍵盤,好用了。新內核對這些外設做了優化。(以後還可能弄一個專門為了顯示的內核,到那時linux就真的可以進軍桌面了。)這些特點其實在2.5.*某些版本裡已經有了。還有2.6.0的Makefile文件也變化很大,也許比大家想的要好用的多。 新內核可以在http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.0-test2.tar.gz下載。 先把linux-2.6.0-test2.tar.gz 復制到/usr/src/ 的下面 tar -zxf linux-2.6.0-test2.tar.gz; cd linux-2.6.0-test2 因為是新內核沒有編譯過所以不用make mrproper 把原來編譯產生的垃圾刪除 配置內核可以根據需要與愛好使用下面命令中的一個: #make config (基於文本的最為傳統的配置界面) #make menUConfig (基於文本選單的配置界面) #make xconfig (基於圖形窗口模式的配置界面) #make oldconfig (如果只想在原來內核配置的基礎上修改一些小地方,會省去不少麻煩) 進行配置時,大部分選項可以使用其缺省值,只有小部分需要根據用戶不同的需要選擇。例如,如果需要內核支持DOS分區的文件系統,則要在文件系統部分選擇FAT或DOS系統支持;系統如果配有網卡、PCMCIA卡等,需要在網絡配置中選擇相應卡的類型。 選擇相應的配置時,有三種選擇,它們分別代表的含義如下: “Y”- 將該功能編譯進內核 “N”- 不將該功能編譯進內核 “M”- 將該功能編譯成可以在需要時動態插入到內核中的模塊。 將與核心其它部分關系較遠且不經常使用的部分功能代碼編譯成為可加載模塊,有利於減小內核的長度,減小內核消耗的內存,簡化該功能相應的環境改變時對內核的影響。許多功能都可以這樣處理,例如像上面提到的網卡的支持、對FAT等文件系統的支持。 其實現在編譯內核最關鍵的地方就是配置內核。我一般用make menuconfig配置內核。 配置2.6.0內核時如果你的主板是Intel芯片的話,你用默認配制也許就可以得到一個滿意的內核哦。做法是make menuconfig後離開時選擇保存。 這裡的難點是pci,如果你硬盤是IDE的那一定要選擇好你主板上南橋芯片。SCSI的話就是要選擇上你的SCSI卡型號。 還有就是網卡,聲卡芯片的型號了,他們的型號你都可以用lspci 查找到比如我的是。 sh-2.05a# /sbin/lspci 00:00.0 Host bridge: ServerWorks CNB20LE Host Bridge (rev 05) 00:00.1 Host bridge: ServerWorks CNB20LE Host Bridge (rev 05) 00:02.0 PCI bridge: Intel Corp. 80960RP [i960 RP Microprocessor/Bridge] (rev 01) 00:02.1 I2O: Intel Corp. 80960RP [i960RP Microprocessor] (rev 01) 00:04.0 Ethernet controller: 3Com Corporation 3c985 1000BaseSX (SX/TX) (rev 01) 00:08.0 PCI bridge: Digital Equipment Corporation DECchip 21152 (rev 03) 00:0e.0 VGA compatible controller: ATI Technologies Inc 3D Rage IIC (rev 7a) 00:0f.0 ISA bridge: ServerWorks OSB4 South Bridge (rev 4f) 00:0f.1 IDE interface: ServerWorks OSB4 IDE Controller 02:04.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 05) 02:05.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 05) 03:02.0 PCI bridge: Intel Corp. 80960RM [i960RM Bridge] (rev 01) 03:08.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 08) 你只要把你pci上的東西全部選擇對了。 剩下就用默認的就可以了 配制內核完畢後make install 還要說一句make install也是最近的從2.5.69內核(按照內核發布時間算)開始才有的選項他可以幫你完成很多東西。方便大大的 。 2.4.21你可以用make install 現在這些步驟就是沒有make install時要做的 #make dep (確保關鍵文件在正確的位置) 2.5.*-2.6.0都不需要了。其實2.4.*某些內核也不需要了。 #make clean (確保所有有關文件都處於最新版本狀態) #make zImage (編譯壓縮形式的內核) 在需要內核支持較多的外設和功能時,內核可能變得很大,此時可以編譯大內核: #make bzImage 編譯的時間與機器的硬件條件及內核的配置等因素有關,以筆者的64MB內存的賽揚300為例,編譯內核一次大致需要20多分鐘。所獲得的內核的位置在/usr/src/linux/arch/i386/boot目錄下,當然這裡假設用戶的CPU是x86型的。 如果選擇了可加載模塊,編譯完內核後,要對選擇的模塊進行編譯: #make module (編譯選擇的模塊) #make module-install (將編譯後的模塊轉移到系統標准位置) 模塊在系統中的標准目錄位於/lib/modules/x.y.z,後面的x.y.z是版本號,為安全起見,在運行#make modules-install之前最好對/lib/modules進行備份。模塊通常是帶有擴展名.o的文件,使用命令#lsmod可以對當前內核的模塊進行列表。 我一般是 make dep ;make bzImage;make module ;make module-install cp /usr/src/linux2.6.0-test2/arch/i386/boot/bzImage /boot/vmlinuz-2.6.0-test2 cp /usr/src/linux-2.6.0-test2/System.map /boot/System.map-2.6.0-test2 這些make install都可以辦到的 剩下就是修改 /etc/lilo.conf vi /etc/lilo.conf 添加新內核。有時make install連這個都給你修改好了。 下面是我的lilo.conf prompt timeout=50 default=linux boot=/dev/sda map=/boot/map install=/boot/boot.b message=/boot/message linear image=/boot/vmlinuz-2.4.18-3smp label=linux initrd=/boot/initrd-2.4.18-3smp.img read-only root=/dev/sda6 image=/boot/vmlinuz-2.6.0-test2 label=linux-2.6.0-test2 initrd=/boot/initrd-2.6.0-test2.img read-only root=/dev/sda6 再運行 sh-2.05a# lilo 重新生成lilo 這樣你的內核就升級完畢。