因为实验环境的不同,如果内核编译过程出现未知错误而造成编译失败,且破坏了系统文件,所导致的无法预料的损失,本人概不负责。因作者本人也只是初学者,此篇文章只适用于在初学者在做类似实验时使用,如果是商业用途,请在互联网上搜索专业实施方法与步骤,或者聘请专业从事人员。

给大家一个提醒,就是升级的跨度不要太大,不然实验失败率会很大。

 言归正传,下面便进入我们的主题:
我们要先做好准备工作,
整理出系统需要支持的硬件、文件系统类型以及网络协议等内容。
建议用命令uname –r 查看一下系统的版本号,如果你的系统版本与将要编译的内核版本一致,建议将/lib/modules下的内容备份,否则将来的make modules_install 步骤产生的文件会覆盖这个路径下的内容。
安装好xz解压工具。安装xz解压工具过程如下。

linux内核编译(升级)_linux内核编译

对xz包进行解压缩

tar -jxvf xz-5.0.3.tar.bz2 -C /usr/local/src/
解压完成后进入目录查看

linux内核编译(升级)_linux内核编译_02

接下来便可以执行安装了。默认安装路径在/usr/local/目录下

执行完./configure之后,执行make操作,最后再执行make install操作:

linux内核编译(升级)_linux内核编译_03

linux内核编译(升级)_linux_04

安装完成后,我们可以进入安装目录下查看:

linux内核编译(升级)_linux_05

看环境变量,xz路径已经在PATH值里,我们已经可以直接使用xz加压缩工具了。

[root@localhost local]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
[root@localhost local]#
 

linux内核编译(升级)_linux_06

那么,接下来我们便可以正式进入内核编译过程了,

对新版本的linux内核进行解压

[root@localhost ~]# xz -d linux-3.8.4.tar.xz

linux内核编译(升级)_linux内核版本升级_07

加压缩完毕后,会创建一个.tar文件包裹:

linux内核编译(升级)_linux_08

[root@localhost ~]# tar -xvf linux-3.8.4.tar -C /usr/src/

 

对该包裹进行拆包操作

 需要注意的是,拆包后的存放路径,内核的源代码我们一般都存放在/usr/src/目录下,而应用软件的则是存放在/usr/local/src/目录下。

然后我们切换到usr/src/目录下

 

 

linux内核编译(升级)_linux内核编译_09
进入我们的新内核目录下
[root@localhost src]# cd linux-3.8.4/
 [root@localhost linux-3.8.4]# ls
arch     Documentation init     lib          README          sound
block    drivers        ipc      MAINTAINERS REPORTING-BUGS tools
COPYING firmware       Kbuild   Makefile     samples         usr
CREDITS fs             Kconfig mm           scripts         virt
crypto   include        kernel   net          security
[root@localhost linux-3.8.4]#

 

linux内核编译(升级)_linux_10

接下来,把旧版本的配置文件拷贝到当前目录下,以其为参照点,执行make操作:

[root@localhost linux-3.8.4]# cp /boot/config-2.6.18-164.el5 ./config
linux内核编译(升级)_linux内核版本升级_11
[root@localhost linux-3.8.4]# make menuconfig
 执行完成后便打开如下图所示菜单,为我们新内核的配置菜单。

 

linux内核编译(升级)_linux内核版本升级_12

选择YES保存配置:

 

linux内核编译(升级)_linux_13

接下来便是执行make(会需要较长时间)及make install操作:

执行make操作时,会出现错误,这就需要我们打补丁:

linux内核编译(升级)_linux_14

查看我们的补丁包:

linux内核编译(升级)_linux_15

 

 

 [root@localhost ~]# xz -d patch-3.8.4.xz

 

 
解压缩,

 linux内核编译(升级)_linux内核编译_16

解压缩之后会形成一个patch-3.8.4文件,移动到新内核目录下

[root@localhost ~]# cp patch-3.8.4 /usr/src/linux-3.8.4/
[root@localhost ~]#
然后进入内核目录下,执行命令‘patch –p0’ 安装补丁

linux内核编译(升级)_linux_17

新内核打好补丁后,内核会放在/boot/目录下,我们可以直接查看,会有两个内核,包含新旧两个版本。

可以查看配置文件(vim /etc/grub.conf),会自动添加新内核信息,但是默认的还是会启用旧内核,我们需要把default改成1,这样就会开机器用我们的新内核了。