一、背景介紹
編譯核心雖然在實際工作中用到的機率不大,但作為乙個linux運維人員,還是要對編譯核心有初步的了解,以下就來介紹下編譯核心的方法
二、操作步驟
1.檢查開發環境
以centos6為例,確認server platform development和development tools這兩個包組已安裝。
yum grouplist | grep "development"
tar -xf linux-3.10.105.tar.xz -c /usr/src/
ln -sv linux-3.10.105 linux
3.準備核心模板
編譯核心其實就是對核心功能的開啟或者關閉,類似於編譯安裝原始碼程式./config --apr.....一樣,只是核心的選項過於多,使用模板會大大降低選擇的時間。centos6早已準備了乙個核心模板在/boot/目錄下名為config-$(uname -r)的檔案,將它拷貝至核心原始碼目錄中
cd /usr/src/linux
cp /boot/config-2.6.32-642.el6.i686 .config
4.選擇核心啟用的功能
make menuconfig
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
編譯 linux 核心
一 準備工作 tpv te0 首先說明,下面帶 號的行都是要輸入的命令列,且本文提到的所有命令列都在終端裡輸入。ixpub技術部落格 rc0p a6zx j 啟動linux系統,並用根使用者登入,進入終端模式下。6i sb w,a0 ixpub技術部落格c gng,y y ixpub技術部落格 k,...
linux編譯核心
red hat linux版本的核心編譯 make j2 編譯 make modules make modules install make install cd boot mkinitramfs o initrd.img 2.6.30.10 2.6.30.10 此項可能不需要 vim boot g...
Linux核心編譯
經過幾天的努力,本人終於把乙個核心編譯成功了,嘿嘿,現在把編譯過程記下來,以後再接再勵,注意 以下的操作都要有root許可權。linux 2.6.36.tar.bz2。2 解壓縮。cd usr src tar xvf home ibm linux 2.6.36.tar.bz2.usr src下就會多...