我想在Linux上添加rt补丁,我拿了3.18.9内核和3.18.9-rt4补丁.我将patch-3.18.9-rt4.tar.gz复制到Linux内核文件夹中.现在我执行了zcat补丁-3.18.9-rt4.tar.gz | patch -p1执行此命令后,它要求修补文件,如下所示
|--- a/arch/sparc/Kconfig
|+++ b/arch/sparc/Kconfig
--------------------------
File to patch:
Run Code Online (Sandbox Code Playgroud)
我想一次性添加所有补丁,我该如何实现?
问题
您正在使用的补丁包含RT补丁作为大量单独的文件,捆绑到tar存档中,然后压缩成gz文件.zcat在文件上运行(或朋友)将解压缩它,然后将结果传递给patch.
但是,由于解压缩补丁文件后的结果是.tar归档文件,因此这也是传递的内容patch,但这不起作用.
简单的解决方案
使用单个文件版本的RT补丁,这只是一个压缩.patch文件(这些版本可以被称为"patch -..."而不是"patches -...",3.18.9-rt5可以识别可以从这里下载:https://www.kernel.org/pub/linux/kernel/projects/rt/3.18/older/patch-3.18.9-rt5.patch.gz).
然后按照RT Preempt Howto中的说明操作:(只需将其调整为您自己的内核版本/压缩格式)
修补内核
下载后,解压缩内核tarball并切换到内核源目录.使用补丁级别p1修补内核:
Run Code Online (Sandbox Code Playgroud)tar xfj linux-2.6.23.1.tar.bz2 cd linux-2.6.23.1 bzcat ../patch-2.6.23.1-rt11.bz2 | patch -p1