- 下载内核源码
- 解压
tar -xvf linux-3.15.2.tar --directory=/usr/src/kernels
(如果下载下来的是tar.xz文件,用xz -d linux-3.15.2.tar.xz解压出linux-3.15.2.tar)
-
配置内核配置
make menuconfig保存退出生产“.config”文件
(在/usr/src/kernels下用make menuconfig,不必自己配置,用默认的就行,直接保存退出) -
编译内核
make bzImage(内核)
make modules(模块)
make all
(如果在编译时出现 make: 警告:检测到时钟错误。您的创建可能是不完整的。进入内核程序目录,执行以下命令:find -type f -exec touch {} +然后再重新编译内核.
原因:在编译内核时中间中断过,然后修改了系统时间,将系统时间改成了之前的时间,例如编译内核时系统时间
是15:30,期间改成了11:30。编译中断后,下一次重新编译内核,就提示该警告.)
- 安装模块
make modules_install
检查安装是否正确:ls /lib/modules/新版本(是否有这个目录,比如3.15.2/modules.dep)
- 制作initramdisk
mkinitrd -v /boot/initramfs-3.15.2.i686.img 3.15.2
- 查看initramdisk是否正确
mkdir /tmp/initrd
cp initramfs-3.15.2.i686.img /tmp/initrd/initramfs-3.15.2.gz
cd /tmp/initrd/
gzip -d initramfs-3.15.2.gz
cpio -ivcd < initramfs-3.15.2
检查当前目录下的lib是否有lib/modules/3.15.2/modules.dep,有则正常安装了
8. 修改系统启动配置文件
cp /usr/src/kernels/linux-3.15.2/arch/x86/boot/bzImage /boot/vmlinuz-3.15.2.i686
#修改grub/grub.conf
vim grub.conf
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-279.el6.i686)
root (hd0,0)
kernel /vmlinuz-2.6.32-279.el6.i686 ro root=UUID=c6d91265-52bb-4e4c-8dfb-1a4b1d642c0c rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-279.el6.i686.img
title CentOS (3.15.2.i686)
root (hd0,0)
kernel /vmlinuz-3.15.2.i686 ro root=UUID=c6d91265-52bb-4e4c-8dfb-1a4b1d642c0c rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd /initramfs-3.15.2.i686.img
(其实就是把title那段开始到最后复制一遍,再把原来的版本都改为3.15.2即可)
9. 重启测试