HDMI +経由で外部モニタを再マップして、タッチスクリーンにリフレッシュレートを強制しますか?

HDMI +経由で外部モニタを再マップして、タッチスクリーンにリフレッシュレートを強制しますか?

私は勇気を失っているので、誰かが私を助けることができることを願っています。 F37 Silverblue + Wayland/X11を開発中です。システムには、独自のnVidiaドライバ(Nouveauではない)を含むnVidia Optimusがあります。

最近の設定を支援するために外部タッチスクリーンモニターを購入しました。モニターは、公称HDMIまたはUSB-Cを介して最大1080pの解像度をサポートします(ただし、USB-Cをサポートするビデオ出力がないため、HDMIを使用する必要がありました)。タッチスクリーン出力はUSBケーブルで送信され、電源は同じケーブルで受信されます。

====== HDMIによる強制固有(60Hz)リフレッシュレート======

このモニターで私が見つけた最も継続的な問題は、59または60Hz以外のリフレッシュレートで自己設定を拒否することです(たとえ最大120Hzをサポートすると報告されていますが、Gnome設定からこの設定を選択できます)。しかし、無駄です)。

私が試したときを除いて、これは私にとってうまくいきます。ノートブックディスプレイ(やはり1080p)を見ると、モニターの電源が切れて入力デバイスが見つからないというメッセージが表示されます。これで同じ問題が発生します。延長する120/100/50/30/29/etcHzに設定しようとすると。

問題は、ディスプレイをミラーリングしようとしているときに、Fedora / Gnome / 誰でもディスプレイを120Hzに戻そうとすることです(理論的には最大のサポート信号であるため)。これにより入力信号が拒否され、何も表示されません。あるいは、Gnomeが私の統合ノートブックモニタのリフレッシュレートを複製しようとするかもしれません。奇妙なことに、この周波数は60.02Hzに設定されており、60Hzより高いため、やはり拒否されます。

残念ながら、ミラーリング時に(60Hz)リフレッシュレートを設定できません。 Gnome設定にはそのようなオプションはありません。ディスプレイを拡張するために外部モニタを使用している場合にのみ、これを実行できます。

私が気づいたもう1つの奇妙なことは、外部タッチスクリーンモニターの解像度(1440 x 900など)を下げると、モニターを複製してタッチスクリーンとして使用できることです。しかし、もちろん、画像が不都合に見えます。

モニターがサポートしている信号に関係なく、HDMI出力を60Hzに強制/制限するなど、この問題をどのように診断しますか?

======タッチスクリーン出力の継続的な再マッピング======

2番目の問題はタッチスクリーンについてです。常に動作し(ディスプレイ自体に何も表示されない場合でもタッチ出力をエクスポート)、複数の指などを検出します。問題は、それが何とか私のラップトップの画面に常にマップされているということです。そのため、ノートパソコンのメインディスプレイに表示されるウィンドウなどをランダムにタッチしてドラッグできますが、外部タッチスクリーンディスプレイでは表示できません。そして、外部タッチスクリーンディスプレイに表示されるウィンドウはタッチの影響を受けません(つまり、メインディスプレイにマップされているため)。

Gnome設定で、外部タッチスクリーンモニタをどこに配置しても(ノートブック画面の左、右、上、下)プライマリまたはセカンダリモニタとして選択しても、タッチスクリーン出力はノートパソコンのモニタに引き続きマッピングされます。ノートパソコンのモニターをオフにした場合にのみ、画像は外部タッチスクリーンモニターにのみ表示され、タッチデバイスとして使用できます。ただし、モニターは使用しません。

もちろん、解像度を下げるとディスプレイを複製することができ、タッチ出力は画面に表示されているものと一致しますが、表示には適していません。

Fedora / Waylandがつぶやきを使ってタッチ入力を送信する場所を見つけましたが、xinputなどのつぶやきを設定する方法が見つかりませんでした。

私の考えでは、質問は次のとおりです。タッチスクリーンを適切なモニターに一貫して再マップするにはどうすればよいですか?

====== X11 ======

Xorgでログインすると、外部タッチスクリーンに何も出力できません。何も機能せず、解像度を下げたり、リフレッシュレートを下げたり設定したりすることもありません。タッチスクリーン指出力のみが機能します。それはおそらく別のデバイスだからでしょう。

これは次の出力ですxrandr

