核心編譯2.6.13.4(原創)part1

roninwei發表於2006-07-18

此文為本人原創,轉載請註明轉自roninwei.itpub.net,第一次做錯誤難免,請指正!

[root@loveronin src]# gzip -d linux-2.6.13.4.tar.gz

[root@loveronin src]# tar -xvf linux-2.6.13.4.tar

準備自己PC的各種型號的資料,這就要因人而異了,只有知道了自己的配置才能達到儘量去掉那些不必要的驅動等的目的,以下為我本人PC的配置,這將在後面的過程中需要用到。

CPU:AMD Athlon XP 2500+

主機板:MSI K7N2 Delta帶網路卡,音效卡

記憶體:KingstonDDR400 256M x 2

顯示卡:ATI Radeon 9600 128Bit 64M

硬碟:Maxtor 80G

顯示器:SyncMaster 783MB

CDRom:MSI 52X

鍵盤&滑鼠:Logitech 普通套件

作業系統:Fedora Core 3(Fedora Core 的前身是的Red Hat Linux ,Red Hat Linux 9.0Red Hat已經不在開發Red Hat Linux 而是將全部精力投入到企業版的Red Hat Enterprise Linux,而以前的Red Hat Linux則由另外的一個組織負責並且以Fedora 來命名,所以Red Hat Linux 9.0後的第一個Red Hat Linux個人版命名為Fedora Core 1)and Windows 2000 SP4+補丁

實現環境:Fedora Core 3+Gnome+Kde+永中Office 2004增強版For Linux

①配置核心

②編譯核心

③編輯/etc/grub.conf

④重新啟動新核心

⑤重新啟動機器

⑥發現並修理故障

此文為本人原創,轉載請註明轉自roninwei.itpub.net,第一次做錯誤難免,請指正!

配置核心

這是編譯核心的主要部分,首先要轉到我們核心解壓的目錄/usr/src/linux

-2.6.13.4:

root@loveronin ~] #cd /usr/src/linux-2.6.13.4

編譯核心有四種常用的命令:

------make xconfig(基於圖形視窗模式的配置介面,Xwindow下和初學者推薦使用,需要QT支援可能需要裝KDE桌面環境)

------#make menuconfig(基於文字選單的配置介面,字元終端下推薦使用,必須安裝ncurses-devtk4-dev庫)

------#make config(基於文字的最為傳統的配置介面,一般人不推薦使用)

------#make oldconfig(如果只想在原來核心配置的基礎上修改一些小地方,會省去不少麻煩)

選擇相應的配置時,有三種選擇,它們分別代表:

Y-將該功能編譯進核心

M-將該功能編譯成可以在需要時動態插入到核心中的模組

N-不將該功能編譯進核心

我在這裡使用make xconfig,選擇專案的原則是與核心關係緊密而且經常使用的部分功能程式碼直接編譯到核心中;核心其它部分關係較遠且不經常使用的部分功能程式碼編譯成為可載入模組,有利於減小核心的長度,減小核心消耗的記憶體,簡化該功能相應的環境改變時對核心的影響,不需要的功能就不要選,下面就對各項按我上面給出的配置進行介紹,2.6.13版本的核心主要有以下15個主要專案:

#表示主要專案

##表述主要專案下的子專案

###表述主要專案下的子專案下的子專案

1 程式碼成熟級別選項

2 常規選項

3 可載入模組支援

4 處理器型別和特性

5 電源管理選項

6 匯流排選項

7 可執行檔案格式

8 網路

9 裝置驅動

10 檔案系統

11 側面支援

12 核心除錯

13 安全性選項

14 加密選項

15 庫例程

編譯核心

程式碼成熟級別選項)

#prompt for development and/or incomplete code/drivers是否安裝正在開發中或不完整的程式程式碼或驅動程式?主要是處於實驗階段的功能,非開發人員一般選N

##Select only drivers expected to compile cleanly,不編譯那些已知的驅動選Y

常規選項)

#Support for paging of anonymous memory對虛擬裝置和儲存的支援,Y

#System V IPC是否支援IPC功能,IPC主要用在Process之間交換資訊,DOS和部分Linux上重要,Y

#POSIX Message Queues,Unix可移植性作業系統介面支援選Y

#BSD Process Accounting是否將程式統計資料寫成檔案?此檔案包含較多詳細的資料,Y

##BSD Process Accounting version 3 file format是否將程式統計資料寫成另外一種格式同時記錄程式和起父程式的ID,選N

#Sysctl support可以在不開機或編譯核心的情況下動態改變核心引數,比如可以直接在終端中開啟IP轉發,Y

#Auditing support開啟審查基礎結構可以和其它核心子系統一起使用比如說SELinux,Y

##Enable system-call auditing support允許低開銷系統訪問審查基礎結構可獨立使用或和SELinux一起使用,Y

#Support for hot-pluggable devices沒有選項預設Y

