현재 Linux에 설치된 커널에 패치 파일을 적용하는 방법은 무엇입니까?

현재 Linux에 설치된 커널에 패치 파일을 적용하는 방법은 무엇입니까?

현재 Ubuntu 설치에 패치 파일을 적용하고 싶습니다(패치 파일 예시). Linux 커널에 패치 파일을 올바르게 적용하는 프로세스는 무엇입니까?

디스크 이미지 파일에 패치를 적용하고 USB에 플래시한 후 새 Linux 복사본을 설치하는 전체 과정을 거쳐야 합니까? 현재 설치를 패치할 수 있나요? 아니면 디스크 이미지를 패치한 다음 이를 사용하여 현재 설치를 업그레이드할 수 있습니까?

내가 시도한 것:

  1. 내가 실행 중인 커널 버전을 확인하세요.

    $ uname -srm
    Linux 5.11.0-25-generic x86_64
    
  2. 내 커널 디렉토리로 이동합니다(제 생각에는):

    cd /lib/modules/5.11.0-25-generic/kernel
    
  3. 패치 파일 적용

    patch -p1 < ~/my-patch-file.patch
    

그런데 패치가 적용되지 않았습니다. 출력은 다음과 같습니다

can't find file to patch at input line 23
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
...
File to patch:

이를 수행하는 올바른 방법은 무엇입니까?

참고: 이 질문은 임의의 파일을 패치하는 방법과 동일하지 않습니다. 나는 무엇을 해야할지 압니다. 문제는 특히 패치 방법에 관한 것입니다.현재 설치된 커널.

답변1

패치는 바이너리 모듈이 아닌 소스 파일에 적용됩니다.

적절한 커널 소스를 설치하고 패치를 적용한 다음 다시 빌드해야 합니다. 작동하는 경우 다시 빌드된 모듈을 /lib/modules 아래 아무 곳에나 복사하고 재부팅할 수 있습니다.

커널 소스 코드는 일반적으로 /usr/src에 저장됩니다.

관련 정보