vmware 모듈을 컴파일하려면 gcc 버전을 선택하세요.

vmware 모듈을 컴파일하려면 gcc 버전을 선택하세요.

4.12.8저는 Ubuntu 17.04를 사용하고 있으며 이 도구 ukuu(Ubuntu 커널 업데이트 유틸리티) 를 사용하기 위해 커널 버전을 수동으로 업그레이드했습니다 .

실행하려고 하면(이미 설치되어 있음) vmware모듈을 컴파일할 경로를 제공하라는 메시지가 표시됩니다.gcc-7.1vmware

여기에 이미지 설명을 입력하세요.

이전 커널 버전의 모듈을 동일한 시스템에 아무런 문제 없이 설치했기 vmware때문에 왜 이 질문을 받는지 이해할 수 없습니다 .vmware

vmware몇 가지 연구 끝에 나는 그 모듈이 현재 커널이 컴파일되는 것과 동일한 버전을 사용하여 컴파일된다는 것을 발견했습니다 . 이 커널 버전을 수동으로 설치했기 때문에 gcc내 컴퓨터에는 해당 버전이 없습니다.gcc-7.1

내 질문은 (너무 긴 연설을 하게 되어 죄송합니다.): 어떻게 vmware다른 gcc 버전이 해당 모듈을 컴파일하도록 강제할 수 있습니까?

답변1

짧은 답변: 당신은해야하지.

긴 대답:

이는 VMware가 아무 이유 없이 특정 버전의 GCC에 집착한다는 의미는 아닙니다. 커널 자체에 사용된 GCC가 아닌 다른 GCC를 사용하여 커널 모듈을 컴파일하는 것은 매우 현명하지 않습니다. 두 gcc 버전 간에 ABI 변경 사항이 있는 경우 시스템이 손상되고 충돌이 발생할 수 있습니다.

VMware가 GCC 버전으로 모듈을 컴파일하도록 설득하면 커널은 해당 모듈 로드를 거부합니다. 그런 다음 모듈을 이진 편집하여 GCC 서명을 올바른 서명으로 바꿔야 합니다.

하지만 전체적으로 위험을 감수할 가치가 있나요? GCC 7.1을 다운로드/컴파일하거나 현재 GCC 버전으로 커널을 다시 컴파일하는 것이 좋습니다.

답변2

귀하의 질문에 대한 답변이므로 내 의견을 답변으로 추가했습니다.

필요하다면 tarball을 다운로드하고 소스에서 컴파일할 수 있어야 한다고 생각합니다. 압축된 패키지는 다음 위치에 있습니다.https://ftp.gnu.org/gnu/gcc/gcc-7.1.0/

tarball을 다운로드하고 일반적인 ./configure,, 를 실행하십시오 make.make install

관련 정보