Nvidia独自のドライバを使用して仮想ディスプレイを追加する方法

Nvidia独自のドライバを使用して仮想ディスプレイを追加する方法

Nvidia独自のドライバを使用して仮想モニタを追加するには?以前は、このソリューションにIntelカードを使用していましたが、うまく機能しました。Xorgに仮想出力を追加する

それでは、Intelカードではなく新しいハードウェアに切り替えたいと思います。言及されたソリューションVNC-Serverを仮想X11モニタとして使用して画面を拡張私の場合は動作しません。出力にパターンを追加しようとするとxrandrエラーが発生します。

xrandr --newmode test 173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
xrandr --addmode "DP-1" test
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  18 (RRAddOutputMode)
  Serial number of failed request:  41
  Current serial number in output stream:  42

基本的な情報:

  • ハードウェア:個々のグラフィックで構成されたHP ZBook 15 G3(Optimusは機能しません!)
  • ソフトウェア:Debian 10.0.2、カーネル:4.19.0、Nvidiaドライバモジュール:xser​​ver-xorg-video-nvidia-legacy-390xx

なぜこれを行うのか尋ねたら、私はイーサネットを介して仮想画面を別のコンピュータに転送するソフトウェアを使用して、2台のラップトップのデュアルモニタを実装します。 (https://github.com/B-LechCode/sooScreenShare)

アップデート:私のコンピュータで動作する提案ソリューションがありますが、1920x1200などの新しいモードを追加できません。誰かがアイデアを持っていますか?

答え1

完全に任意の解像度を選択する機能は不足していますが、私に合ったソリューションがあります。明らかに、これは独自のnvidiaドライバでのみ機能します。オープンソースのnouveauドライバは、他のグラフィックカードドライバとは異なる動作をします。

短いバージョンは、ConnectedMonitornvidia xorg.conf画面オプションを使用して、デフォルトのモニタに加えて追加の出力を有効にすることです。

長いバージョンは次のとおりです。

xrandr --queryデフォルト出力の名前と仮想画面に予約されている未接続出力の名前を取得するには、実行します。たとえば、次のような結果が表示されます。

ベースに接続されたLVDS-0 1440x900+0+0(通常の左右のx軸とy軸)331mm x 207mm
   [各種監視モード省略]
DP-0の接続が切断されました(通常の左右のx軸とy軸)
DP-1接続が切断されました(通常の左右のx軸とy軸)
DP-2接続が切断されました(通常の左右のx軸とy軸)
DP-3接続が切断されました(通常の左右のx軸とy軸)
DP-4が接続されていない場合(通常の左右のx軸とy軸)
DP-5接続が切断されました(通常の左右のx軸とy軸)

だから私が知っている限り、ノートパソコンの画面をLVDS-0使用できます。あなたのように私も仮想画面を選択します。DP-0DP-5DP-1

xorg.conf画面の設定と使用する画面のデバイスセクションを追加する必要があります。 xorgが見つけることができるどこでも見つけることができます。私に私のものを入れました/etc/X11/xorg.conf.d/30-virtscreen.conf。このファイルの最小設定は次のとおりです。

「デバイス」セクション
    識別子 "nvidiagpu"
    ドライバー「NVIDIA」
終わり

「画面」セクション
    識別子 "nvidiascreen"
    デバイス "nvidiagpu"
    オプション「ConnectedMonitor」「LVDS-0、DP-1」
終わり

これは、ドライバがDP-1接続されているモニタを検出できない場合でも出力を使用するように指示します。ノートブックモニター(または物理物理モニター)を使用するには、そのモニターもリストする必要があります。仮想出力のみがリストされている場合、ドライバーはいいえ接続されているモニターが検出されても、他の出力をアクティブにします。

ここでXを再起動してください。 2つのアクティビティモニタxrandrと他のディスプレイクエリプログラムが表示されます。

マイシステムで新しく有効になった仮想出力には、いくつかの解像度を使用できます。そのうちの1つを選択できます(例:via xrandr --output DP-1 --mode 1600x900)、仮想出力のサイズが自動的に調整されます。ただし、新しいモードを追加することはできません(たとえば、1920×1080の解像度が必要な場合など)。それでも「無効なパラメータ属性」エラーが発生します。幸いなことに、私は利用可能なパターンで開いています。運が良ければ、いくつかの便利なプリセットも得られます。

答え2

https://askubuntu.com/a/803053/1568608解決するASCIIが好き問題がありますが、解像度を1920x1080に変更できません(asciiphilの回答で無効なパラメータ属性の問題)。この問題を解決するには、「画面」セクションに2番目のオプションを追加してください。

Section "Screen"
    Identifier  "nvidiascreen"
    Device      "nvidiagpu"
    Option      "ConnectedMonitor" "LVDS-0,DP-1"
    Option      "ModeValidation" "NoDFPNativeResolutionCheck,NoVirtualSizeCheck,NoMaxPClkCheck,NoHorizSyncCheck,NoVertRefreshCheck,NoWidthAlignmentCheck"
EndSection

答え3

仮想ディスプレイを接続するには、次を使用します。

Option         "ConnectedMonitor" "HDMI-0"

xorg.confの「Screen」セクションで、HDMI-0をグラフィックカードが仮想ディスプレイに使用するディスプレイポートに置き換えます。次の行を追加すると、最新のNVIDIAグラフィックカードでサポートされていない解像度を設定するために必要なすべてのチェックが無効になります。 「画面」セクションで:

Option         "UseEDIDFreqs" "False"
Option         "ModeValidation" "NoDFPNativeResolutionCheck,NoVirtualSizeCheck,NoMaxPClkCheck,NoHorizSyncCheck,NoVertRefreshCheck,NoWidthAlignmentCheck AllowNonEdidModes"

その後、cvtの結果を使用してパターンを追加すると、すべての準備が完了します!それでも解像度を設定できない場合は、モニターセクションにModeLineを追加し、ディスプレイセクションにモードを追加してロードできます。より完全な例:

Section "Monitor"
Modeline "2560x1440_120.00" <cvt output stuff>
EndSection

そして

Section "Screen"
    SubSection     "Display"
        Depth       24
        Modes      "2560x1440_120.00"
    EndSubSection
    Option         "ConnectedMonitor" "HDMI-0"
    Option         "UseEDIDFreqs" "False"
    Option         "ModeValidation" "NoDFPNativeResolutionCheck,NoVirtualSizeCheck,NoMaxPClkCheck,NoHorizSyncCheck,NoVertRefreshCheck,NoWidthAlignmentCheck AllowNonEdidModes"
EndSection

これらのオプションは、実行によって生成される設定ファイルに追加する必要があり、nvidia-xconfig完全または機能的ではありませんxorg.conf

関連情報