カーネルパッチを試したのは今回が初めてです。次の内容にエラーがあるのか、正しく実行しているのかわかりません。しかし、すべてのチュートリアルとビデオには.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行目をSUBLEVEL
0から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