分类: LINUX
2010-04-12 22:32:36
linux基础 2010-03-26 17:00:35 阅读16 评论0 字号:大中小
4.1,首先下载内核的源代码 kernel-2.6.18-92.el5. 1
正文:
主要的版本定义为:『[主].[次].[释出]-[修改]』的样式。 你只要知道 2.6.x 是稳定版本,2.5.x 是测试用版本即可。
我们要使用最新的核心来重新编译核心时,大多就是使用那种偶数的核心版本啦!不过这里还是要再提一遍!就是『 2.4.x 与 2.6.x 是两个具有相当大差异的核心版本, 两者之间使用到的函式库基本上已经不相同了,所以在升级之前,如果你的核心原本是 2.4.xx 版,那么就升级到 2.4.xx 版本的最新版,不要由 2.4.xx 直接升级到 2.6.xx 版,否则到时可能会欲哭无泪~~』, 这个问题在讨论区一再地被提起!这里再次说明!
每个核心的 patch 仅有针对前一版的核心来分析而已, 所以,万一你想要由 2.6.27 升级到 2.6.30 的话,那么你就得要下载 patch-2.6.28, patch-2.6.29, patch-2.6.30 等档案,然后『依序』一个一个的去进行 patch 的动作后, 才能够升级到 2.6.30 喔!这个重要!不要忘记了。
但是,如果你想要升级 2.6.30 的修改版本到 2.6.30.3 时,由于修改版本是针对 2.6.30 来制作的, 因此你只要下载 patch-2.6.30.3 来直接将 2.6.30 升级至 2.6.30.3 即可。但反过来说,如果你要从 2.6.30.2 升级到 2.6.30.3 呢?很抱歉的是,并没有 2.6.30.2 到 2.6.30.3 的补丁档案,所以你必须要将 2.6.30.2 还原至 2.6.30, 然后才能使用 patch-2.6.30.3 来升级 2.6.30 喔!注意这个差异!
linux-2.6.27.44 这个内核是我由linux-2.6.27.45打内核补丁的方式得到的。
[root@kk linux-2.6.27.44]# pwd
/usr/src/kernels/linux-2.6.27.44 <==存放内核的目录
[root@kk linux-2.6.27.44]# ls ../patch-2.6.27.44
../patch-2.6.27.44
[root@kk linux-2.6.27.44]# patch -p1 < ../patch-2.6.27.44 <==打补丁
[root@kk linux-2.6.27.44]# patch -p1 -R < ../patch-2.6.27.44 <==卸载2.6.27.44。得到2.6.27
patching file sound/usb/usbmidi.c
patching file sound/usb/usbquirks.h
patching file virt/kvm/kvm_main.c
我的系统是用光盘直接安装的并且没有升级过内核,现在要做的就是重新编译内核
地址:
[root@kk SRPMS]# useradd brewbuilder <== 添加用户,否则会有警告信息的!
[root@kk SRPMS]# pwd <==注意路径!
/usr/src/redhat/SRPMS
[root@kk SRPMS]# rpm -ivh kernel-2.6.18-92.el5.src.rpm
warning: kernel-2.6.18-92.el5.src.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
1:kernel ########################################### [100%]
[root@kk SRPMS]# ls
kernel-2.6.18-92.el5.src.rpm
[root@kk SRPMS]# cd /usr/src/redhat/SPECS/ <==切换路径!
[root@kk SPECS]# ls
kernel-2.6.spec
[root@kk SPECS]# rpmbuild -bp --target=$(uname -m) ./kernel-2.6.spec <==我的机器是i686
Building target platforms: i686
Building for target i686
+ patch -p1 -s
+ echo 'Patch #20058 (xen-fix-vt-x2-flexpriority.patch):'
Patch #20058 (xen-fix-vt-x2-flexpriority.patch):
+ patch -p1 -s
+ exit 0
[root@kk SPECS]# cd ..
[root@kk redhat]# cd BUILD/
[root@kk BUILD]# ls
kernel-2.6.18
[root@kk BUILD]# cp -a kernel-2.6.18/ /usr/src/
[root@kk BUILD]# pwd
/usr/src/redhat/BUILD
[root@kk BUILD]# du -sh *
488M kernel-2.6.18
[root@kk linux-2.6.18.i686]# pwd
/usr/src/kernel-2.6.18/linux-2.6.18.i686
[root@kk linux-2.6.18.i686]# vi Makefile
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 18
EXTRAVERSION = -prep
改为:
EXTRAVERSION = -92.el5
参照这个方法来做:http://kevinleo.blog.51cto.com/341461/103514
内核补丁知识:
VBIRD: