环境: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,说明新内核已经成功加载了