症状の概要

GNOME-Shell on Xorgの画面ロック及び自動画面ロック機能が変な動きをします。画面ロックは、右上端をクリックして鍵マークを押すとでき、自動画面ロックは【設定】→【プライバシー】→【自動画面ロック】をOFFにしていなければ、設定時間次第ですが、マウスキーボードを動かさず放っておくと真っ暗(ブランク)されます。

詳細

この画面ロックの際に真っ暗になってマウスやキーボードに触らければ真っ暗なままなはずなんですが、真っ暗になったあとモニタがスリープになりましたと表示された後何故か復帰してロック画面が表示され、そしてまた真っ黒画面になりロック画面に戻ると数十秒ごとに繰り返すのです。明るくなったり暗くなったりですごくうざい… しかし、これが色々試しても直らないんですよねー。

ハードウェア環境

モニター1がHDMI、モニター2がDP→DVI-D接続です。GPUはCPU内臓のAPUでAMD Ryzen 5 2400GのものであるRadeon Vega 11 Graphicsです。

試したこと

この問題について試行錯誤したことを以下に記載します。

  • WindowsではOK。
  • シングルモニタではモニタ1、モニタ2両方共ダメ。
  • GNOMEの通知が来ている?→設定でアプリ全部通知を切ってもダメ。
  • mariadb、httpdなどサービスを止めてみては?→止めてもダメ。
  • カーネルバージョンは?→古いものを試してもダメ。
  • マザボのCMOSクリアは?→効果なし

解決方法

解決方法は2通り。ただし、私のCPUではダメなものも。

amdgpu.dc=0

Rx460 monitors won't stay asleepで書いてあるとおり、カーネルパラメーターに "amdgpu.dc=0"を追加です。起動時にgrub2で試してみてうまくいくなら、/etc/default/grubに

GRUB_CMDLINE_LINUX_DEFAULT="amdgpu.dc=0"

を追加してください。そして、grub2の設定を書き出すように

sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

します。これで再起動しても有効になります。ただし、amdgpu.dc=0はグラボの性能さげちゃうかと。そしてなによりRyzen 2400Gではamdgpu.dcと表示された後起動しないです。

xset s off -dpms

もうひとつは、XorgのDPMS機能をオフにします。GNOMEと喧嘩でもしてるんですかね…よくわかりませんが、端末アプリから

xset s off -dpms

すると何故か画面ロックの後真っ黒画面を維持してくれます。DPMSって自動でモニタの画面を切ってくれる機能のはずなんですが… 再起動するとまた戻るので、xset.desktopファイルを~/.config/autostartへ以下の内容で配置します。

[Desktop Entry]
Name=Xset-off
GenericName=Xset OFF DPMS
Comment=Xset OFF DPMS for Screen Lock
Exec=xset s off -dpms
Terminal=false
Type=Application

これでGNOME起動時にxsetが有効になります。

感想

この現象の一番の原因は上記でも書いたリンクとの共通点であるredditDP→DVI-D接続のせいかなと思ってますが、どうなんでしょうねえ。モニタを買い換えないとわかりませんが、2400GのVega11のせいだったら悲しいなあ。ググってもそれらしいのは見つからないのですが、手っ取り早いのはグラボ買い替えですかね?GTX 1050TiとかならDVI-D端子のものもありますし… 実際の作業時の問題ではないので放置でいいかなとも思ってますが。ずっとこだわっててうまく対処方法が見つかってうれしいですが、問題を気にせず頭を切り替えていったほうが良かったようなきもします…