커널 업데이트 후 로그인 루프 3.13.0-143-generic Ubuntu 14.04

커널 업데이트 후 로그인 루프 3.13.0-143-generic Ubuntu 14.04

내일 내 책상에 있는 컴퓨터에 큰 문제가 있습니다.

Nvidia: 버전 매직 '3.13.0-143-genric SMP mod_unload modversions'는 '3.13.0.143-generic SMP mod_unload modversions retpoline'이어야 합니다.

여기에서도 비슷한 문제가 해결된 것으로 알고 있습니다(예:Nvidia 드라이버 설치 v 14.04 후 로그인할 수 없습니다)

하지만 내 시스템에서 작동하도록 명령을 변경하는 방법을 잘 모르겠습니다.

우분투 14.04가 있는데...


이전 커널을 로드하려고 했습니다. 잘 작동한다. GUI 구성 도구를 확인합니다. 업데이트 및 드라이버에서 Nvidia 드라이버를 최신 드라이버(384.111)로 업그레이드하도록 선택할 수 있습니다. 나는 그것을 시도했지만 모든 것이 여전히 작동합니다.

그런 다음 최신 커널로 돌아갔습니다.

이제 modinfo를 확인했는데 nvidia가 여기에 없었습니다. "sudo modprobe nvidia"를 시도했습니다(dkms에서는 nvidia 384.111이 설치되어 있음을 확인합니다).

답변: modprobe: 오류 'nvidia_384'를 삽입할 수 없습니다: Exec 형식 오류

/lib/modules/.../drivers/video/nivdia에서 nvidiafb.ko를 확인했는데 이 파일이 -rw-r--r-- 모드에 있습니다... exec 모드에 있어야 하는지 모르겠습니다?? ?

난 지금 막혔어

답변1

이는 최신 커널에 리트폴린 스펙터 완화 기능이 있기 때문입니다. 재고 배포 gcc의 패치 버전을 사용하여 nvidia.ko 커널 모듈을 다시 빌드해야 합니다.

버그 및 자세한 내용은 다음과 같습니다.https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1750937

답변2

나는 다음과 같이 문제를 해결했다.이 게시물버그 런치패드에서. 요약하자면:

다음 명령을 실행하고 해당 줄을 찾습니다 vermagic.

modinfo nvidia-384 -k 4.4.0-116-generic

아마 다음과 같이 말할 것입니다: vermagic: 4.4.0-116-generic SMP mod_unload modversions. 여기에는 리트폴린 문자열이 없습니다. DKMS를 사용하여 모듈을 제거하고 다시 빌드하면 이 문제를 해결할 수 있습니다.

sudo dkms remove nvidia-384/384.111 -k 4.4.0-116-generic
sudo dkms install nvidia-384/384.111 -k 4.4.0-116-generic

그 후 modinfo 명령이 표시됩니다vermagic: 4.4.0-116-generic SMP mod_unload modversions retpoline

사용자 정의 버전의 gcc를 사용하는 경우이 게시물또한 관련이 있습니다:

Ubuntu 버전의 gcc를 사용하는 경우 최신 커널을 얻었을 때 gcc가 업데이트되었을 수 있습니다. 리트폴린을 지원하는 데 필요한 gcc 변경 사항은 대부분의 활성 버전의 gcc로 백포트되어야 합니다. 그러나 gcc의 사용자 정의 버전을 설치한 경우 커널 모듈이 올바르게 빌드되지 않을 수 있습니다.

따라서 위 절차가 작동하지 않으면 사용 중인 gcc 버전을 확인해야 할 수도 있습니다.

관련 정보