web-dev-qa-db-ja.com

ローカルディスプレイをリモートで使用する方法

私はsshおよびssh -Yを介してリモートでログインできるLinuxを使用しています。

使用したいアプリケーションの1つはGLFWを使用しています。パンデミックが発生する前は、ローカルにログインしているユーザー(me)がいたため、リモートで問題なく作業できました。

さて、マシンを再起動する必要がありました。sshでログインすることはできますが、再起動以降ログインしたユーザーはいません。そのため、アプリケーションが起動しません。私は得ます:

Cannot initialize GLFW library

アプリケーションがディスプレイを開こうとするとき。 (私はこの表示を気にしません、アプリはリモートでアクセスできる出力ファイルを生成します)

export DISPLAY=[my ip address]:0を使用してディスプレイをエクスポートして、xtermを動作させました。しかし、私のアプリにはOpenGLが必要なので、これは役に立ちません。

what():  GLFW error: GLX: Forward compatibility requested but GLX_ARB_create_context_profile is unavailable

だから、私が求めていること:

ssh(-Y)を超えて、マシンの前に座っているかのようにユーザーをログインさせるにはどうすればよいですか? Xスタートアップの一部が欠落していると想定しています。

これが便利な場合:

4.15.0-91-generic #92~16.04.1-Ubuntu SMP Fri Feb 28 14:57:22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

3
Jeffrey

リモートssh接続からスーパーユーザーのローカルXデスクトップを開くためのソリューションを次に示します。通常のユーザーでは動かせないので、重宝すると思います。

1. sshを使用してマシンにログオンします

2.誰でもコンソールでローカルX11セッションを開くことができる

/ etc/X11/Xwrapper.configを編集して変更する必要があります

allowed_users=console

allowed_users=anybody

3.セッションを開始します(Sudo)

Sudo startx

X11セッションが(スーパーユーザーとして)開始され、sshセッションで通常のX11セッションメッセージを確認できます。

startxは、X11セッションが終了するまで終了しません。 startxがエラーメッセージを表示して終了する場合は、問題が発生しています。

通常のユーザーでは通常失敗します

一部のシステムでは、startx(またはstartx-vt [number]を使用して仮想コンソールを強制的に使用)を使用できますが、通常は失敗します。

(少なくとも)へのアクセス権に関連しているようです:

  • / dev/tty [番号]
  • / dev/dri/card0
  • / dev/fb0

それらの権利は何らかのメカニズムによって設定されるべきであり、chownでそれらを強制するといくつかの改善が行われますが、問題は解決しません。

Startxが通常のユーザーで機能するシステムと機能しないシステムの違いを見つけることができませんでした。それらはすべてubuntu eoanを実行しており、私の知る限り、構成は同じです。ハードウェア、特にビデオカードだけが異なります。

2
ChrisAga