環境:centos6.4 內核版本為2.6.32
目標:編譯4.4.2內核,升級到 4.4.2
准備工作:
安裝開發庫和ncurses庫
# yum groupinstall "Development Tools" -y
由於內核源碼依賴ncurses庫,因為我是采用了最新的內核源碼,所以我也采用了最新的ncurses(version 6.0)
官方下載地址:http://ftp.gnu.org/gnu/ncurses/
安裝比較簡單:生成配置文件make-make install,不在詳述。
編譯內核:
下載內核(version 4.4.2):https://www.kernel.org/
解壓
# xz -d linux-4.4.2.tar.xz
# cd linux-4.4.2
# make menuconfig
此時出現內核模塊選擇界面,按需求進行定制,由於我scsi硬盤,所以勾選所有的scsi模塊
如圖
勾選后會存為.configure文件,然后make開始編譯內核,如果修改以前配置,需要先執行make mrproper
此時需要依賴
# yum install bc openssl-devel -y
然后就是等待內核模塊編譯完成,需要一段時間
編譯后安裝內核模塊,make modules_install,默認會裝在/lib/modules/4.4.2
准備內核映像文件 #mkdir kernel
# cp /usr/src/linux-4.4.2/arch/x86_64/boot/bzImage /boot/kernel/vmlinuz-4.4.2
# chmod +x vmlinuz-4.4.2
准備initrd.img,作用是實現kernal啟動時模塊的加載
# cd lib/modules/
# mkinitrd /boot/kernel/initrd.img 4.4.2
最后就是編輯grub文件了,讓它在啟動的時候加載新的核心
title Kernel 4.4.2
root (hd0,0)
kernel /kernel/vmlinuz-4.4.2 root=/dev/mapper/vg_centos64master-lv_root
initrd /kernel/initrd.img
然后重啟 uname -r 查看版本為4.4.2,說明新內核已經成功加載了