私は勇気を失っているので、誰かが私を助けることができることを願っています。 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-0
。10私のタッチスクリーンの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
同様に、システム構成に合わせてモニター名を調整する必要があります。