2015-10-01 66 views
5

我想添加rt補丁到Linux,我花了3.18.9內核和3.18.9-rt4補丁。 我將patch-3.18.9-rt4.tar.gz複製到Linux內核文件夾中。我現在執行 zcat patches-3.18.9-rt4.tar.gz |修補-p1 執行此命令是要求文件後修補如下圖所示如何在linux中添加rt補丁

|--- a/arch/sparc/Kconfig 
|+++ b/arch/sparc/Kconfig 
-------------------------- 
File to patch: 

我要添加的所有補丁一氣呵成,我怎樣才能做到這一點?

+1

我敢肯定這應該去http://superuser.com/ - 它不是一個編程問題。從執行'patch'命令的目錄添加信息,看起來像'-p'選項在這裏不匹配。 –

回答

5

問題

您正在使用的補丁包含了RT補丁的大量單獨的文件,捆綁成一個tar存檔,然後壓縮成一個文件gz。在文件上運行zcat(或朋友)將解壓縮,然後將結果傳遞給patch

但是,由於解壓補丁文件後的結果是.tar壓縮文件,這也是傳遞到patch的內容,這是不起作用的。

最簡單的辦法

使用RT補丁,而不是,這僅僅是一個壓縮文件.patch的單文件版本(這些版本可以通過被稱爲「補丁-...」,而不是被認可「patch -...」,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說明:(只是把它調整到自己的內核版本/壓縮格式)

並對內核打補丁

下載後,解壓內核源碼包,並更改成內核源碼目錄。內核打補丁與補丁級別P1:

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 
+2

啊,首先看看'.tar.gz'。也許添加*爲什麼*它不工作:'.tar'是多個文件的存檔,'zcat' /'bzcat'/...只是用於解壓縮單個文件。 –

+0

現在加入 - 謝謝你的提示! – sonicwave

+0

謝謝,問題解決了 – anikhan