1、下載內核,官網:https://www.kernel.org/
這裏用了3.18.30的版本了,系統信息如下:
2、編譯前準備
安裝編譯依賴
# yum grouplist //查看已經安裝的和未安裝的軟件包組,來判斷我們是否安裝了相應的開發環境和開發庫; # yum groupinstall "DevelopmentTools" //一般是安裝這兩個軟件包組,這樣做會確定你擁有編譯時所需的一切工具 # yum install ncurses-devel //你必須這樣才能讓 make*config 這個指令正確地執行 # yum install qt-devel //如果你沒有 X 環境,這一條可以不用 # yum install hmaccalc zlib-develbinutils-devel elfutils-libelf-devel //創建 CentOS-6 內核時需要它們
解壓文件
# tar -xf linux-3.18.30.tar.xz -C /usr/src/
3、到下一步就是去配置內核了、這步配置內核的方法有多種、每一個make就是一種方法、我們只在選一種就可以了:
make config:遍歷選擇所要編譯的內核特性
make allyesconfig:配置所有可編譯的內核特性
make allnoconfig:並不是所有的都不編譯,而是能選的都回答爲NO、只有必須的都選擇爲yes。
make menuconfig:這種就是打開一個文件窗口選擇菜單,這個命令需要打開的窗口大於80字符的寬度,打開後就可以在裏面選擇要編譯的項了
下面兩個是可以用鼠標點選擇的、比較方便哦:
make kconfig(KDE桌面環境下,並且安裝了qt開發環境)
make gconfig(Gnome桌面環境,並且安裝gtk開發環境)
menuconfig:使用這個命令的話、如果是新安裝的系統就要安裝gcc和ncurses-devel這兩個包纔可以打開、然後再裏面選擇就可以了、通這個方法也是用得比較多的
這裏在系統原有的內核配置文件的基礎上建立新的編譯選項,所以複製一份到當前目錄下,命名爲.config。這裏用# make oldconfig命令,讀取當前目錄下的.config文件,在.config文件裏沒有找到的選項則提示用戶填寫,#make oldconfig會在生成新的.config之前備份爲.config.old,並生成新的.config文件
4、開始編譯
# make -j4 bzImage //生成內核文件 # make -j4 modules //編譯模塊 # make -j4 modules_install //編譯安裝模塊
-j後面的數字是線程數,用於加快編譯速度,一般的經驗是,邏輯CPU,就填寫那個數字,例如有8核,則爲-j8,如下查看CPU核數,所以這裏使用的是-j6
5、安裝
# make install
實際運行到這一步時,出現ERROR: modinfo: could not find module vmware_balloon,但是不影響內核安裝,是由於vsphere需要的模塊沒有編譯,要避免這個問題,需要在make之前時修改.config文件,加入
HYPERVISOR_GUEST=y
CONFIG_VMWARE_BALLOON=m
可以先清理在重新編譯,當然不影響使用直接就忽略了
# make mrproper #完成或者安裝過程出錯,可以清理上次編譯的現場 # make clean
6、修改grub引導,重啓
安裝完成後,需要修改Grub引導順序,讓新安裝的內核作爲默認內核。
編輯 grub.conf文件,
vi /etc/grub.conf
看下剛剛新安裝的內核在哪個位置,從0開始,然後設置default爲0,一般新安裝的內核在第一個位置,所以設置default=0。
重啓reboot:
7、內核編譯完成,確認當前內核: