Debian / Wheezy(またはそれ以上)のVNCでEvolutionを実行するにはどうすればよいですか?

Debian / Wheezy(またはそれ以上)のVNCでEvolutionを実行するにはどうすればよいですか?

長年にわたり、私は家を出るときに「家のコンピュータ」としてVNCing(sshを介して)し、厳格なvncサーバー環境でEvolution(電子メール、連絡先などのために)を実行する習慣を持ってきました。

これは家庭用コンピュータがDebian / Squeezeを実行したときにうまく機能しましたが、Wheezyにアップデートされたので、VNCサーバーのセッション出力からEvolutionを起動してみてください。

Xlib:  extension "GLX" missing on display ":1".
Failed to connected to any renderer:
XServer appears to lack required GLX support

ightvncserverがGLXをサポートしていないことは驚くべきことではありませんが、EvolutionがGLバックエンドに移動したのは(「clutter」ツールキットを使用して?)驚くべきことです。 (明らかに、Evolutionはデスクトップ上で完全に動作します。コンピュータにはDKMS経由のNVIDIAドライバがあります。)

この問題を解決する見通しは何ですか?私の意見は次のとおりです。

  • この問題を解決するためのEvolutionのコマンドラインオプションはありますか?
  • VNCサーバーでGLXサポートを受ける方法はありますか? (tightvncserverの代替案はこれをサポートしていますか?)

私は待ち時間が長く、帯域幅が低いリンクを介してVNCを使用する傾向があります。以前はX11を介してリモートでEvolutionを実行したことがありましたが、VNCははるかにうまく機能しませんでした。

Debianに優しい(apt-get -able)ソリューションが好まれます。

答え1

私はvncを介してqtcreatorを動作させようとすると同じ問題が発生し、最終的に動作しない理由と解決策を見つけました。

http://minkirri.apana.org.au/wiki/DevJournal

VirtualGLは不要で、代替よりも悪いかもしれません。重要なのは、標準のDebianパッケージを使用すると機能することです。

VirtualGLは、アプリケーションサーバー側のハードウェアアクセラレーションに使用されます。 GLX は x サーバー側のハードウェアアクセラレーションに使用されます。 VNC を正常に使用する場合、アプリケーションサーバーと x サーバーは vnc サーバーと同じマシン上にあるため、VirtualGL と GLX の間に大きな違いはありません。

問題は、2つの最も一般的なvncサーバー、Tightvncserverとvnc4serverが独自の内部xサーバーを持つxプロキシサーバーで、GLXをサポートしていないことです。 3Dアプリケーションは引き続き使用できますが、以前のアプリケーションサーバー側のソフトウェアレンダリングを使用する必要があります。つまり、通常インストールされているハードウェアレンダリングバージョンと競合するアプリケーションサーバーにlibgl1-mesa-swx11をインストールする必要があることを意味します。 libgl1-mesa-glx。

あるいは、ハードウェアレンダリングGLXをサポートする一般的なx-serverをインストールし、実際のx-server画面をキャプチャできるvncserverであるx11vncを使用することもできます。

誰かがlibvncserver(x11vncで使用)を使用して適切なGLXサポートを備えた新しいx-proxy vnc-serverを作成したらいいでしょう。 ightvncserverとvnc4serverの両方がややトリッキーになっています。

答え2

より多くの研究を行った結果、すべての道は次に続くようです。仮想GL文書)、まだ試していませんが(設定の指示は少し...脅威です)。文書いくつかの.debsを指します。、そして開いている項目があります。Debian 用 ITP

代わりに、Mesaを介してGLXをサポートする緊密なvncserverを構築することも可能です。ここ)。もちろんGPUアクセラレーションではありませんが(しかし、グラフィックスのパフォーマンスがどれほど向上するのでしょうか?)Eメール必要ですか? ? ? );もっと心配な点は(少なくとも私が最後に試したとき)、Debianはコンピュータに同時に複数のOpenGLライブラリセットをインストールすることを許可しません。 。

