Failed to start NVIDIA persistence daemon
Failed to start NVIDIA persistence daemon に対する解決策の記事です。
検索しても英語でふんわりとした記事が無かったので、日本語で学部2年生あたりでも分かるように書きます。
環境
・Ubuntu18.04
・CPU core-i7
・GPU RTX2080 super
直し方(結論)
GPUドライバーのバグです。
①リカバリーモードでUbuntuに入る
②NVIDIAドライバーと関連品の一括削除
sudo apt purge nvidia-*
③nouveauとnvidiafbをブラックリスト登録
nano /etc/modprobe.d/blacklist.conf
ファイル内に 【blacklist nvidiafb】 と追記。
nano /etc/modprobe.d/blacklist-nouveau.conf
ファイル内に 【blacklist nouveau】 と追記。
④再起動
⑤CPUのみでUbuntuが起動し、普通に画面が動く
⑥NVIDIA driverの入れ直し
sudo apt install nvidia-driver-470
⑤再起動
⑥全て復帰!
以下、バグに遭遇した過程を日記程度に忘れないよう記載しておく。
ほぼ自分用&身内用です、駄文失礼。
第一話 Ubuntu、死す。
いつもの昼下がり。プログラミングをしていました。
ちょっと休憩して何気なく「最近apt updateしてないな〜」と思ったので、
sudo apt update
sudo apt upgrade
をしました。(脳死)
何が更新されたかは細かく見てませんでした。(バカ)
多分NVIDIAドライバー辺りが更新されたのかな。
約10分後、色々タブを開いて作業していると突然PCがフリーズ。
グラフィック系に重い処理をさせ過ぎたのかな。
月に1~2回程度あるので、特に驚くこともなくリセットボタンを押して再起動。(物理)
そう、ここで冥界の門が開いた。
第2話 起動しないUbuntu
PCが再起動したはいいものの、何故かUbuntuが起動しない。
こんな感じ↓の黒い画面で固まってしまう。(写真は拾い物です)
今回に限らず、Ubuntuやコンパイルで困った時はエラーメッセージでググりましょう。
(よく研究室の後輩君が困ったらスクショを送ってくれますが、まず自分でエラーメッセージをググりましょう)
(人に聞くのも大事だけどね。)
第3話 ググった先は専門英語。
すると英語でぼんやりとした記事が沢山出てきた。
話の流れを汲むに、どうやらGPUドライバーを入れ直すと直るらしい。(7年前の話ですがセンター英語196点でした)
しかし具体的なコマンドが書いてない。圧倒的初心者殺し。
そこで本記事は実際に私が使ったLinuxコマンドを全て書き出す。
パソコンをリセットボタンで強制的に切ってから、再起動の初期タイミングでキーボードの上下キーをガチャガチャしておくと、下のような紫色の画面で止まります。(拾い物)
上から二番目の項目"advanced options for Ubuntu"を選択。
すると、↓こうなります。
上から二番目のリカバリーモードで起動します。
すると、更に紫色の画面が来ます↓
ここでrootを選択してコマンドラインに入ります。
管理者権限なので、ここから少しの間sudoは不要です。
apt purge nvidia*
でnvidia関連を一気にアンインストールします。
もしドライバー以外にもnvidia系を使っている人は、巻き込んで一緒に消えちゃう可能性があるのでご注意!!
もしかしたらapt purge nvidia-driver*
の方が削除するソフトをGPUドライバーに限定できるから良いかも…(未検証)
更に、modprobeのブラックリストに2種類のソフトウェアを書き加えておきます。
(modprobeはUbuntu起動時に色々なソフトを自動起動してくれる便利なシステムなのですが、このブラックリストに入っていると起動しません)
(バグのあるソフトや怪しい挙動をするソフトはblacklistに登録しておきましょう)
nano /etc/modprobe.d/blacklist.conf
ファイル内に 【blacklist nvidiafb】 と追記。
nano /etc/modprobe.d/blacklist-nouveau.conf
ファイル内に 【blacklist nouveau】 と追記。
ここまで来たら、コマンドでreboot
と打って再起動。
第4話 見慣れた画面
なんと再起動したら、いつものUbuntu画面が映りました。
GPUドライバーを消したためGPUは動きません。モニターをGPUに繋いでる人はCPUからのHDMI出力を試してみてね
ここまで至ればあとはこっちのもの。
削除したGPUドライバーを再インストールしましょう。
sudo apt install nvidia-driver-470
そして再起動。
すると。マルチディスプレイ全てが点灯し、いつものUbuntuが帰ってきました!
第5話 感想と愚痴
復帰してみて、aptに若干依存関係のエラーが見れました。
一番危惧していたROS環境周りは綺麗に無事で、開発中のものも変更無くそのまま動きました。良かった…
NVIDiAドライバーはなんか不安定で、aptで入れても上手く動かず、OSを入れ直した経験があります。
マジで頻発します。
NVIDIA許すまじ。
そもそもRTX2080 superが若干珍しいGPUのためか、ドライバーのサポートが薄い気がします。
皆さんはより一般的なRTX2080(無印)や3000系列を買いましょうね。
質問やミス指摘など、ツイッターのDMに頂けると反応早いです。
Qiitaのコメント欄は気づかない事が多いので。