A. 準備原始碼 |
1. 從網站(例如: www.kernel.org)或光碟取得原始碼檔案。
linux-2.2.18.tar.gz
|
2. 把原始碼檔案移至 /usr/src 核心原始碼主目錄。
mv linux-2.2.18.tar.gz /usr/src
|
3. 切換至核心原始碼主目錄。
cd /usr/src
|
4. 修改原本核心原始碼目錄 symbolic link 名稱。
mv linux linux.old
|
5. 解壓新核心原始碼至 /usr/src/linux。
tar zxvf linux-2.2.18.tar.gz
|
6. 修改新核心原始碼目錄名稱。
mv linux linux-2.2.18
|
7. 建立新核心原始碼目錄 symbolic link 。
ln -s linux-2.2.18 linux
|
|
B. 設定核心功能 |
1. 切換至新核心原始碼目錄
cd /usr/src/linux
|
2. 移除目的檔 (*.o) 及附屬檔。此命令會清除上次核心設定參數。
make mrproper
|
3. 設定核心功能。
make menuconfig 有選項可以把核心設定參數存檔 => 建議使用,以便下次編譯系統核心時載入。
make menuconfig
或
make config
或
make xconfig
選項 => [y] 包含, [m] 模組, [n] 不包含
|
Return 返回
|
C. 編譯系統核心 |
1. 連結程式碼與函式庫。
make dep
|
2. 清除以前編譯時留下而不再需要的檔案。
make clean
|
3. 開始編譯系統核心。
zImage: 產生的核心較大,可能導致編譯過程失敗;在系統起動時,效能較好。
bzImage: 產生的核心較細。
make bzImage
或
make zImage
|
4. 或開始編譯系統核心並安裝到磁片作為開機片。
make zdisk
或
make bzdisk
|
Return 返回
|
D. 編譯及安裝模組 |
1. 開始編譯外掛模組。
make modules
|
2. 安裝編譯完成的模組。
make modules_install
|
Return 返回
|
E. 安裝系統核心 |
1. 切換至 /boot 目錄。
cd /boot
|
2. 修改原本系統核心 symbolic link 名稱。
mv vmlinuz vmlinuz.old
|
3. 複製新系統核心至 /boot 目錄。
cp /usr/src/linux/arch/i386/boot/bzImage vmlinuz-2.2.18
|
4. 建立新系統核心 symbolic link 名稱。
ln -s vmlinuz-2.2.18 vmlinuz
|
Return 返回
|
F. 修改 LILO |
1. 修改 LILO 設定檔 /etc/lilo.conf:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux
image=/boot/vmlinuz-2.2.14-5.0
label=linux.old
read-only
root=/dev/hda1
image=/boot/vmlinuz-2.2.18
label=linux
read-only
root=/dev/hda1
|
2. 使新的 lilo.conf 設定生效。
lilo
或
lilo -v -v -v
-v: verbose 模式,顯示設定新的 lilo.conf 時,訊息的完整程度。
檢查 LILO 是否安裝成功。
lilo -q
|
Return 返回
|
G. 備註 |
編譯後的系統核心 zImage / bzimage 位置:
/usr/src/linux/arch/i386/boot/
已編譯的外掛模組檔案:
/usr/src/linux/modules/
已安裝的外掛模組檔案:
/lib/modules/(核心版本編號)/
|
Return 返回
|