私は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
リモートssh接続からスーパーユーザーのローカルXデスクトップを開くためのソリューションを次に示します。通常のユーザーでは動かせないので、重宝すると思います。
/ etc/X11/Xwrapper.configを編集して変更する必要があります
allowed_users=console
に
allowed_users=anybody
Sudo startx
X11セッションが(スーパーユーザーとして)開始され、sshセッションで通常のX11セッションメッセージを確認できます。
startxは、X11セッションが終了するまで終了しません。 startxがエラーメッセージを表示して終了する場合は、問題が発生しています。
一部のシステムでは、startx(またはstartx-vt [number]を使用して仮想コンソールを強制的に使用)を使用できますが、通常は失敗します。
(少なくとも)へのアクセス権に関連しているようです:
それらの権利は何らかのメカニズムによって設定されるべきであり、chownでそれらを強制するといくつかの改善が行われますが、問題は解決しません。
Startxが通常のユーザーで機能するシステムと機能しないシステムの違いを見つけることができませんでした。それらはすべてubuntu eoanを実行しており、私の知る限り、構成は同じです。ハードウェア、特にビデオカードだけが異なります。