#Kernel Userspace Events用監聽事件來代替輪詢系統裝置和檔案,除非想構建一個使用最少儲存器的系統,建議選Y

#Kernel .config support將所有的.config檔案目錄儲存在核心中,N

#Configure standard kernel features允許確定的核心基本選項和並可以使其失效,N

可載入模組支援)

#Enable loadable module support對可載入模組的支援,除非準備把所有需要的內容都編譯到核心裡面,否則選Y
#Module unloading
對模組解除安裝的支援,沒有它你將不能動態的解除安裝模組選Y

##Forced module unloading可以強行解除安裝模組,不管核心是否認為安全,編譯後應該沒有這個必要了,N

#Module versioning support可以用來使用模組來編譯不同的核心,Y

#Source checksum for all modules可以用來檢視建立模組用到哪些源程式,N

#Automatic kernel module loading讓核心在啟動時有自己裝入必需模組的能力,Y

處理器型別和特性)

#Subarchitecture Type子結構型別,對於386系列CPU選擇PC-compatible

#Processor family(處理器型別)因為我的CPUAMD Athlon2500+所以選擇Athlon/Duron/K7,保持預設時它會對每種CPU做最佳化,讓它跑得快又好。一般來說,沒有選擇正確的CPU並不會有重大的影響.

#Generic x86 support選擇Y後它將對核心作最佳化,使核心在386系列CPU上發揮的更好,Y

#HPET Timer SupportHPET內部時鐘支援,如果不選會使用以前的老時鐘8254,Y

#Symmetric multi-processing support對稱多處理器支援,用於伺服器或多CPU機器,對我來說沒有用,N

#Preemption Model預先佔有模型,有No Forced Preemption,Voluntary Kernel Preemption,Preemptible Kernel一般的個人桌面選擇Voluntary Kernel Preemption

#Local APIC support on uniprocessors本地高階可程式設計中斷控制,不需要,N

#Machine Check Exception如果選擇這一項將使處理器如果發現問題可以通知核心,Y

##Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4此項使每5分鐘檢查Register,以瞭解是否發生錯誤,N

#Toshiba Laptop supportToshiba Laptop的支援,N

#Dell laptop suppor Dell laptop的支援,N

#Enable X86 board specific fixups for reboot目前只支援Geode GX1/CS5530A /TROM 2.1,N

#/dev/cpu/microcode - Intel IA32 CPU microcode supportIntel IA32結構的支援,Y

#/dev/cpu/*/msr - Model-specific register supportMSRs功能的支援,M

#/dev/cpu/*/cpuid - CPU information support是不是開啟CPU記錄功能,M

#High Memory Support最大記憶體支援,如果記憶體為4G以上選64G,1G~4G4G,低於1GOFF,這裡選OFF

#Memory model如果選擇Flat Memory可以使使用者改變Linux管理記憶體的模式,M

#Math emulation模擬浮點運算,現在的CPU都包含這個功能,N

#MTRR (Memory Type Range Register) support開啟此選項可以增加AGP顯示卡的效果,Y

#Boot from EFI support這個選項可以使核心在EFI平臺上起動,N

#Use register arguments使用-mregparm=3來編譯核心,需要GCC3.0以上的支援,Y

#Enable seccomp to safely compute untrusted bytecode此選項在資料應用程式執行期間估算不可信的位元組程式碼時非常有效,Y

#Timer frequency時鐘週期,根據實際情況選,我這裡選200HZ

#kexec system call使用這個選項使你可以關閉現在的核心並起動任何一個核心,N

Firmware Drivers

#BIOS Enhanced Disk Drive calls determine boot disk此選項可以使BIOS提高磁碟驅動服務真實模式BIOS呼叫以決定從哪個磁碟BIOS起動,還處於實驗階段,可能會造成問題,N

電源管理選項)

#Power Management support此選項可以使PC在沒有使用時進入睡眠模式,Y

#Power Management Debug Support此選項對電源管理提供詳細的除錯,在電源管理出問題使有效,N

#Software Suspend使用軟體時實現機器的掛停,這個不需要APM的支援,N

ACPI (Advanced Configuration and Power Interface) Support

#ACPI Support高階配置和電源介面支援,M

##Sleep States 此選項增加了對ACPI的支援,不過處於實驗階段,N

#AC Adapter交流介面卡支援,用於筆記本,N

#Battery透過/proc/acpi/batter來提供電池資訊,用於筆記本,N

#ButtonACPI中加入對例如power,sleep,wakeup鍵的支援,我鍵盤上無,N

#Video擴充套件ACPI在主機板上的完整圖象顯示驅動,N

#Generic Hotkey實驗階段,N

#Fan擴充套件ACPI中的風扇驅動,可以在使用者模式下控制風扇的開,關和狀態選Y

#Processor使用ACPI空閒處理,而使用ACPI C2 and C3來在支援的系統上節電,Y

#Thermal Zone用來限定CPU工作時的最高溫度,沒有它CPU可能有燒燬的危險,Y

