Board logo

標題: [資源分享] Kernel核心編譯(2.4.XXX版以下適用) [打印本頁]

作者: 祐祐    時間: 2010-8-11 11:16     標題: Kernel核心編譯(2.4.XXX版以下適用)

編譯核心的理由當然是加快系統速度跟最佳化系統

編譯核心以前最好先把自身的硬體設備做一個完善的列表
至於其它檔案格式、通信協定、核心附加的部份則應該選用modules的方式
並且針對主要的部份做為kernel的一部份

kernel可以從ftp.kernel.org去下載
假設當您把下載回來的kernel放在/use/src之下,經過解壓後會放至在linux-2.4.XXX中的路徑中
如果當出安裝系統的時後有包含kernel那麼您可以直接到/usr/src/linux操做

接下來介紹編譯的程序
第一步設定kernel的組態
在設定的畫面中有重多的設定畫面
make config  -- 文字介面,如果您極度了解kernel的文字設定介面那您可以採用這樣的方式
make menuconfig -- 文字式選單,使用選單的方式可以讓您很明瞭的選用您的組態,在這邊強烈建義使用
make xconfig -- xwindow圖形選單,其方式如同於menuconfig的效果,只是您是用滑鼠去勾選即可,最重要的是它是在xwindow下運做

第二步
make dep -- 定義kernel所有的makefile,這個步驟屬於必須的,否則您在編譯kernel可能會出現不明問題

第三步
make clean -- 清除過去的編譯,第一次編譯時可以略過這步,當然它也可以在編譯完成後使用,目的在於節省空間以及安全上的考量

第四步
make bzlilo  -- 正式編譯kernel並將kernel安裝至lilo之中,基本上這是一定有的
make bzImage -- 編譯kernel並產生kernel的image出來,假設您使用磁片來開機

第五步
make modules -- 編譯模組,這也是一定要的,沒模組您可能會過的很痛苦,當然您kernel必須要有此選項
在選項中Loadable module support必須要將Enable loadable module support及Kernel module loader作勾選才有效喔

至於Set version information on all module symbols則是要讓module加上版本資訊,讓他可以在各版核心掛載

第六步
make moeuls_install --安裝模組

其它還有很多make的內容這邊就暫且放著吧..

注意:您可能須要去修改Makefile的內容,如設定boot Kernel的位置
可以在Makefile中找到這一行#export INSTALL_PATH=/boot
只要將#字去掉就可以讓kernel安裝在/boot之下


基本上很少人去關心kernel選單中的內容
不過早期的Linux書籍有對這方面做詳述,但已經不適合目前使用
所以小弟就整理出比較常用的選項來做描述,以便大家在編譯核心的時候
知道要使用那些合是自身硬體設備的選項

kernel 選單說明

Code maturity level options
  +- Prompt for development and/or incomplete code/drivers   本項針對開發中的套件做支援,基本上可以不使用
Loadable module support   支援模組載入
  +-Enable loadable module support 本項必選,讓核心支援模組載入
  +-Set version information on all module symbols 本項嘛,在編譯模組的時候加上版本的資訊,基本上這應該不太需要
  +-Kernle module loader 必選,讓核心支援模組載入
Proccess type and features  處理器(CPU)的型式與功能設定
  +-(       ) Proccess family 本項是用來選擇cpu的種類,請選用自身cpu的類別
  +-Machine check exception
  +-Toshiba Laptop support 是給Toshiba筆記型電腦用
  +-Dell laptop support 這是給Dell的筆記型電腦用
  +-/dev/cpu/microcode - Intel IA32 CPU microcode support
  +-/dev/cpu/*/msr - Model-specific register support
  +-/dev/cpu/*/cpuid - CPU information support
  +-BIOS Enhanced Disk Drive calls determin boot disk
  +-High Memory Support 基本上就讓他保持在off,當然啦您的記憶體有超過4GB的話就可以開啟
  +-Math emulation  模擬浮點運算,基本上我都是讓它關閉,也就是不選擇啦
  +-MTRR(Memory Type Range Register) support
  +-Symmetric multi-processing support
  +-Local APIC support on uniproccessors
  +-Unsynced TSC support
General setup  一般性設定
Memory Techology Devices (MTD)
Parallel port support   並列阜支援
Plug and Play configuration 自動安插及用設定(PNP)
Block devices 區塊裝置
Multi-device support (RAID and LVM) 對陣列及LVM的支援
Networking option 網路通信協定選項
Telephony Support
ATA/IDE/MFM/RLL support
SCSI support SCSI介面的支援
Fusion MPT device support
IEEE 1394 (FireWire) support (EXPERIMENTAL)
I2O device support
Network device support 網路卡驅動程式
Amateur Raido support
IrDA (infrared) support 紅外線通信支援
ISDN subsystem
Old CDROM drivers(not SCSI, not IDE)
Input core support
Character devices
Multimedia devices
File systems 對於檔案系統的支援
  +-Quota support
  +-VFS v0 quota format support
  +-Kernel automounter support
  +-Kernel automounter version 4 (also support v3)
  +-Reiserfs support
  +-Enble reiserfs debug mode
  +-Stat in /proc/fs/reiserfs
  +-ADFS file system support
  +-Amiga FFS file system support
  +-Apple HFS file system support
  +-Apple HFS+ (Extended HFS) file system support

Console drivers
Sound
USB support
Bluetooth support
kernel hacking
Cryptographic options
Library routines

基本上核心適用且穩定就不用經常更換
除了有bug 或剛好有裝置不支援




歡迎光臨 UT男同志論壇 (http://blog.jdlog.com/) Powered by Discuz! 7.0.0