You may want to upgrade the Linux kernel for various reasons. For example, you want to try a new kernel module or device driver which requires the latest kernel feature. Or, a new vulnerability has been uncovered in an existing Linux kernel. In other times, your Linux server may be unreliable with frequent system crashes. Whatever the reason is, upgrading the Linux kernel is an essential maintenance job for every Linux user.
In this tutorial, I will describe how to upgrade the Linux kernel on CentOS system. Here I will be upgrading the Linux kernel 2.6.32, which is the stock kernel in CentOS 6.4, to the Linux kernel 3.2.48 LTS.
First, verify the current kernel version:
$ uname -r
Before you start, install all necessary prerequisite software for building a kernel:
$ sudo yum groupinstall "Development Tools"
$ sudo yum install ncurses-devel
Also, install any existing updates on your system:
$ sudo yum update
Now you are ready to upgrade the kernel from 2.6.32 to 3.2.48 LTS.
Download the new kernel source from kernel.org, and install it on your system:
$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.48.tar.xz
$ sudo tar xvfvJ linux-3.2.48.tar.xz -C /usr/src
$ cd /usr/src/linux-3.2.48
Before compiling a new kernel, you need to generate a kernel configuration.
If you want to generate a kernel configuration via graphical user interface, run:
$ sudo make menuconfig
Alternatively, if you want to use the same kernel configuration as the currently running kernel, run the following command instead. You still need to set any newly added configuration options by manually answering questions. If you do not know the meaning of each option, just press enter to accept a default answer.
$ sudo make oldconfig
If you want to use the same old kernel configuration, and automatically accept default answers to every question, run the following command instead:
$ sudo sh -c 'yes "" | make oldconfig'
After kernel configuration is done, go ahead and compile a new kernel:
$ sudo make
The above step will take 30 minutes or more, depending on your CPU speed. After compilation is completed, go ahead and install the new kernel (and all kernel modules) as follows.
$ sudo make modules_install install
To use the newly built kernel in your system, you need to choose the new kernel on grub menu upon boot-up.
Alternatively, edit /boot/grub/grub.conf to specify the new kernel as the default kernel to load. In /boot/grub/grub.conf, change the “default” number to whichever position your new kernel information is in the kernel list (counting starts at 0).
$ sudo vi /boot/grub/grub.conf
article credit: http://xmodulo.com/how-to-upgrade-the-kernel-on-centos.html