PIC 모드를 지원하기 위해 커널 패치 적용

PIC 모드를 지원하기 위해 커널 패치 적용

Kali Linux에서 TP Link AC 600용 드라이버를 컴파일하려고 하면 오류가 발생합니다 amd64 4.7.0 gcc 5.4.1 Debian 5.4.1-3.

오류는 "오류 코드 모델 커널이 PIC 모드를 지원하지 않습니다"입니다.

약간의 평탄한 발판 끝에 누군가 비슷한 문제가 있고 누군가가 패치를 게시했다는 사실을 알게되었습니다.

패치는 어떻게, 어디에 적용되나요?

여기 또 다른 링크가 있습니다:커널을 컴파일할 수 없습니다: 오류, 커널은 PIC 모드를 지원하지 않습니다.

답변1

Ubuntu 및 Intel 드라이버에 관한 한 Intel은 드라이버의 Ubuntu LTS 버전만 테스트했습니다(Todd Fujinaka의 답변 보기). 따라서 Ubuntu를 16.10에서 16.04.1 LTS로 다운그레이드해야 합니다(유지하면서 다시 설치/home).

다른 모든 Debian 기반 배포판(예: Kali)에서도 마찬가지입니다. 드라이버 공급업체에서 명시적으로 지원하는 버전으로 다운그레이드(예: 재설치)해야 합니다. 이전 버전의 gcc PIC.

이것은 유쾌한 답변은 아닐 수도 있지만 기술적으로는 정확합니다. 커널 개발자가 아닌 경우 할 수 있는 일은 커널 메일링 리스트에 가서 개발자에게 괜찮은지 매우 정중하게 물어보는 것뿐입니다. 드라이버 코드를 처리하십시오. 때로는 이것이 효과가 있지만 인내심을 가지십시오.

답변2

패치를 적용하는 과정은 매우 간단합니다. 다음과 같은 커널 디렉터리와 패치 파일이 있다고 가정합니다.

- /usr/src/kernels (or where you have the kernel directory)
---- /user/src/kernels/kernel_directory
---- /user/src/kernels/patch_file

패치 형식(일반적으로 .gz, .bz2 또는 .xz)에 따라 다른 명령을 사용하여 추출해야 합니다. 들어가서 kernel_directory다음 명령을 실행 해야 합니다 .

gzip -cd ../patch_file | patch -p1- 이것은 gzip 패치입니다.

bzip2 -cd ../patch_file | patch -p1- 이것은 bzip 패치입니다.

xz -cd ../patch_file | patch -p1- 이것은 xz 패치입니다.

/usr/src/kernels/patch_file패치 파일을 커널에 적용합니다 /usr/src/kernels/kernel_directory. 먼저 해당 위치로 이동하여 해당 명령을 실행해야 합니다 /usr/src/kernels/kernel_directory.

쉽게 복원하기 위해 백업의 커널 복사본을 사용하여 이 절차를 수행할 수 있도록 커널 디렉터리의 복사본을 만드는 것을 고려하십시오.

참고: 이는 패치를 적용하는 과정일 뿐입니다. 커널에 올바른 패치를 사용하고 있다고 가정하면 오류가 발생하지 않을 것입니다. 공식 커널 패치 파일과 같은 패치 파일이 필요합니다.

관련 정보