2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GPUドライバのインストールで少しレアな現象に悩まされた

Posted at

現象

nvidia-smiが突然使えなくなり、driverの再インストールを試みたが上手くいかなかった

結論

最新版のドライバで --no-cc-version-check が使えず、gccのversion mismatchが起こり続けていた。gccのバージョン上げてシンボリックリンクを正しくすると解決

環境

  • Ubuntu 22.04
  • GPUドライバ (NVIDIA-Linux-x86_64-535.146.02)

内容と推測

Ubuntu 22.04で使っていたGPUがいつの間にか反応しなくなり、nvidia-smiをしたところ反応せず。
GPUのドライバが使えない状況になっていた。

Ubuntuのセキュリティアップグレード等をしたかもしれないので、その影響かも

やったこと

GPUドライバのインストール

いつも通りNVIDIAのホームページからGPUドライバをダウンロード

  • 事前準備
    画面が消えるので、SSHでアクセスできるようにしている
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install openssh-server
ip address
  • nouveauの無効化
sudo vi /etc/modprobe.d/blacklist-nouveau.conf
  blacklist nouveau
  options nouveau modeset=0
sudo update-initramfs -u
  • gdmのサービス停止
sudo service gdm stop
  • ドライバインストール
sudo sh ./<ドライバ名> --dkms

gccのバージョンミスマッチが起きていたので、臨時対処でオプション追加

sudo sh ./<ドライバ名> --dkms --no-cc-version-check

これでもgccのバージョンをチェックされてインストールできない。。。

おとなしくgccのバージョンアップを実施

エラーログを見るとv12を要求されていたのでインストール

sudo apt-get update
sudo apt-get -y install gcc-12

これだけだと既にあるv11が使用されるため不十分

シンボリックリンクの確認と変更

シンボリックリンクを変えないと、ドライバインストール時に参照されるのがv11のままになってしまう
ここからは具体的な実行結果も

  • gccの確認
user@user:~$ ls /usr/bin/gcc* -l
user@user:/usr/bin$ ls -l gcc*
lrwxrwxrwx 1 root root  6  1月 14 23:08 gcc -> gcc-11
lrwxrwxrwx 1 root root 23  5月 13  2023 gcc-11 -> x86_64-linux-gnu-gcc-11
lrwxrwxrwx 1 root root 23  5月 13  2023 gcc-12 -> x86_64-linux-gnu-gcc-12
lrwxrwxrwx 1 root root  9  8月  5  2021 gcc-ar -> gcc-ar-11
lrwxrwxrwx 1 root root 26  5月 13  2023 gcc-ar-11 -> x86_64-linux-gnu-gcc-ar-11
lrwxrwxrwx 1 root root 26  5月 13  2023 gcc-ar-12 -> x86_64-linux-gnu-gcc-ar-12
lrwxrwxrwx 1 root root  9  8月  5  2021 gcc-nm -> gcc-nm-11
lrwxrwxrwx 1 root root 26  5月 13  2023 gcc-nm-11 -> x86_64-linux-gnu-gcc-nm-11
lrwxrwxrwx 1 root root 26  5月 13  2023 gcc-nm-12 -> x86_64-linux-gnu-gcc-nm-12
lrwxrwxrwx 1 root root 13  1月 14 23:10 gcc-ranlib -> gcc-ranlib-11
lrwxrwxrwx 1 root root 30  5月 13  2023 gcc-ranlib-11 -> x86_64-linux-gnu-gcc-ranlib-11
lrwxrwxrwx 1 root root 30  5月 13  2023 gcc-ranlib-12 -> x86_64-linux-gnu-gcc-ranlib-12

gcc-11に紐づけられていることが分かる

  • シンボリックリンクの変更と確認
user@user:~$ cd /usr/bin/
user@user:~$ sudo ln -nfs gcc-12 /usr/bin/gcc
user@user:~$ sudo ln -nfs gcc-ranlib-12 /usr/bin/gcc-ranlib

user@user:/usr/bin$ ls -l gcc*
lrwxrwxrwx 1 root root  6  1月 14 23:08 gcc -> gcc-12
lrwxrwxrwx 1 root root 23  5月 13  2023 gcc-11 -> x86_64-linux-gnu-gcc-11
lrwxrwxrwx 1 root root 23  5月 13  2023 gcc-12 -> x86_64-linux-gnu-gcc-12
lrwxrwxrwx 1 root root  9  8月  5  2021 gcc-ar -> gcc-ar-11
lrwxrwxrwx 1 root root 26  5月 13  2023 gcc-ar-11 -> x86_64-linux-gnu-gcc-ar-11
lrwxrwxrwx 1 root root 26  5月 13  2023 gcc-ar-12 -> x86_64-linux-gnu-gcc-ar-12
lrwxrwxrwx 1 root root  9  8月  5  2021 gcc-nm -> gcc-nm-11
lrwxrwxrwx 1 root root 26  5月 13  2023 gcc-nm-11 -> x86_64-linux-gnu-gcc-nm-11
lrwxrwxrwx 1 root root 26  5月 13  2023 gcc-nm-12 -> x86_64-linux-gnu-gcc-nm-12
lrwxrwxrwx 1 root root 13  1月 14 23:10 gcc-ranlib -> gcc-ranlib-12
lrwxrwxrwx 1 root root 30  5月 13  2023 gcc-ranlib-11 -> x86_64-linux-gnu-gcc-ranlib-11
lrwxrwxrwx 1 root root 30  5月 13  2023 gcc-ranlib-12 -> x86_64-linux-gnu-gcc-ranlib-12

とりあえずgccとgcc-ranlibをgcc-12にリンクしなおした。正しいかは分からないのでご注意を

GPUドライバインストール

sudo service gdm stop
sudo sh ./<ドライバ名> --dkms

インストールできた!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?