Mac から Ubuntu への SSH: X 転送が正しく機能していませんか?

Mac から Ubuntu への SSH: X 転送が正しく機能していませんか?

Mac Pro、OS X El Capitan 10.11.4、ATI Radeon グラフィック カード、XQuartz v 2.7.9 を実行

私のマシンでは、qdec と freeview を問題なく実行できます。問題は、Ubuntu 12.04 (Nvidia GeForce GTX 650) マシンに SSH で接続してこれらのプログラムを使用しようとすると発生します (以前は問題なく動作していましたが、現在は構成が変わったのではないかと考えています)

Ubuntu マシンに ssh で接続すると、次のエラーが発生します。

[myuser@ubuntu-machine:~] freeview
Xlib: extension "NV-GLX" missing on display "localhost:10.0". 
X Error: BadValue (integer parameter out of range for operation) 2
Extension:    150 (Uknown extension)
Minor opcode: 3 (Unknown request)
Resource id:  0x0
Abort         (core dumped)

[myuser@ubuntu-machine:~] qdec
Xlib: extension "NV-GLX" missing on display "localhost:10.0".
X Error of failed request:  BadValue (integer parameter out of range for operation)
Major opcode of failed request:  150 (GLX)
Minor opcode of failed request:  3 (X_GLXCreateContext)
Value in failed request:  0x0
Serial number of failed request:  1504
Current serial number in output stream:  1505

私の限られた知識に基づくと、X / SSH とグラフィック カードに問題があると思われますが、ここからどう進めればよいかわかりません。これを克服する方法について何かアイデアをお持ちの方がいらっしゃいましたら、大変ありがたく思います。

Ubuntu マシン自体にもモニターがあり、qdec と freeview をローカルで問題なく実行できます。問題は SSH 経由で発生するようです。Ubuntu マシン上の一部のプログラムはこの方法で正常に動作します (ただし、バックグラウンド ターミナルで X に関する大きなエラーが発生します)

Mac は最近 XQuartz を更新しましたが、この問題が更新前に発生していたかどうかはよくわかりません。

試してみましたssh -yが、同じエラーが返されます。

Ubuntu マシンに SSH で接続しましたexport LIBGL_ALWAYS_INDIRECT=1が、それでも同じエラーが発生します。

公式の質問: これらのエラーはどういう意味ですか? また、どうすれば修正できますか?

答え1

これは XQuartz の問題のようです。どうやら彼らは深刻な人員不足に陥っており、プロジェクトを存続させるのに十分な時間がないようです。あなたもこの問題に直面している場合は、バグレポートで誰かが解決したように、XQuartz 2.7.8 に戻してみてください。

他のオプションとしては、Amias Channer が提案したように、VNC を使用することもできます。

https://bugs.freedesktop.org/show_bug.cgi?id=93953#c6

XQuartz の主任開発者によると:

問題が間接レンダリングにあることを考えると、XQuartz の xorg-server の変更か、リモート システムの libGL または X11 スタックの変更のいずれかです。私の推測では、リモート libGL が変更され、XQuartz の IGLX サポートの何かが変更された可能性があります。古いバージョンの XQuartz を実行して、古いバージョンの XQuartz で動作するかどうかを確認できる場合は、これを再度動作させるために実行できる変更がある可能性があります。ただし、前述したように、IGLX は XQuartz だけでなく、一般的に生命維持装置にかかっています。

そして:

ええ、バグレポートで述べたように、プロジェクトに取り組んでいる人が少ないので、このような問題がすぐに修正される可能性はほとんどありません。私は月に 2 ~ 3 時間程度しか作業できませんが、これはセキュリティ修正を取り込み、テストを行い、アップデートを送信するのにちょうど十分な時間です。直接レンダリング パスに OpenGL Core のサポートを追加するのは、私が引き受けられる以上の作業です。あなたが求めているのは、間接レンダリング パスに追加することですが、それが実現する可能性はさらに低いです。Xorg は AIGLX を積極的に非推奨にしており、デフォルト構成から削除しているため、解決策は AIGLX のサポートを完全に削除することだと思います。

答え2

NV-GLXはNVIDIA OpenGLアクセラレーションを求めていることを示唆している

これは、Ubuntu マシンがデスクトップ用の 3D アクセラレーションを見つけようとしていることを意味します。

これらのアプリケーションでは、リモート ディスプレイ SSH X 転送経由では機能しないようです。

加速が行われた後に画像を表示するには、RDP や VNC などを使用する必要があります。

答え3

これに基づいてリンクローカルの Mac OS X で次の操作を試しましたか?

defaults write org.macosforge.xquartz.X11 enable_iglx -bool true

XQuartz はデフォルトでは間接 GLX をサポートしていないようです。

関連情報