新核心可以在http://www.kernel.org下載下傳。 先把linux-2.6.18.2.tar.bz2 複制到/usr/src/ 的下面 tar –jxvf linux-2.6.18.2.tar.bz2 cd linux-2.6.18.2 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 查找到比如我的是。 [[email protected] boot]# lspci 00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01) 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01) 00:07.0 ISA bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 08) 00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01) 00:07.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB 00:07.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 08) 00:0f.0 VGA compatible controller: VMware Inc [VMware SVGA II] PCI Display Adapter 00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01) 00:11.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10) 00:12.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 02) 編譯配置 在這一部分涉及幾個重要子產品的配置請,特别注意.一般用"make menuconfig"指令來配置核心. 輸入以上指令後出現一個菜單界面,使用者可以對需要的子產品.下面着重講幾個重要的配置 1)檔案系統 請務必要選中ext3檔案系統, File systems---> [*] Ext3 journalling file system support [*] Ext3 Security Labels [*] JBD (ext3) debugging support 以上三項一定要選上,而且要内建(即标*). 這個非常重要,在配置完後一定要檢查一下.config檔案有沒有"CONFIG_EXT3_FS=y"這一項. 如果不是"CONFIG_EXT3_FS=y"而是"CONFIG_EXT3_FS=m",你在運作核心時就會遇上以下錯誤: pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed 2)網卡驅動 請務必把自己網卡對應的驅動編譯進核心,比較普遍的網卡是realtek 8139,以下就是這種網卡的配置,以供參考 Device Drivers---> Networking support---> Ethernet (10 or 100Mbit) ---> <*> RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIMENTAL) <*> RealTek RTL-8139 PCI Fast Ethernet Adapter support 3)聲霸卡驅動 也要選擇自己聲霸卡對應的驅動編譯進核心,比較普遍的聲霸卡是i810_audio,以下就是這種聲霸卡的配置,以供參考 Device Drivers ---> Sound ---> <*> Sound card support Advanced Linux Sound Architecture ---> <*> Advanced Linux Sound Architecture <*> Sequencer support < > Sequencer dummy client <*> OSS Mixer API <*> OSS PCM (digital audio) API[*] OSS Sequencer API <*> RTC Timer support PCI devices ---> <*> Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111 Open Sound System ---> < > Open Sound System (DEPRECATED) 以上三項配置關系到新核心能否正常運作,請備加注意.其他的配置如果不是很了解,大可以按預設的選擇. #make dep (確定關鍵檔案在正确的位置) 2.5.*-2.6.0都不需要了。其實2.4.*某些核心也不需要了。 #make clean (確定所有有關檔案都處于最新版本狀态) #make zImage (編譯壓縮形式的核心) 在需要核心支援較多的外設和功能時,核心可能變得很大,此時可以編譯大核心: #make bzImage 編譯的時間與機器的硬體條件及核心的配置等因素有關,所獲得的核心的位置在/usr/src/linux/arch/i386/boot目錄下,當然這裡假設使用者的CPU是x86型的。 如果選擇了可加載子產品,編譯完核心後,要對選擇的子產品進行編譯: #make modules (編譯選擇的子產品) #make module_install (将編譯後的子產品轉移到系統标準位置) # make install 上面的指令"make install"将: (1)把壓縮核心映象拷貝到/boot目錄下, 并建立相應的System.map符号連結; (2)修改bootloader的配置檔案; (3)調用mkinitrd程式建立核心的initrd映象. 對于GRUB而言, 将在/boot/grub/grub.conf配置檔案增加如下類似的配置行: title Red Hat Linux (2.***) root(hd0, 1) kernel /boot/vmlinuz-2.*** ro root=LABEL=/ initrd /boot/initrd-2.***.img 子產品在系統中的标準目錄位于/lib/modules/x.y.z,後面的x.y.z是版本号,為安全起見,在運作#make modules_install之前最好對/lib/modules進行備份。子產品通常是帶有擴充名.o的檔案,使用指令#lsmod可以對目前核心的子產品進行清單。 我一般是make bzImage;make modules;make module_install; make install 運作新核心之前,請檢查一下/boot/grub/grub.conf的内容,下面的配置可作參考 # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00 # initrd /initrd-version.img #boot=/dev/hda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Fedora Core (2.6.18.2) root (hd0,0) kernel /vmlinuz-2.6.18.2 ro root=/dev/VolGroup00/LogVol00 rhgb quiet initrd /initrd-2.6.18.2.img title Fedora Core (2.6.18-1.2798.fc6) root (hd0,0) kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=/dev/VolGroup00/LogVol00 rhgb quiet initrd /initrd-2.6.18-1.2798.fc6.img 現在重新開機機器,即可測試最新的核心。 |
本文引用通告位址:http://wxy8893.spaces.eepw.com.cn/articles/trackback/item/20449
2008-04-06 13:37:01