[username]@fedora37 ~]$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 382mm x 215mm
   1920x1080     60.02*+  60.01    59.97    59.96    59.93  
   1680x1050     59.95    59.88  
   1400x1050     59.98  
   1600x900      59.99    59.94    59.95    59.82  
   1280x1024     60.02  
   1400x900      59.96    59.88  
   1280x960      60.00  
   1440x810      60.00    59.97  
   1368x768      59.88    59.85  
   1280x800      59.99    59.97    59.81    59.91  
   1280x720      60.00    59.99    59.86    59.74  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   960x540       59.96    59.99    59.63    59.82  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   864x486       59.92    59.57  
   700x525       59.98  
   800x450       59.95    59.82  
   640x512       60.02  
   700x450       59.96    59.88  
   640x480       60.00    59.94  
   720x405       59.51    58.99  
   684x384       59.88    59.85  
   640x400       59.88    59.98  
   640x360       59.86    59.83    59.84    59.32  
   512x384       60.00  
   512x288       60.00    59.92  
   480x270       59.63    59.82  
   400x300       60.32    56.34  
   432x243       59.92    59.57  
   320x240       60.05  
   360x202       59.51    59.13  
   320x180       59.84    59.32  
DP-1-0 disconnected (normal left inverted right x axis y axis)
DP-1-1 disconnected (normal left inverted right x axis y axis)
HDMI-1-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 600mm x 340mm
   1920x1080     60.00 + 120.00*  100.00    60.00    59.94    50.00    29.97    25.00    23.98  
   1440x900      59.89  
   1400x1050     59.98  
   1280x1024     75.02    60.02  
   1280x960      60.00  
   1280x720      60.00    59.94    50.00  
   1024x768      75.03    70.07    60.00  
   800x600       75.00    72.19    60.32    56.25  
   640x480       75.00    72.81    59.94  
  1280x1024 (0x50) 108.000MHz +HSync +VSync
        h: width  1280 start 1328 end 1440 total 1688 skew    0 clock  63.98KHz
        v: height 1024 start 1025 end 1028 total 1066           clock  60.02Hz
  1280x960 (0x53) 108.000MHz +HSync +VSync
        h: width  1280 start 1376 end 1488 total 1800 skew    0 clock  60.00KHz
        v: height  960 start  961 end  964 total 1000           clock  60.00Hz
  1024x768 (0x61) 65.000MHz -HSync -VSync
        h: width  1024 start 1048 end 1184 total 1344 skew    0 clock  48.36KHz
        v: height  768 start  771 end  777 total  806           clock  60.00Hz
  800x600 (0x70) 40.000MHz +HSync +VSync
        h: width   800 start  840 end  968 total 1056 skew    0 clock  37.88KHz
        v: height  600 start  601 end  605 total  628           clock  60.32Hz
  800x600 (0x71) 36.000MHz +HSync +VSync
        h: width   800 start  824 end  896 total 1024 skew    0 clock  35.16KHz
        v: height  600 start  601 end  603 total  625           clock  56.25Hz
  640x480 (0x7d) 25.175MHz -HSync -VSync
        h: width   640 start  656 end  752 total  800 skew    0 clock  31.47KHz
        v: height  480 start  490 end  492 total  525           clock  59.94Hz

私はこれらの問題を解決するためにウェイランドを好みますが、X11は次善です。この種の問題を解決するためのGUIツールはありますか?私はまだ初心者です。

答え1

想像してみてください。しかし、私はそれを解決しました。残念ながら、この問題はX11を介してのみ解決できます。

X11のソリューション:

1.トランジションと黒い画面/外部画面に入力情報がないことを防ぐには、nVidiaをデフォルトのグラフィックカードに設定します。

まずX11に切り替える必要があります。ログアウトした後、ログイン画面でユーザー名をクリックすると、右下に小さなギアが表示されます。それをクリックして選択してくださいGNOME on Xorg

その後、編集する必要がありますnvidia.conf文書。 Silverblueでこれを行うのは、ルートがロックされているため少し難しいです。ただし、ターミナルに行き、と入力してルートファイルシステムを編集できますsudo rpm-ostree admin unlock --hotfix。この--hotfixタグは、ルートファイルシステムに対する変更を「永続的に」保存します。つまり、rpm-ostreeは以前のスナップショットに戻らず、nvidia.confの未修正バージョンにも戻りません。

ルートファイルシステムを編集する習慣を持たないでください。あなたの人生が決まるようにそれを避けなさい。不変ディストリビューションは、正当な理由でこれをロックします。

次に、nvidia.confを/ usrから/ etcにコピーします。sudo cp -p /usr/share/X11/xorg.conf.d/nvidia.conf /etc/X11/xorg.conf.d/nvidia.conf

新しくコピーしたファイルを見つけて編集しますsudo nano nvidia.conf。次のようにする必要があります。

#This file is provided by xorg-x11-drv-nvidia
#Do not edit

Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    Option "SLI" "Auto"
    Option "BaseMosaic" "on"
EndSection

Section "ServerLayout"
    Identifier "layout"
    Option "AllowNVIDIAGPUScreens"
EndSection

各セクションに以下を追加してくださいOption "PrimaryGPU" "yes"

だから:

#This file is provided by xorg-x11-drv-nvidia
#Do not edit

Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    Option "SLI" "Auto"
    Option "BaseMosaic" "on"
    Option "PrimaryGPU" "yes"
EndSection

Section "ServerLayout"
    Identifier "layout"
    Option "AllowNVIDIAGPUScreens"
    Option "PrimaryGPU" "yes"
EndSection

保存して終了してから再起動してください。これにより、X11はnVidiaをデフォルトのグラフィックカードとして使用します。端末に次のように入力して確認できますglxinfo | egrep "OpenGL vendor|OpenGL renderer"。 nVidiaがOpenGL ProviderとRendererの両方に表示されている場合は、うまくいきました。

2. 外部モニタのリフレッシュレートを強制します。

これでnVidiaドライバを強制的に使用したので、外部モニタを使用する方がはるかに簡単になりました。期待どおりに表示され、機能することもできます。

ただし、そうでない場合は修正が可能ですxrandr。入力(またはツールボックス/ターミナル/distros/dnfの使用/aptの使用/rpm-ostree/などの使用)に最初にインストールする場合は、メインのコンピュータxrandr/ノートブック画面と外部画面をHDMIに接続する必要があります。私の場合は、次のように表示されます。HDMI-0

解像度とリフレッシュレートを強制するには、xrandrを次のように使用できますxrandr --output HDMI-0 --mode 1920x1080 --rate 60--mode解像度をカバーし、リフレッシュ--rateレートをカバーします。画面は59.94または他の奇妙なリフレッシュレートをサポートすることができます。引数なしでxrandrを入力すると、(理論的には)サポート済みが表示されます。

成功すると、外部画面にデスクトップが表示され、正常に動作します。残りの問題はタッチスクリーンです。これは、タッチスクリーンがそれ自体ではなくラップトップ画面にマッピングされ続けているためです。

3.タッチスクリーン入力を外部画面に再マップします。

タッチスクリーンを再マップするには、別のX11ユーティリティが必要ですxinput。端末に入るxinputか、最初に取り付けると、入力デバイスのリストが表示されます。その中にはタッチスクリーンデバイスが必要です。 ELANタッチスクリーン、Wacomタッチスクリーン、または同様のもの。右側のID番号を覚えてください。

これxinputで入力を再マップすることもできます。次のように入力してこれを行いますxinput map-to-output 10 HDMI-010私のタッチスクリーンのID番号で、異なる場合があります。HDMI-0前述の外部画面の名前ですxrandr

4. ウェールランド?

残念ながら、Gnome(Fedoraなど)のWaylandではこれをキャンセルすることはできません。その理由はGnomeつぶやく(Waylandシンセサイザー)つぶやきがとても限られていました。再マッピングのためのツールはなく、すべての操作を独自に実行しようとしますが、失敗するため、ユーザーはほとんど完全にサービスできなくなります。より良いオプション(sway、sddmなど)がある場合は、Mutterを選択できません。

したがって、GNOMEでこれを行うには、X11を使用してください。

答え2

外部タッチスクリーンモニターには2つの問題があるようです。 1つ目は、モニターが59または60 Hz以外のリフレッシュレートで自己設定を拒否すること、2つ目はタッチスクリーン出力が常にモニターにマップされることです。ノートパソコンの画面。

最初の質問に関して、Fedora / Gnomeはディスプレイから放出される最大サポート周波数である120Hzでディスプレイを復元しようとすることがあります。ファイルに次の行を追加して、HDMIが60 Hzでのみ出力されるように強制できます/etc/X11/xorg.conf

Section "Monitor"
    Identifier "HDMI-1-0"
    Option "PreferredMode" "1920x1080_60.00"
EndSection

これにより、HDMI出力は120Hzではなく60Hzに強制されます。

2番目の質問については、コマンドを使用してタッチスクリーンを適切なモニターに再マップしますxinput。このxinput listコマンドを使用して入力デバイスとそのIDのリストを取得し、このコマンドをxinput map-to-output使用してタッチスクリーンを適切なディスプレイに再マップできます。たとえば、タッチスクリーンデバイスIDが12で表示名がHDMI-1-0の場合は、次のコマンドを実行できます。

xinput map-to-output 12 HDMI-1-0

これにより、タッチスクリーンがHDMI-1-0ディスプレイに再マップされます。システム構成に合わせてデバイスIDと表示名を調整する必要があります。

Waylandを使用している場合は、このwlr-touchユーティリティを使用してタッチスクリーンを適切なモニターに再マップできます。次のコマンドを使用してインストールできます。

sudo dnf install wlr-touch

インストール後、次のコマンドを実行してタッチスクリーンを適切なモニターに再マップできます。

wlr-touch output HDMI-1-0

同様に、システム構成に合わせてモニター名を調整する必要があります。

関連情報