一、背景介紹
編譯核心雖然在實際工作中用到的機率不大,但作為一個 Linux 運維人員,還是要對編譯核心有初步的瞭解,以下就來介紹下編譯核心的方法
二、操作步驟
1. 檢查開發環境
以 CentOS6 為例,確認 Server Platform Development 和 Development tools 這兩個包組已安裝。
yum grouplist | grep “Development”
2. 下載核心原始碼
此處以 3.10.105 版本為例,下載到 root 使用者的家目錄下並解壓到指定目錄,同時建立一個軟連線(建立軟連線的目的是以後更換核心時直接更改軟連線指向)
tar -xf linux-3.10.105.tar.xz -C /usr/src/
ln -sv linux-3.10.105 linux
3. 準備核心 WordPress 模板
編譯核心其實就是對核心功能的開啓或者關閉,類似於編譯安裝原始碼程式./config –apr….. 一樣,只是核心的選項過於多,使用 WordPress 模板會大大降低選擇的時間。 CentOS6 早已準備了一個核心 WordPress 模板在/boot/目錄下名為 config-$(uname -r) 的檔案,將它拷貝至核心原始碼目錄中
cd /usr/src/linux
cp /boot/config-2.6.32-642.el6.i686 .config
4. 選擇核心啓用的功能
make manuconfig
需要注意的是:任何編譯操作只能在核心原始碼目錄下進行,即/usr/src/linux 目錄下,使用 make help 檢視更多資訊,選擇完成後退出並儲存
5. 編譯核心
make -j #
進行編譯,#表示同時展開的作業數,建議和 CPU 核心數保持一致,make 是對.config 檔案進行編譯,如果對.config 檔案編譯完成後發現遺漏或者想新增幾個功能可以在核心原始碼目錄下進行部分功能、特定模組的編譯:
cd /usr/src/linux
make dir/ 只編譯莫目錄中的相關程式碼(部分功能)
make dir/file.ko 只編譯一個特定的模組
6. 安裝模組
make modules_install 建議在安裝編譯好的核心前先安裝模組,避免缺少相關的模組
7. 安裝核心
make install
安裝核心,此步驟完成後會在/boot 目錄下會建立新的核心及 initramfs,
同時也會將新核心的配置資訊加入 grub 目錄下的 grub.conf 檔案中,只是預設還是使用老核心
重啓操作系統,此時你會看到新的核心已經可以使用
三、補充説明
1.screen 命令的使用
在編譯時 make 命令的等待時間過長,如果此時終端與站羣服務器斷開連結(ssh 中斷),那由此 ssh 發起的命令同樣會終止,為了避免這種情況出現,建議使用 screen 命令,screen 命令的常用選項:
screen #開啓一個監視器
Crtl+a 後鬆開鍵盤再按 d 鍵 #暫時退出 screen 介面
screen -ls #檢視當前所有的 screen 介面
screen -r <螢幕號> #返回指定螢幕號的 screen 介面
exit #關閉 screen 介面
2. 交叉編譯核心
如果編譯的目標平台與當前平台不相同,在當前平台上直接編譯的核心就無法在指定平台上執行,此時就需要交叉編譯,編譯是使用:make ARCH=arch_name,要獲取特定目標平台的使用幫助 make ARCH=arch_name help