どういうわけか成功したら、ここで更新します。もちろん、他の(可能な)ソリューション/ポインターにもまだ興味があります。


進行状況:適切な.debを介してVirtualGLをインストールし、指示に従って(最初の考えほど悪くはありません。複数のプラットフォームの適用範囲が多少大きくなります)、GLXはvncサーバーでサポートされているため、ハードウェアが高速化されました。このような状況は初めて見ました!

/opt/VirtualGL/bin/vglrun glxgears

ここに画像の説明を入力してください。

進化はこのメカニズムを通しても機能し、私の主な問題を解決します。

しかし、このアプローチにはいくつかの重要な問題があります。誰かがホストにログインしている場合にのみ機能します。いいえgdm3 "greeter"が表示されると、vglrunで "Cannot open display: 0"エラーが発生し、すべての種類の表示切り替え(仮想コンソールでctrl-alt-Fnを実行するなど)が終了します。 vglrunアプリケーションで「ピクセルを読み取れません」というエラーが発生します。さて画面ロックは大丈夫そうです。私の目的については大丈夫です。 (VNCを介して接続されたシステムのデフォルトユーザーであり、常にログインしており、ctrl-alt-Fnなどの技術的なタスクを実行する可能性が最も低い他の人がいます。)デスクトップでは)、他の人には理想的ではないかもしれません。

修正する:実際にgdm3 "グリーティング"を表示するときにVNC + GLXを有効にするように修正されました。xhost +LOCAL:の始めの近くに行を置きます/etc/gdm3/Init/Default。スクリプトvglserver_configは実際にこれを実行しようとしますが(安全でない設定の場合)、gdm3の設定ファイルについては何もわかりません(しかしgdmとxdmはチェックします)。より良いアプローチ(および設定中にvglursグループを使用してより安全なオプションを選択したと仮定したときに構成スクリプトが実行したいこと)は、そこに1つを置くことですが、[期待]をクリックしない限りvglgenkey何もしないようです。/etc/opt/VirtualGL/vgl_xauth_keya) を生成します。

修正する:/etc/opt/VirtualGL/vgl_xauth_key実際、Debian-gdmユーザーをvglursグループに追加すると、gdm3の作成を有効にできます。しかし、これは問題を別の場所に移動するだけで、vglrunは/var/run/gdm3/(root:Debian-gdm権限を持つ)で何かをロックできないと文句を言います。私は今、私の能力を超えて恐ろしいほど安全でないxhost +LOCAL:行を終わらせなければならないという疑いはありません。

修正する:この厳しい Debian マシンを Wheezy から Jessie に、SourceForge から virtualgl 2.5 debs にアップデートしました。 vglrun evolutionサーバーが設定されたらvglrun_config

修正する:Debian9 ("Stretch") から virtualgl の代わりに Tigervncserver (このリリースでは Tigervnc-standalone-server パッケージを通じて Debian stable の新機能だと思う) を使用するように切り替えました。よりその他の回答

答え3

私はDebian9( "stretch")に次のようなものがあることを見ました。TigerVNC専用サーバーすでに登場しました。これにはいくつかのOpenGLサポートが含まれているようです(メサは依存関係であることがわかりました)。新しいDebian9インストールにインストールして問題なく起動しましたが、起動するとGnome(.Xsessionファイルを台無しにする必要はありません)を実行するスタンドアロン(「スクリーンスクレイピング」ではありません)デスクトップが作成されました。これは進化を実行しているようです。問題なくglxgearを使用してください。 Virtualglはマシンにインストールする必要はありません。とても良い! (このソリューションはおそらくSWレンダリングを使用していると強く疑っていますが、virtualglはGPUを使用しています。最新のCPUの主要な2Dデスクトップアプリケーションの場合は問題ありません。)

Tigervncサーバーはデフォルトでリモート(ローカルホストではない)接続を許可しません(これを上書きするコマンドラインオプションがありますが)。これは(賢明に)SSHトンネリングを使用することをお勧めします!

関連情報