
나는 표시된 지침을 따르고 있습니다.여기내 서버를 설정합니다. 컴퓨터에 다운로드한 패치를 적용해야 한다고 나와 있습니다. 내 질문은 기사에 다음 명령을 사용하라는 것입니다.
/usr/src/linux # patch -p1 < file.diff //note I replace file.diff w/ routes-2.6.36.16.diff
이는 다음을 반환합니다:
-bash: /usr/src/linux: No such file or directory
/linux #
나는 그것이 실제 리눅스 커널 버전/디렉터리로 대체되어야 한다고 가정합니다 . 다음 명령을 사용하여 이것을 시도했습니다.
/usr/src/linux-headers-2.6.35.22 patch -p1 < file.diff
이는 동일하게 반환됩니다. /usr/src의 내용을 보면 디렉토리가 두 개밖에 없으며 linux-headers-2.6.35.22
커널 linux-headers-2.6.35.22-generic-pae
에 패치를 적용하는 올바른 방법에 대한 지침이 필요합니다.
편집하다
내가 실행 /usr/src/linux-headers-2.6.35.22/ patch -p1 file.diff
하면 -bash: /usr/src/linux-headers-2.6.35.22: is a directory
. 여기에서 패치해야 하는 특정 파일을 찾는 방법을 알아야 합니다...
답변1
소스를 다운로드해야 합니다. apt-src를 통해 이 작업을 수행할 수 있지만 저는 (개인적으로) 다음에서 최신 정보를 가져오겠습니다.kernel.org, 압축을 풀고 패치한 다음(데스크톱과 같은 로컬 경로를 사용하면 /usr/src에 전혀 숨길 필요가 없습니다!) 다음을 따릅니다."구식 방식"컴파일 지침.
일부 패치는 특정 커널 버전(포인트 릴리스 포함)에만 적용되므로 컴파일하는 데 20~30분을 낭비하기 전에 패치가 소스 버전에서 작동하는지 확인하세요.
하지만 구체적인 문제는 패치를 적용하려는 디렉터리에 있어야 한다는 것입니다. 귀하의 경우:
cd /usr/src/linux-headers-2.6.35.22/
patch -p1 < /path/to/file.diff
분명히 패치 경로를 변경하십시오(또는 동일한 디렉토리에 고정하십시오). 소스 파일이 루트 소유인 경우 sudo
패치 명령 앞에 접두어를 붙이거나 sudo su
이 작업을 수행하는 동안 루트가 되도록 실행하십시오.
답변2
좌절감을 피하려면 일반적으로 Ubuntu 방식으로 이러한 작업을 수행해야 합니다. 공식 패키지를 사용하는 전체 지침은 여기에서 확인할 수 있습니다.
https://help.ubuntu.com/community/Kernel/Compile
이는 사용자 정의 커널을 시작하고 실행하기 위한 종속성 목록과 단계별 명령을 제공합니다.
해당 절차를 따르면 사용자 정의 커널이 포함된 제거 가능한 패키지가 생성되며, 이는 필요한 경우 나중에 공식 커널로 다시 전환할 수 있음을 의미합니다.
답변3
/usr/src/linux #
귀하가 따르는 지침은 명령의 일부로 입력하는 것이 아닌 명령줄 프롬프트를 보여줍니다 . 패치를 적용할 입력 명령은 patch
여기에서 시작하여 계속됩니다.