Failed to initialize NVML: Driver/library version mismatch

2024. 10. 14. 10:36·리눅스

오늘은 아무 생각 없이, 리눅스 서버에서 upgrade를 진행했다가 갑자기 GPU가 사용이 안 되는 현상이 벌어졌다.

`nvidia-smi`를 통해서 확인해보려했더니 아래와 같은 오류가 발생하였다. 

0. 오류 발생

Failed to initialize NVML: Driver/library version mismatch

다행히 검색해보니 다른 사람들도 종종 겪는 문제였고 쉽게 해결할 수 있었다.

1. 오류 확인

우선 내 증상이 다른 사람들과 동일한지 확인하기 위하여 나도 커널 로그를 확인하였다.

sudo dmesg | grep -i nvrm

그러자 나도 아래와 같이 버전 관련 오류가 발생했다는 것을 확인하였다.

 API mismatch: the client has the version 535.183.01, but
                 NVRM: this kernel module has the version 535.171.04.  Please
                 NVRM: make sure that this kernel module and all NVIDIA driver
                 NVRM: components have the same version.

이는 리눅스의 unattended-upgrade라는 것이 패키지를 자동 업데이트하면서 발생하는 버전오류라고 한다.

해결방안에 여러가지가 있었는데 가장 먼저 제시된 것은 역시나 재부팅. 

그런데 재부팅을 맘대로 하기가 그래서 우선은 다른 방법들을 먼저 시도해보고자 하였다. 아래는 내가 다른 글들을 보고 시도했던 방법이었다.

2. nvidia drive kernel 리스트 확인

lsmod | grep nvidia

위와 같이 여러개의 커널들이 로드되어 있는 것을 볼 수 있었고, 오류를 해결하려면 순서대로 unload 해줘야 한다고 했다.

순서는 `drm`->`modeset`->`uvm`->`nvidia`였다.

3. 모듈 unload

sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia_uvm
sudo rmmod nvidia

한번에 되면 좋았겠지만, 모듈이 사용 중이라는 오류가 발생하였다.

이를 해결하기 위해서는 nvidia관련 프로세스를 모두 kill 해주면 된다고 했다.

아래 목록을 통해서 실행중인 nvidia 프로세스를 확인한다. 

sudo lsof /dev/nvidia*

나는 위의 명령어로 확인된 모든 프로세스를 종료했음에도 계속 `rmmod`를 했을 때 모듈이 사용 중이라는 에러가 떴다. 

그래서 찾아보다가 gnome display manager이라는 gui를 담당하는 것을 중지한 다음 다시 unload를 진행하니 모두 정상적으로 진행됐다.

sudo systemctl stop gdm
sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia_uvm
sudo rmmod nvidia
sudo systemctl start gdm

이후 다시 `nvidia-smi`를 쳐보니 정상으로 돌아왔다~

요약

sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia_uvm
sudo rmmod nvidia

위 명령어를 순서대로 진행. 만약 오류 발생시 아래 명령어로 nvidia 관련 프로세스들을 모두 중지시킨 후 다시 시도.

sudo lsof /dev/nvidia*
kill -9 {PID}
sudo systemctl stop gdm(필요시)

정상적으로 나오는 것을 확인했으면 다시 gdm 켜주기

sudo systemctl start gdm

참조

 

[Linux] Failed to initialize NVML: Driver/library version mismatch 에러 해결

리눅스의 unattended-upgrade가 패키지를 자동 업데이트하면서 버전 간 차이로 발생하는 에러 커널 로그 확인 sudo dmesg | grep -i nvrm 해결방안 #1 재부팅 해결방안 #2 nvidia 관련 모듈 재가동 1. 로딩되어

aeong-dev.tistory.com

 

 

[Linux 에러해결] Failed to initialize NVML: Driver/library version mismatch 에러 해결하기

nvidia-smi가 갑자기 안되는 이유

chaelin0722.github.io

 

728x90

'리눅스' 카테고리의 다른 글

terminals database is inaccessible  (0) 2024.11.07
Linux google-drive mount(google-drive-ocamlfuse)  (0) 2024.10.14
ssh 포트 변경  (0) 2024.09.24
sshfs를 이용한 다른 시스템 마운트  (0) 2024.09.24
oh my zsh + powerlevel10k  (0) 2024.09.13
'리눅스' 카테고리의 다른 글
  • terminals database is inaccessible
  • Linux google-drive mount(google-drive-ocamlfuse)
  • ssh 포트 변경
  • sshfs를 이용한 다른 시스템 마운트
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (481)
      • 알쓸신잡 (88)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Blog

    • 🏠 Home

    ✏️글쓰기
    💻 관리

    Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    BFS
    dp
    이것이취업을위한코딩테스트다
    그리디
    이분탐색
    이코테
    나동빈
    파이썬
    DFS
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
상단으로

티스토리툴바