カーネルパッチプロンプト「逆方向(または以前に適用された)パッチが検出されました。-Rを想定しますか?[n]」

カーネルパッチプロンプト「逆方向(または以前に適用された)パッチが検出されました。-Rを想定しますか?[n]」

カーネルパッチを試したのは今回が初めてです。次の内容にエラーがあるのか​​、正しく実行しているのかわかりません。しかし、すべてのチュートリアルとビデオには.patch拡張ファイルが表示されますが、.xzファイルがあります。

以下からStable Version 5.12.1をダウンロードしてください。https://www.kernel.org:

root@learn:/usr/local/src# wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.12.1.tar.xz

root@learn:/usr/local/src# mkdir Linux-Kernel-5.12.1

root@learn:/usr/local/src# tar xvf linux-5.12.1.tar.xz -C Linux-Kernel-5.12.1/ --strip-components=1

root@learn:/usr/local/src# cd Linux-Kernel-5.12.1/

root@learn:/usr/local/src/Linux-Kernel-5.12.1# cp /boot/config-$(uname -r) ./.config

以下からpatch.xzファイルをダウンロードしました。https://www.kernel.org/ディレクトリに移動:

root@learn:/usr/local/src/Linux-Kernel-5.12.1# wget https://cdn.kernel.org/pub/linux/kernel/v5.x/patch-5.12.1.xz

申請時:

root@learn:/usr/local/src/Linux-Kernel-5.12.1# patch -p1 < patch-5.12.1
patching file Makefile
Reversed (or previously applied) patch detected!  Assume -R? [n]

それはどういう意味ですか? 。

それではどうすればいいですか?

また、Ubuntu / Debianの場合は、安定したカーネルとそのパッチをダウンロードしています。https://www.kernel.org/正しいアプローチですか、それともkernel.orgに加えて独自のソースURLがありますか?

ベストアンサー1

このエラーメッセージ

Reversed (or previously applied) patch detected!  Assume -R? [n]

...patchコマンドは、パッチがソースに適用されたことを検出したことを意味します。推奨されますが、patch -Rパッチを適用しないので、望むものではないので、以前のバージョンのLinuxソースを入手します。

これはあなたの誤解によるものです。パッチの最初の行を見てください:

--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 12
-SUBLEVEL = 0
+SUBLEVEL = 1
 EXTRAVERSION =
 NAME = Frozen Wasteland

このブロックが行うことは、Makefileの4行目をSUBLEVEL0から1に変更することです。実際、このパッチはLinuxバージョンを5.12.0からすでに使用されているバージョン5.12.1に変更します(したがってエラーメッセージが表示されます)。

したがって、これは正しいパッチではありません。あなたが望むもの5.12.2 パッチ。しかし、(上記の)見てみると、それがうまくいくことがわかります。5.12.0 ソースツリー、5.12.1ではありません:

--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 12
-SUBLEVEL = 0
+SUBLEVEL = 2
 EXTRAVERSION =
 NAME = Frozen Wasteland

おすすめ記事