重新建立一個核心需要將源代碼樹置于一種完整和一致的狀態(tài)。因此,我們推薦您首先執(zhí)行命令make mrproper。它將清除目錄下所有配置文件和先前生成核心時產(chǎn)生的中間文件。現(xiàn)在,您需要創(chuàng)建一個配置文件以決定將要生成的核心要包括哪些內(nèi)容。根據(jù)您的硬件和個人選擇不同有三種方法來配置核心。
make config 這是一個交互式的程序。由它來提供各種功能,由您自己回答 Y(要),N(不要),或則M(要,但不連入核心,而以模組話的形式包含)。
make menuconfig 這是一個彩色用戶界面,菜單驅(qū)動的程序。各種功能部件以菜單的形式分類列出,就象安裝紅帽子LINUX時一樣,您選擇需要包含的部件,也就是針對每個條目在 Y(要),N(不要),或者M(jìn)(以模組的形式加入)的位置點選。
make xconfig 這是一個X視窗程序。功能部件分層列于菜單中,用鼠標(biāo)來進(jìn)行選擇,選擇方法同上。
請注意:為了能夠使用kerneld和核心模組,您必須在配置時對“kerneld support”和“module version(CONFIG_MODVERSIONS)support”選擇Yes.
請注意:如果您是在一臺使用Intel兼容CPU芯片(例如由Cyrix, AMD生產(chǎn)的)的機器上建立核心,我們推薦您在“Processor type of”上選擇386。
如果您想使用先前按照以上方法創(chuàng)建的配置文件(/usr/src/linux/.config)來建立核心,那么您就不要執(zhí)行make mrproper 和 make config命令而直接執(zhí)行makedep再接著執(zhí)行 make clean為最后編譯來進(jìn)行文件樹的配置。
下一步要講述源代碼的編譯,生成最終可以用以boot的核心。下面的方法將是在遇到不當(dāng)時最易恢復(fù)的方法。如果您對其它的方法感興趣,可以在Kernel-HOWTO或/usr/src/linux目錄下的Makefile中找到詳細(xì)的信息。
用make boot命令建立核心 用make modules命令建立您配置的模組 將老的模組移到其它地方: rm -rf /lib/modules/2.0.29-old mv /lib/modules/2.0.29 /lib/modules/2.0.29-old當(dāng)然,如果您已經(jīng)升級了核心,將2.0.29替換為您正在使用的就行。安裝新模組(即便您沒有建立任何模組),使用命令? make modules_install.
如果您有一塊SCSI卡而且想以模組化的驅(qū)動程序訪問它,就要建立一個新的initrd映相文件。為了防止新建核心中可能出現(xiàn)的錯誤,應(yīng)當(dāng)準(zhǔn)備一個冗余的內(nèi)核以備。將一個核心包括在LILO的選單中十分簡單。您只需將/boot目錄下的原來的核心文件重新命名,把新生成的核心拷貝到/boot下,在/etc/lilo.conf中加入相應(yīng)的幾行信息,再執(zhí)行/sbin/lilo 就可以了。下面是隨紅帽子LINUX而帶的默認(rèn)的/etc/lilo.conf:
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=100 image=/boot/vmlinuz label=linux root=/dev/hda1 read-only現(xiàn)在您需要更新/etc/lilo.conf。如果您創(chuàng)建了新的initrd映相,就必須告訴LILO去使用它。在這個例子中我們在/etc/lilo.conf后面添加了四行以表示新增的可以boot的核心。我們將/boot/vmlinuz重新命名為/boot/vmlinuz.old并改變其標(biāo)簽為old。 我們同樣也為新核心增加了initrd一行:
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=100 image=/boot/vmlinuz label=linux initrd=/boot/initrd root=/dev/hda1 read-only image=/boot/vmlinuz.old label=old root=/dev/hda1 read-only現(xiàn)在,在系統(tǒng)boot時,當(dāng)在LILO boot:您按下了[TAB]鍵,就會列出兩項選擇:
LILO boot: linux old如要boot新建的核心(linux)就直接敲[ENTER],或等到LILO超時。而如果您要boot 老的核心(old),就需鍵入old并回車。下面是一個簡單的總結(jié):
mv /boot/vmlinuz /boot/vmlinuz.old cp /usr/src/linux/arch/i386/boot/zImage /boot/vmlinuz edit /etc/lilo.conf run /sbin/lilo您現(xiàn)在可以用新創(chuàng)建的核心boot并注意觀察屏幕信息看您的硬件是否被檢測到


