編譯核心的方法
2024-07-21 02:37:08
供稿:網友
編輯好核心設定檔之后,再來就是重頭戲嘍!!
現在您可以開始來編譯戰死無數腦細胞所得來的戰利品了,不過在編譯之前,可能還得再奉獻一些腦細胞來注重一些事項 ^_^
不同時期的版本提供了不同的編譯方法,請您務必留心了!!
請先切換身份為 root
假如您使用的版本是 4.0 (不含) 以前的版本;或者是使用 RELEASE 路線的版本,而且 /usr/src 目錄中只有 sys/ 這個子目錄,那么您一定得用這種方式來編譯安裝您的核心︰
shell# cd /usr/src/sys/i386/confshell# /usr/sbin/config MYKERNELshell# cd ../../compile/MYKERNELshell# make dependshell# makeshell# make installshell# make clean
· config
檢查核心設定文件是否有語法上的錯誤,假如沒有就會在 /usr/src/sys/compile 建立 MYKERNEL/ 子目錄,并將所需的原始程序代碼覆制到 MYKERNEL/ 此目錄下,預備好提供編譯工作的環境
· make depend
檢查所需的檔案是否都存在
· make
開始編譯核心。編譯好之后的核心檔名為 kernel,并存放于 /usr/src/sys/compile/MYKERNEL/ 目錄下
· make install
安裝編譯好的核心與模塊。
將 /modules 目錄更名為 /modules.old
將編譯好的模塊安裝到 /modules 目錄中
將 /kernel 核心檔更名為 /kernel.old
將編譯好的核心檔安裝到 /kernel
· make clean
清除 /usr/src/sys/compile/MYKERNEL/ 目錄下的所有檔案
config 指令所產生的檔案不會清除。
相關 make 的指令可以用 shell# make depend all install clean 來合而為一,這樣就不用待在計算機旁等著下達下一個指令了!!
假如您是 4 字頭的惡魔族 (FreeBSD 4.x),你要用底下的方法來編譯核心︰
shell# cd /usr/srcVer: 4.2 (不含) 以后的版本shell# make buildkernel KERNCONF=MYKERNELshell# make installkernel KERNCONF=MYKERNELVer: 4.2 (含) 以前的版本shell# make buildkernel KERNEL=MYKERNELshell# make installkernel KERNEL=MYKERNEL
· make buildkernel KERNCONF=MYKERNEL
這個指令相等于先做 config 再做 make clean 然后執行 make depend
沒有問題后就執行 make 來編譯核心與模塊
· make installkernel KERNCONF=MYKERNEL
這個指令相等于執行 make install 指令
其實這兩個指令就是 make kernel KERNCONF=MYKERNEL 的拆開版。也就是說,假如您直接下達 make kernel KERNCONF=MYKERNEL 指令時,就會自動為您編譯核心與模塊,且安裝它們就定位了。
假如您覺得要打這么長串的指令很麻煩的話,您可以在 /etc/make.conf 檔案中加入 KERNCONF=MYKERNEL 的設定,就可以只下達 make kernel 指令。
假如您治理多部使用相同版本但配備不同的機器,您可以將所有的核心設定文件在執行速度較快的機器上進行編譯,然后再將各機器的核心移過去安裝。您可以同時編譯它們,只要在 /etc/make.conf 中加入如下的設定即可。
# /etc/make.conf file# --- 省略 ---KERNCONF=MYKERNEL1 MYKERNEL2 MYKERNEL3 MYKERNEL4# --- 省略 ---# 各核心設定文件名稱要以空白間隔開來喲
覺得每次要編譯核心時,明明就沒有更新核心的原始碼,偏偏編譯時模塊就要再編一次,實在是很討人厭,尤其是在速度非凡慢的機器時,更是有想按下 Ctrl+C 的沖動 @@
其實您可以不用每次都編譯模塊的,用這個指令吧︰
make -DNO_MODULES kernel KERNCONF=MYKERNEL
您也可以在 /etc/make.conf 檔案中加入如下設定 (二選一)︰
# /etc/make.conf file# --- 省略 ---NO_MODULES=true # 編譯 kernel 時不編譯模塊MODULES_WITH_WORLD=true # 只在 buildworld 時才編譯模塊# --- 省略 ---
兩種方法隨您選用哦 ^_^
假如您要將在 A 主機上編譯好的核心覆制到 B 主機上更新現有核心的話,您需執行如下指令︰
install -c -m 555 -o root -g wheel -fschg /path/kernel /kernel
-c => 覆制檔案
-m => 檔案權限
-o => 檔案擁有者
-g => 工作群組
-f => 檔案旗號
最后,再一次提醒您 ~ ~
要記得切換到 root 的身份來做這些事喲還有,系統安全等級要設為「0」 喲,不然您一定會吃鱉的 ^_^
最后,讓我們來復習一下編譯 kernel 的步驟︰
1.安裝核心原始程序代碼
2.編輯一個適合您系統的核心設定文件
3.決定編譯核心的方式
4.編譯新的核心并且安裝
5.重新開機測試新的核心 right">(出處:清風軟件下載學院)