UbuntuにGeForceを入れてサスペンドできない場合の解決例


Ubuntu 18.04にGeForce GTX 1650 SUPERを導入し、nvidia-driver-440をインストールした。
その際に、起動やGPUの動作には問題なかったが、サスペンドとそこからの復帰ができなくなっていた。

解決法

まず、Ubuntu 18.04 LTSとNVIDIAドライバーの組み合わせでサスペンド・レジュームができるようにするの方法を踏襲する。

/etc/default/grubの書き換え

sudo gedit /etc/default/grubで開き、おそらく

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

となっているところを

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset nouveau.modeset=0"

と書き換える。

/etc/X11/xorg.confの作成

sudo gedit /etc/X11/xorg.confで開き、

Section "Device"
     Identifier     "Screen0"
     Driver         "nvidia"
     VendorName     "NVIDIA"
     BoardName      "自分のGPUの型番"
     Option         "NvAGP" "1"
 EndSection

を入力し、保存する。 "自分のGPUの型番"の部分は、"GeForce GTX 1650 SUPER""GeForce GTX 1050 Ti"のように書く。

/etc/modprobe.d/blacklist.confに追加

sudo gedit /etc/modprobe.d/blacklist.confで開き、最終行に

blacklist intel_agp

の一文を追加する。

/etc/modprobe.d/blacklist-nvidia-usb.confの作成

以上を変えるだけでもサスペンドはできるようになるが、自分の環境では復帰時のエラー(device failed to resume等)によって起動まで時間がかかるようになってしまった。
そこでこちらを参考に、ucsi_ccgというモジュールを無効にした。
sudo gedit /etc/modprobe.d/blacklist-nvidia-usb.confで開き、

blacklist ucsi_ccg

を入力し、保存する。
このモジュールはGPUのType Cコントローラーらしいので、Type C出力がないGPUだとバグるのかもしれない(よくわからない)。

再起動

以上の変更のあと、rebootで再起動する。
そうすると通常通りのサスペンド→復帰ができるようになる。