如何为linux内核打补丁
来源:互联网 发布:大数据对未来的影响 编辑:程序博客网 时间:2024/05/21 09:32
内核开发指南 如何为内核打补丁
目的
本文是个简单的指导文件。教你如何为自己的内核打补丁。这是内核开发中最基本的工作。
patch(补丁)就是存放着不同版本之间差异的文件。通过打补丁的方法升级源代码,可以不用下载整个源代码
详细的打补丁的方法可以查看内核/Document/applying-patchs。txt
要求
你应该已经有了一个可以编译的内核。如果没有。可以到www.kernel.org 下载。本文不是教你如何编译内核
内核应该是从kernelorg 下载的。第三方的内核(比如redhat)可能打补丁的时候会出问题。请参考特别发行版自己的打补丁文章。
原文地址:http://blog.csdn.net/hide1713/archive/2007/12/16/1941614.aspx
2.6.23.11。 那么我如何升级呢?
首先,2.6.x.x这类版本号叫stable版。是经过测试证明稳定的。一般用户只都是用这个版本。其他还有rc,mm版本。这里先不讨论。2.6.x这个种3个数的叫base stable版。4位数的版本都是在base stable上面打补丁得来的。
所以总得步骤是 2.6.22.9先要降级到2.6.22 然后升级到2.6.23.再升级到2.6.23.9
具体做法如下。
1.下载patch-2.6.22.9.bz2。把它放到/usr/src/目录里面
接下来
cd liunx-2.6.22.9
bzcat ../patch-2.6.22.9.bz2|patch -p1 -R #使用R命令意思是取消补丁。这样我们就把22.9 降到 22
2.下载patch-2.6.23.gz。把它放到/usr/src/目录里面
cd liunx-2.6.22.9
zcat ../patch-2.6.23.gz|patch -p1 #这样就升级到了2.6.23
3.下载patch-2.6.23.11.bz2。把它放到/usr/src/目录里面
接下来
cd liunx-2.6.22.9
bzcat ../patch-2.6.23.11.bz2|patch -p1 # 这样就升级到了2.6.23.11 这是现在stable的最新版。
最后
cd..
mv linux-2.6.22.9 linux-2.6.23.11#改为正确目录名
ln -s linux-2.6.23.11 linux #重新建立链接
如果我现在要使2.6.23.11升级到2.6.23.12. 我应该先把2.6.23.11 回退成2.6.23 然后再打 2.6.23.12的补丁
假设我已经在内核的目录中。补丁放在上层目录。
bzcat ../patch-2.6.23.11.bz2|patch -p1 -R #回退到2.6.23
bzcat ../patch-2.6.23.12.bz2|patch -p1 #打到2.6.23.12
总的来说就是这样。正确的输出应该全都像下面这样
patching file include/net/sock.h
patching file include/net/tcp.h
patching file include/scsi/scsi_device.h
patching file include/xen/interface/vcpu.h
patching file ipc/mqueue.c
patching file kernel/exit.c
patching file kernel/fork.c
patching file kernel/futex.c
patching file kernel/futex_compat.c
patching file kernel/hrtimer.c
patching file kernel/irq/manage.c
patching file kernel/lockdep.c
patching file kernel/params.c
。
。
。
如果出现rej文件。说明有的文件打补丁失败。请查看那个rej文件。看看是为什么导致失败。一般来说。可能是你的目录树有问题。如果还有问题。参考内核/Docmuent目录下面的补丁教程。
EOF
目的
本文是个简单的指导文件。教你如何为自己的内核打补丁。这是内核开发中最基本的工作。
patch(补丁)就是存放着不同版本之间差异的文件。通过打补丁的方法升级源代码,可以不用下载整个源代码
详细的打补丁的方法可以查看内核/Document/applying-patchs。txt
要求
你应该已经有了一个可以编译的内核。如果没有。可以到www.kernel.org 下载。本文不是教你如何编译内核
内核应该是从kernelorg 下载的。第三方的内核(比如redhat)可能打补丁的时候会出问题。请参考特别发行版自己的打补丁文章。
原文地址:http://blog.csdn.net/hide1713/archive/2007/12/16/1941614.aspx
场景1
现在我的/usr/src/liunx-2.6.22.9 中存放了内核的源代码。我到了www.kernel.org上,看到最新的stable版本是2.6.23.11。 那么我如何升级呢?
首先,2.6.x.x这类版本号叫stable版。是经过测试证明稳定的。一般用户只都是用这个版本。其他还有rc,mm版本。这里先不讨论。2.6.x这个种3个数的叫base stable版。4位数的版本都是在base stable上面打补丁得来的。
所以总得步骤是 2.6.22.9先要降级到2.6.22 然后升级到2.6.23.再升级到2.6.23.9
具体做法如下。
1.下载patch-2.6.22.9.bz2。把它放到/usr/src/目录里面
接下来
cd liunx-2.6.22.9
bzcat ../patch-2.6.22.9.bz2|patch -p1 -R #使用R命令意思是取消补丁。这样我们就把22.9 降到 22
2.下载patch-2.6.23.gz。把它放到/usr/src/目录里面
cd liunx-2.6.22.9
zcat ../patch-2.6.23.gz|patch -p1 #这样就升级到了2.6.23
3.下载patch-2.6.23.11.bz2。把它放到/usr/src/目录里面
接下来
cd liunx-2.6.22.9
bzcat ../patch-2.6.23.11.bz2|patch -p1 # 这样就升级到了2.6.23.11 这是现在stable的最新版。
最后
cd..
mv linux-2.6.22.9 linux-2.6.23.11#改为正确目录名
ln -s linux-2.6.23.11 linux #重新建立链接
场景2
如果我现在要使2.6.23.11升级到2.6.23.12. 我应该先把2.6.23.11 回退成2.6.23 然后再打 2.6.23.12的补丁
假设我已经在内核的目录中。补丁放在上层目录。
bzcat ../patch-2.6.23.11.bz2|patch -p1 -R #回退到2.6.23
bzcat ../patch-2.6.23.12.bz2|patch -p1 #打到2.6.23.12
总的来说就是这样。正确的输出应该全都像下面这样
patching file include/net/sock.h
patching file include/net/tcp.h
patching file include/scsi/scsi_device.h
patching file include/xen/interface/vcpu.h
patching file ipc/mqueue.c
patching file kernel/exit.c
patching file kernel/fork.c
patching file kernel/futex.c
patching file kernel/futex_compat.c
patching file kernel/hrtimer.c
patching file kernel/irq/manage.c
patching file kernel/lockdep.c
patching file kernel/params.c
。
。
。
如果出现rej文件。说明有的文件打补丁失败。请查看那个rej文件。看看是为什么导致失败。一般来说。可能是你的目录树有问题。如果还有问题。参考内核/Docmuent目录下面的补丁教程。
EOF
- 如何为linux内核打补丁
- 为Linux内核打补丁
- 怎样为Linux内核打补丁
- 怎样为Linux内核打补丁
- 怎样为Linux内核打补丁
- 怎样为Linux内核打补丁
- 怎样为Linux内核打补丁
- 内核开发指南 如何为内核打补丁
- 怎样为Linux内核打补丁(中文版)
- 怎样为内核打补丁
- 怎样为Linux内核打补丁,及特定版本内核下载
- 怎样为Linux内核打补丁,及特定版本内核下载
- linux内核打补丁步骤
- 谈谈Linux打补丁的原理以及如何判别打补丁的错误 --- 从补丁学内核
- 谈谈Linux打补丁的原理以及如何判别打补丁的错误 --- 从补丁学内核
- 谈谈Linux打补丁的原理以及如何判别打补丁的错误 --- 从补丁学内核
- 谈谈Linux打补丁的原理以及如何判别打补丁的错误 --- 从补丁学内核
- 谈谈Linux打补丁的原理以及如何判别打补丁的错误 --- 从补丁学内核
- 关于灵活的共享数据库的设计随想(一)
- CSDN真是个不错的地方
- 试验网站#3搜索引擎优化收录情况记录2007-12-16
- Jpcap包的学习笔记(三)获取网络接口设备[网卡设备]
- 尝试在 Windows Server 2003 或 Windows XP 中安装大型 Windows Installer 程序包或大型 Windows Installer 修补程序包时出现错误消息:“Error 1718. File was rejecte
- 如何为linux内核打补丁
- 阿里巴巴DBA笔试题参考答案
- 《MFC深入浅出》学习笔记--------Win32 SDK 程序开发流程
- Wine v0.9.51 - Linux上运行Windows程序的平台
- 主题中的内容
- 初学JAVA何去何从(将登录进行到底--八次写登录页面的收获)
- 新劳动合同法对程序员的影响
- asp的 rs.GetString 用法
- 解决OpenOffic不能启动的问题