Chinaunix首页 | 论坛 | 博客
  • 博客访问: 664682
  • 博文数量: 168
  • 博客积分: 2928
  • 博客等级: 中校
  • 技术积分: 1904
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-04 09:56
文章分类

全部博文(168)

文章存档

2010年(168)

我的朋友

分类: LINUX

2010-04-12 22:32:36

【linux 基础】版本号 & Patch

linux基础 2010-03-26 17:00:35 阅读16 评论0 字号:

 

1,核心的版本号,.... 1

2,核心的 patch.. 1

3,安装/卸载补丁纪实.... 1

4,下载并安装系统的源代码.... 1

4.1,首先下载内核的源代码 kernel-2.6.18-92.el5. 1

4.2,安装源代码:... 2

4.3 copy源代码到该路径下... 2

4.4 修改Makefile head.. 2

5,参考文档:.... 2

正文:

,核心的版本号,

主要的版本定义为:『[].[].[释出]-[修改]』的样式。 你只要知道 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

每个核心的 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

 

,下载并安装系统的源代码

我的系统是用光盘直接安装的并且没有升级过内核,现在要做的就是重新编译内核

,首先下载内核的源代码 kernel-2.6.18-92.el5.

地址:

,安装源代码:

[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

修改Makefile head

[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:

 

阅读(1434) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~