#ASUS/Medion Laptop Extras ACPI中加入對ASUS/Medion Laptop支援,N

#IBM ThinkPad Laptop ExtrasACPI中加入對IBM ThinkPad Laptop的支援,N

#Toshiba Laptop ExtraACPI中加入對Toshiba Laptop 的支援,N

#Disable ACPI for systems before Jan 1st this year可以輸入一個四位數的年份來使在此年的一月一日前不使用ACPI預設2001

#Debug StatementsACPI的除錯程式,N

#Power Management Timer Support電源管理計時器支援,Y

#ACPI0004,PNP0A05 and PNP0A06 Container Drive支援CPU和記憶體的物理熱插拔,一般只有那種多CPU的伺服器才會用到,選N

APM (Advanced Power Management) BIOS Support

#APM (Advanced Power Management) BIOS support高階電源管理支援,Y

#Ignore USER SUSPEND此選項忽略使用者的掛停請求,N

#Enable APM at boot time 當起動過程中CPU處於空閒時開啟電源管理,主要為筆記本省電,PC不需要,N

#Make CPU Idle calls when idle主要用於筆記本節電,N

#Enable console blanking using APM筆記本用此功能來關閉背景燈,N

#RTC stores time in GMT 如果你的RTC存放GMT時間著選Y,存放本地時間選N,N

#Allow interrupts during APM BIOS callsAPM呼叫時允許中斷,N

#Use real mode APM BIOS call to power off使用實時APM呼叫關閉電源,N

*需要注意的是ACPIAPM不能同時使用。

CPU Frequency scaling

#CPU Frequency scaling可以對CPU的頻率進行調整,在低頻時減少用電,Y

#Enable CPUfreq debuggingCPU頻率監測出現問題時進行除錯,N

#CPU frequency translation statistics透過系統檔案來輸出CPU頻率的統計資訊,N

#Default CPUFreq governor預設CPU頻率調節器,performance使CPU預設為可以支援的最高頻率,userspace允許使用者自己調節,userspace

#performance' governorCPU頻率預設為可以達到的最高頻率,N

#powersave' governorCPU頻率預設預設為最低頻率,N

#ondemand' cpufreq policy governorCPU的頻率作輪詢,根據CPU的使用來調節頻率,Y

#conservative' cpufreq governorondemand一樣的功能,用於筆記本,N

CPUFreq processor drivers

#CPUFreq processor drivers可以使用的選擇有ACPI Processor P-States driver,AMD Mobile K6-2/K6-3 PowerNow!,AMD Mobile Athlon/Duron PowerNow!,AMD Opteron/Athlon64 PowerNow!,Cyrix MediaGX/NatSemi Geode Suspend Modulation,都為筆記本支援,全部選N

#Intel Enhanced SpeedStep筆記本支援,N

#Intel Speedstep on ICH-M chipsets (ioport interface)對有Intel ICH2, ICH3 or ICH4南橋晶片筆記本的支援,N

#Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)對有Intel 440BX/ZX/MX南橋晶片筆記本的支援,N

#Intel Pentium 4 clock modulation對有Intel Pentium 4 / XEON晶片的支援,N

#nVidia nForce2 FSB changing對有 nForce2 FSB支援,N

#Transmeta LongRun對長時間無人或長時間執行的系統支援,Y

#VIA Cyrix III LonghaulVIA Samuel/CyrixIII,VIA Cyrix Samuel/C3, VIA Cyrix Ezra and VIA Cyrix Ezra-TCPU支援,N

*注意:ACPIAMP不能同時工作

匯流排選項)

#PCI supportPCI匯流排的支援,Y

#PCI access modeBIOS,MMConfig,Direct,Any預設用Any,系統檢測PCI裝置時會先用MMConfig模式,DirectBIOS模式,Any

#PCI Express supportPCIE的支援,N

此文為本人原創,轉載請註明轉自roninwei.itpub.net,第一次做錯誤難免,請指正!

#Legacy /proc/pci interface在系統中檔案/proc/pci檔案中產生一個系統中所有pci裝置的記錄,主要用語在紫銅執行時檢視PCI裝置的資訊,選N

#PCI device name database將所有的已知的PCI裝置在/proc/pci檔案中進行記錄,N

#PCI DebuggingPCI裝置出現問題時可以進行除錯,N

#ISA supportISA匯流排的支援,N

#MCA supportIBMps/2機器和一些筆記本中微通道結構的支援,N

#NatSemi SCx200 support對通用半導體SCx200處理器的支援,N

PCCARD (PCMCIA/CardBus) support

#PCCard (PCMCIA/CardBus) supportPCMCIA的支援,為筆記本上使用的網路卡等裝置,N

PCI Hotplug Support

#Support for PCI Hotplugpci裝置進行熱插拔的支援,沒有必要,N

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7507082/viewspace-850256/,如需轉載,請註明出處,否則將追究法律責任。

相關文章