Nvidia製GPUを搭載した一部の弊社PCにおいて、グラフィックドライバーのアップデート後にGUIが表示できない症状が発生することが確認されております。
上記はNvidiaグラフィックドライバーに起因する症状のため、グラフィックドライバーをダウングレードすることによって解消することが可能です。
本稿では、CentOS 7の場合を例にとって、CUIでのグラフィックドライバーのダウングレード方法および、SSHを用いたダウングレード方法について解説いたします。
CUIでのNvidiaグラフィックドライバーのダウングレード方法
(1)
CentOSの場合、GUIで起動するタイミングでESCキーを押していただくことでGrub選択画面に移行しますので、「E」キーを押していただき、linuxefi
から始まる行に systemd.unit=multi-user.target
を追加したのちに、Ctrl+Xキーを押して起動することで、コンソールログイン(CUIでの起動)が可能です。
コンソールが表示されましたら、root権限のあるユーザーとしてログインします。
(2)
インストールされているグラフィックドライバーをアンインストールします。yum remove nvidia-driver-latest-dkms
(3)
グラフィックドライバーをダウンロードします。
(下記はバージョン510.108.03にダウングレードする場合の例となります。)wget https://us.download.nvidia.com/XFree86/Linux-x86_64/510.108.03/NVIDIA-Linux-x86_64-510.108.03.run
(4)
nouveauを抜いた起動イメージを生成します。
(Nvidiaドライバーが見つからないという旨のエラーが出ることがございますが、起動イメージの作成に支障はございません。)mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
dracut --omit-drivers nouveau /boot/initramfs-$(uname -r).img $(uname -r)
(5)
nouveauがロードされないようにブラックリストに登録します。vi /etc/modprobe.d/modprobe.conf
vi /etc/modprobe.d/nouveau_blacklist.conf
viが起動しますので、aキーでinsertモードに切り替え、各ファイルにblacklist nouveau
と入力した後、(shift+z)キーを2回押すことで保存して終了します。
(6)
ランレベルを3にした後、再起動します。systemctl set-default multi-user.target
reboot
(7)
再起動後、nouveauがロードされていないことを確認します。
入力後に何も表示されなければnouveauはロードされていません。lsmod | grep nouveau
(8)
インストーラを実行し、表示された指示に従います。
(下記はバージョン510.108.03にダウングレードする場合の例となります。)bash NVIDIA-Linux-x86_64-510.108.03.run
(9)
ドライバーのインストールが完了しましたら、ランレベルを5に変更した後、再起動します。systemctl set-default graphical.target
reboot
(10)
再起動後、端末を起動してnvidia-settings
を入力して起動します。
表示されたバージョン情報が510.108.03にダウングレードされていることを確認します。
SSHを用いたグラフィックドライバーのダウングレード方法
(1)
CentOSの場合、GUIで起動するタイミングでESCキーを押していただくことでGrub選択画面に移行しますので、「E」キーを押していただき、linuxefi
から始まる行に systemd.unit=multi-user.target
を追加したのちに、Ctrl+Xキーを押して起動することで、コンソールログイン(CUIでの起動)が可能です。
コンソールが表示されましたら、root権限のあるユーザーとしてログインします。
(2)
#ネットワークデバイスの一覧を確認します。nmcli con
表示された一覧を確認し、接続したいデバイスのネットワーク接続を有効にします。nmcli con up xxx (例:eno1)
(3)
接続されたIPアドレスを確認します。
SSHを用いて接続する際に必要になりますので、メモ等に控えておくと安心です。ip a
(4)
SSHがインストールされているか確認します。
openssh-serverがインストールされていればSSHは利用可能です。yum list installed | grep ssh
インストールされていない場合はインストールします。yum -y install openssh-server
(5)
別のPCより控えておいたIPアドレスを入力してSSH接続し、root権限のあるユーザーでログインします。
(6)
インストールされているグラフィックドライバーをアンインストールします。yum remove nvidia-driver-latest-dkms
(7)
グラフィックドライバーをダウンロードします。
(下記はバージョン510.108.03にダウングレードする場合の例となります。)wget https://us.download.nvidia.com/XFree86/Linux-x86_64/510.108.03/NVIDIA-Linux-x86_64-510.108.03.run
(8)
nouveauを抜いた起動イメージを生成します。
(Nvidiaドライバーが見つからないという旨のエラーが出ることがございますが、起動イメージの作成に支障はございません。)mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
dracut --omit-drivers nouveau /boot/initramfs-$(uname -r).img $(uname -r)
(9)
nouveauがロードされないようにブラックリストに登録します。vi /etc/modprobe.d/modprobe.conf
vi /etc/modprobe.d/nouveau_blacklist.conf
viが起動しますので、aキーでinsertモードに切り替え、各ファイルにblacklist nouveau
と入力した後、(shift+z)キーを2回押すことで保存して終了します。
(10)
ランレベルを3にした後、再起動します。systemctl set-default multi-user.target
reboot
(11)
再起動後、(1)~(5)の手順を再び行い、再度SSH接続をします。
(12)
nouveauがロードされていないことを確認します。
入力後に何も表示されなければnouveauはロードされていません。lsmod | grep nouveau
(13)
インストーラを実行し、表示された指示に従います。
(下記はバージョン510.108.03にダウングレードする場合の例となります。)bash NVIDIA-Linux-x86_64-510.108.03.run
(14)
ドライバーのインストールが完了しましたら、ランレベルを5に変更した後、再起動します。systemctl set-default graphical.target
reboot
(15)
再起動後、端末を起動してnvidia-settings
を入力して起動します。
表示されたバージョン情報が510.108.03にダウングレードされていることを確認します。