簡單四步 編譯Linux內(nèi)核
下面介紹編譯Linux內(nèi)核的四個(gè)步驟:
1.需要先安裝編譯環(huán)境
進(jìn)入 root 帳戶:
> su
輸入密碼
安裝必要的工具:
> apt-get install build-essential
(安裝 gcc, make 等)
> apt-get install libncurses-dev
(安裝 make menuconfig 時(shí)必須的庫文件)
> apt-get install kernel-package, fakeroot
(Debian 系統(tǒng)里生成 kernel-image 的一些配置文件和工具)
> apt-get install initramfs-tools, module-init-tools
2.安裝 kernel-source:
可以從 Ubuntu 的源安裝,這樣的好處是簡單,而且安裝的內(nèi)核是Debian 化了的,缺點(diǎn)是內(nèi)核不是最新的內(nèi)核。
> apt-get install linux-source
也可以從 www.kernel.org 下載內(nèi)核安裝。kernel.org 的境象應(yīng)該很多,選一個(gè)最快的來下載,因?yàn)橐螺d的文件很大。我這里介紹的是安裝 2.6.24 的內(nèi)核,加上了 ck 的補(bǔ)丁。
下載 linux-2.6.24.tar.bz2 和 patch-2.6.24.bz2 ,并且把它們都存放在 /usr/src 目錄下。
> tar xvjf linux-2.6.24.tar.bz2
> ln -s linux-2.6.24 linux
(如果已經(jīng)有了 linux 目錄,則要先將其刪除)
> cd linux
> bzcat ../patch-2.6.24.bz2 | patch -p1
至此,內(nèi)核源文件以及補(bǔ)丁就都安裝好了。
3.編譯內(nèi)核
把源碼包解壓到 /usr/src/linux-2.6.24,然后在/usr/src/下創(chuàng)建一個(gè)名為linux的指向/usr/src/linux-2.6.24的鏈接(link)。
在shell中輸入
root@FE2000:~# cd ..
root@FE2000:/# cd /usr/src/linux
root@FE2000:/usr/src/linux# make mrproper
root@FE2000:/usr/src/linux# make menuconfig
或者make gconfig
此時(shí)qconf已經(jīng)讀取了默認(rèn)配置,你也可以這樣做:
在qconf中點(diǎn)File->Load 去讀取其他的設(shè)置文件。
比如 /boot/config-2.6.18-23-686
下面在qconf中配置.config文件。選“Y”(打勾)就是把它編譯到內(nèi)核中,選“M”(打點(diǎn))把它編譯成模塊,供內(nèi)核動(dòng)態(tài)調(diào)用。選“N”就是不安裝。也可以保持默認(rèn)選項(xiàng)……
下面只是簡單提幾項(xiàng):
General setup
Optimize for size (Look out for broken compilers!) 發(fā)燒友可以選Y以獲得更小的內(nèi)核。
Processor type and features
Symmetric multi-processing support 如果你沒有多線程處理器這個(gè)可以選N
Processor family 根據(jù)你的CPU來選擇。
High Memory Support 1G以上內(nèi)存的選“4GB”, 1G以下的,將來也不打算升級(jí)到1G的,選“off”.
Bus options (PCI, PCMCIA, EISA, MCA, ISA)
PCI support
PCI Express support 老式機(jī)器沒有PCI-E設(shè)備的可以選N
ISA support 較新的新機(jī)器沒有ISA設(shè)備,可以選N
MCA support 一般選N
NatSemi SCx200 support 一般選N
PCI Hotplug Support
Support for PCI Hotplug (EXPERIMENTAL) 如果沒有PCI熱插拔設(shè)備,選N
Device Drivers
Block devices
Packet writing on CD/DVD media
Enable write caching (EXPERIMENTAL) 如果你有刻錄機(jī),想啟用寫緩存功能,選Y
ATA/ATAPI/MFM/RLL support
Include IDE/ATA-2 DISK support 如果你的/boot是放在IDE硬盤上,那么這里一定要選Y,選M都不行。否則啟動(dòng)時(shí)會(huì)出現(xiàn)“waiting for root file system”的提示而停滯不前。
SCSI device support 如果有SATA硬盤,就選Y
SCSI disk support 如果你的/boot放在SATA硬盤上,一定要選Y。
Character devices
I2C support 一般可以選Y或者M(jìn)
Graphics support 不建議把顯卡驅(qū)動(dòng)編譯進(jìn)內(nèi)核。,選M,編譯成模塊方便日后升級(jí)驅(qū)動(dòng)。
Support for frame buffer devices
VESA VGA graphics support 可以選Y
Logo configuration
Bootup logo 如果想看到Linux啟動(dòng)logo,選Y
Sound
Sound card support 選Y, 除非你沒有聲卡
其他的驅(qū)動(dòng),酌情添加刪除,根據(jù)機(jī)器配置刪除不需要的驅(qū)動(dòng)可以縮短編譯時(shí)間。你可以在命令行下輸如lspci或者dmesg查看硬件信息。
File systems
CD-ROM/DVD Filesystems
ISO 9660 CDROM file system support 一般選Y
DOS/FAT/NT Filesystems
VFAT (Windows-95) fs support 有FAT32分區(qū)就選Y吧
NTFS file system support 有NTFS分區(qū)就選Y吧
NTFS write support 如果想對(duì) NTFS分區(qū)進(jìn)行寫操作,選Y
Native Language Support
Simplified Chinese charset (CP936, GB2312) 選Y或者M(jìn)使讀取FAT分區(qū)不會(huì)遇到中文亂碼現(xiàn)象
設(shè)置完畢后,按一下保存按鈕,無論原先載入的是哪個(gè)配置文件,qconfig都將設(shè)置保存到 /usr/src/linux/.config 這個(gè)隱含文件。
下面輸入make開始編譯,這一過程大約需要40-100分鐘,具體的要看你的機(jī)器速度啦……
root@FE2000:/usr/src/linux# make
安裝內(nèi)核
root@FE2000:/usr/src/linux# make install
編譯模塊
root@FE2000:/usr/src/linux# make modules
安裝模塊
root@FE2000:/usr/src/linux# make modules_install
然后
root@FE2000:/usr/src/linux# cd /
root@FE2000:/usr/src/linux# /usr/sbin/mkinitramfs -o /boot/initrd.img-2.6.24 2.6.24
如果有出錯(cuò)提示,可能是因?yàn)?initramfs-tools 沒有裝,先把它裝上吧。
如果沒有這一步驟,那么開機(jī)就會(huì)出現(xiàn)提示
……
initrd /initrd.img-2.6.24
Error 15: File not found
4.修改內(nèi)核啟動(dòng)選項(xiàng)
最后打開 /boot/grub/menu.lst
在 ## ## End Default Options ## 下面添加類似下面的兩段
title Ubuntu, kernel 2.6.24
root (hd0,4)
kernel /vmlinuz-2.6.24 root=/dev/hdd6
initrd /initrd.img-2.6.24
savedefault
boot
title Ubuntu, kernel 2.6.24 (recovery mode)
root (hd0,4)
kernel /vmlinuz-2.6.24 root=/dev/hdd6 ro single
initrd /initrd.img-2.6.24
boot
注意 root和kernel字段要模仿menu.lst下面已有的內(nèi)容寫。
下面是 (hd0,4),那么你也寫(hd0,4),下面寫root=/dev/hdd6,你也寫root=/dev/hdd6,只是內(nèi)核的版本號(hào)改為現(xiàn)在編譯的版本號(hào)。
然后把下面重復(fù)的savedefault刪除。
重新啟動(dòng)計(jì)算機(jī),在GRUB中選擇新內(nèi)核啟動(dòng)。
【編輯推薦】