커널 패치 프롬프트 "역방향(또는 이전에 적용된) 패치가 감지되었습니다. -R을 가정하시겠습니까? [n]"

커널 패치 프롬프트 "역방향(또는 이전에 적용된) 패치가 감지되었습니다. -R을 가정하시겠습니까? [n]"

커널 패치를 시도한 것은 이번이 처음입니다. 다음 내용에 오류가 있는지, 올바르게 수행하고 있는지 잘 모르겠습니다. 하지만 모든 튜토리얼과 비디오에는 .patch 확장 파일이 표시되지만 .xz 파일이 있습니다.

다음에서 안정 버전 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

관련 정보