Gnome Ubuntu 22.04 で x11vnc と x0vncserver の両方が同じように失敗するのはなぜですか?

Gnome Ubuntu 22.04 で x11vnc と x0vncserver の両方が同じように失敗するのはなぜですか?

リモートのUbuntu 22.04にログインしてデスクトップを表示できるようにしたいその機械に表示されているように(別のデスクトップ インスタンスで を作成する方法は知っていますvncserver)。組み込みのリモート デスクトップには別の問題があるため、ここでは特にx11vncとについてお話しますx0vncserver

これらは、Xfce の 18.04 で何年も問題なく動作してきました。

22.04では、同じように失敗するので、これはGnomeかXorg(あるいはCompizはもう存在しないのか?)の問題ではないかと思う。この疑いは、以下で問題なく動作するという事実によってさらに強まる。gnome-session-flashback

x11vncとの両方について多くのオプションを試してみましたx0vncserverが、問題は解決しません。

短いバージョン: ウィンドウを移動すると、元の位置にある元のウィンドウと新しい位置にあるウィンドウの両方が表示されます。また、ウィンドウが移動されたパスに 1 つまたは 2 つのウィンドウがある可能性があります。たとえば、ここでは単一のターミナルから開始しました。

オリジナルのシングルウィンドウ

次にウィンドウを移動しました:

ウィンドウを移動しました

右下だけがインタラクティブです...

ここでの秘訣は... クライアントと VNC サーバーの両方を停止し、別のクライアントと VNC サーバーを起動すると、移動アーティファクトが残ります。再現レシピは次のとおりです (ここで、「クライアント」は VNC クライアントを実行している Debian マシン、「サーバー」は VNC サーバーを実行している Ubuntu 22.04 マシンです)。

  • 新しく再起動したサーバーから開始します。
  • 初めて接続する
    • x11vnc -usepw -display :0 -forever -rfbport 5901サーバーで開始
    • クライアントからRemminaに接続する
    • VNC クライアントの場合:
      • 1つのウィンドウを見る(上の最初のスクリーンショット)
      • ウィンドウを移動する
      • 2 つ以上のウィンドウを表示する (上記の 2 番目のスクリーンショット)
    • Remminaクライアントを強制終了する
    • x11vncサーバープロセスを強制終了する
  • もう一度接続する
    • x0vncserver -rfbport=5901 -PasswordFile=/home/peter/.vnc/passwd -display=:0 -fgサーバーで開始
    • xtigervncviewerクライアントと接続する
    • 2 つ以上のウィンドウが表示されます。すでに移動された元のウィンドウはまだそこにあります。「古い位置のアーティファクト」は残っています (ただし、右上が実際には 2 つの重なり合ったウィンドウであることに注意してください)。

2番目のVNC接続

つまり、何らかの理由で、元のウィンドウ位置の履歴がサーバー上に保存され、x11vnc/x0vncserverを再起動しても保持されます。これは、実際には Gnome/Xorg/Compiz の問題であると考えられます。

編集:追加データポイント

  • インストールしてみましたがgnome-session-flashback、フラッシュバック セッションを使用するとx11vnc期待どおりに動作します。ただし、実際には永久に実行したくはありませんgnome-session-flashback。たとえば XFCE でも問題なく動作すると予想しています (ただしテストはしていません)。

  • amdgpu私はグラフィック カードにオープン ソース ドライバーを使用していますAdvanced Micro Devices, Inc. [AMD/ATI] Baffin [Radeon RX 550 640SP / RX 560/560X] [1002:67ff] (rev ff)。AMD 独自のドライバーをインストールして使用してみましたが、違いはありませんでした。

  • また、明らかに AMD グラフィック ドライバーを使用しない VirtualBox 仮想マシンでも正常に動作します。

これまでにこのような現象を見たことがある人はいますか? また、修正方法をご存知の方はいますか?

答え1

これは、KVMスイッチを使用しているためであることがわかりました。デスクトップを1台実行しx11vnc、VNCクライアントを備えた別の(ラップトップ)を使用しています。ラップトップを使用するたびに、KVMスイッチを切り替えてラップトップを表示していました。実行中のマシンからモニターを切断しますx11vnc

KVM スイッチをx11vnc1マシンに残し、ラップトップの画面を使用して VNC クライアントを実行すると、すべて正常に動作します。KVM スイッチをサーバーから切り離すとすぐにx11vnc問題が発生します。

私は以下を提出しました:LibVNC/x11vnc#234: 「x11vnc には、モニターが切断されているか KVM スイッチで使用されている場合、表示アーティファクトが発生し、動作が遅くなります。」

そして、EDIDエミュレーターを使ってこの問題を回避するつもりです。注文しましたこれですそうすれば、コンピューターはディスプレイがまだ接続されていると認識するはずです。次に KVM スイッチを更新するときは、EDID エミュレーターが組み込まれたものを入手してください。EDID エミュレーターが届いて試してみたら、このスレッドを更新することを忘れないようにします。

関連情報