この記事は公開から3年以上経過しています。
linuxのnvidiaプロプライエタリドライバ(nouveauではない)を使用している環境で、ディスプレイ交換後などにレゾリューションやリフレッシュレートがレンジオーバーしてしまいグラフィカルログイン画面を表示できなくなってしまったときの解決方法。
このような症状が発生することは稀かと思いますが、不意なディスプレイ故障でディスプレイを入れ替えたときに遭遇したので備忘録。
解決方法
下記例は私のメインマシンのarchlinuxの場合です。コンフィグファイルの場所や設定内容などは、お使いの環境に応じて適宜読み替えて対応してください。
-
linuxマシンを起動したら
ctrl
+alt
+F2
などで仮想コンソールに切り替え、CUIログインする。
(sshなどでリモートログインできればそれでもOK) -
以下のコマンドで
xx-nvidia.conf
をバックアップする(xx
の部分は環境によって異なる可能性あり)。$ cd /etc/X11/xorg.conf.d $ ls 00-keyboard.conf 20-nvidia.conf $ sudo cp 20-nvidia.conf 20-nvidia.conf.bak20210314
-
以下のコマンドで
xx-nvidia.conf
をテキストエディタで開く。$ sudo vim 20-nvidia.conf
-
Monitor
セクションのHorizSync
,VertRefresh
、Screen
セクションのViewPort/Modes
など、ディスプレイのレゾリューションやリフレッシュレートに関係がありそうな設定を#
でコメントアウトする。コメントアウト例
Section "Monitor" Identifier "Monitor0" VendorName "Unknown" ModelName "LG Electronics 31MU97" #HorizSync 30.0 - 135.0 #VertRefresh 56.0 - 61.0 Option "DPMS" EndSection Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "Quadro P1000" EndSection Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "Stereo" "0" Option "nvidiaXineramaInfoOrder" "DFP-2" #Option "metamodes" "4096x2160 +0+0; nvidia-auto-select +0+0" Option "SLI" "Off" Option "MultiGPU" "Off" Option "BaseMosaic" "off" SubSection "Display" ViewPort 0 0 Depth 24 #Modes "4096x2160" EndSubSection EndSection
-
エディタの編集内容を保存したら、コンソールから
reboot
コマンド等でlinuxを再起動する。
(XkbOptions
オプションのterminate:ctrl_alt_bksp
が有効になっているのであれば、ctrl
+alt
+F7
でグラフィカルログインに戻りctrl
+alt
+backspace
でX.Orgを終了&再起動でもOK)
X.Orgが起動したら通常どおりログインしてnvidia-settings
で適宜ドライバの再設定を行ってください。
参考ウェブサイトなど
- archlinux wiki
NVIDIA
以上です。