X11アプリケーションを実行するにはrootが必要です

X11アプリケーションを実行するにはrootが必要です

QML技術を使用してQtアプリケーションを構築しています。 QMLはOpenGLを使用します。

ビルドを実行するコンピュータは、Intel GPUを搭載したCentOS 6.7です。私はSSHを介してのみそれを使用し、XMing(または時にはVcxSrv)を使用してグラフィックアプリケーションを開きます。

うまくいくのは難しいですが、問題を検索してxauthを使用すると、QMLアプリをリモートで開くことができます。

しかし、

一般ユーザーとしてアプリケーションを実行すると、次の結果が表示されます。

KiTTY X11 proxy: Unsupported authorisation protocol QXcbConnection: Could not connect to display localhost:10.0

私は次のエラーメッセージを見つけました:サポートしていない(に関する質問がたくさんあります。間違った規約)

そして

ルートでのみ開くことができます(sudoここでは機能しません。必要ですsu)、いくつかのエラーが発生します。

現在、画面リソースを取得できません。警告:GLX 1.3がサポートされていない場合、/home/user/QMLapp/appアプリケーションはGLX 1.3関数 "glXCreatePbuffer"を呼び出します!これはアプリケーションエラーです! QXcbConnection:XCBエラー:170(不明)、シーケンス:163、リソースID:90、メジャーコード:146(不明)、マイナーコード:20

メモ: glxinfoが良く見え、直接レンダリングが有効になります。 glxgeersもうまく機能し、ルートは必要ありません。

最初の質問:GLXを簡単にアップグレードできますか? 2番目の質問:なぜルートでしか実行できないのですか?

ベストアンサー1

QXcbConnection: Could not connect to display localhost:10.0

上記のエラーには、いくつかの手がかりを含めることができます。これは、このユーザーの変数が$DISPLAYlocalhost:10.0に設定されていることを意味します。

ルートに訴えた後、を使用して変数を再確認できますecho $DISPLAY。次に、一般ユーザーに合わせて変数値を変更します。

正しい値は次のようになります。localhost:0.0

おすすめ記事