一時停止後、nvidia(排他)出力は再開されません。

一時停止後、nvidia(排他)出力は再開されません。

一時停止+再開した後、Manjaroの排他的なドライバを使用して、My NVidiaカード(3050 ti)に接続されているモニターに、約95%の時間、継続的に「信号なし」というメッセージが表示されます。すべての標準トリック(BIOSアップデート、nvidia-drm.modesetの切り替え、さまざまな他のカーネルフラグ、さまざまなXOrgオプション、NVidiaのカスタムsystemd一時停止サービスの使用など)。

私はマルチシート設定で2番目のシートの一部としてNVidiaカードを使用しています(loginctlとlightdmを使用)。これは、2番目のシートが仮想ターミナル切り替えを許可せず、NVidiaカスタムシステム停止サービスが仮想ターミナル切り替えを使用してXOrgを再初期化するようにだまされているためです。

(数時間後に解決策を見つけました。他の人の悩みを減らし、難しい解決策を見つけるためにこの記事を投稿します。)

答え1

一時停止中に再開した後、xrandr --autoXorg teは出力を再初期化するように強制するために使用できます。場合によっては、まず作業を実行する必要があるようですxrandr --off。これを自動化するのが難しいのは、ログインしたユーザーのXauthorityファイルがどこにあるかを知ることです。 Lightdm にはアクセスを提供する独自の権限ファイルがあり、標準の場所にあります。そして2番目の桁は時々DISPLAY=:0、時にはそうではありませんDISPLAY=:1

次のスクリプトを変更して正しい出力デバイスを使用し、次のように保存できます/usr/lib/systemd/system-sleep/resume-seat1

#!/bin/sh

OUTPUT=HDMI-0

for DISPLAY in :0 :1 ; do
  export DISPLAY
  export XAUTHORITY=/run/lightdm/root/$DISPLAY

  case "$1" in
    pre)
      xrandr --output $OUTPUT --off
      ;;
    post)
      xrandr --output $OUTPUT --auto
      ;;
  esac
done

スクリプトを実行可能にする必要があります。

chmod a+x /usr/lib/systemd/system-sleep/resume-seat1

関連情報