ubuntu 16.04は、OpenGLプログラムの実行中に「失敗したリクエストのXエラー:BadValue(整数パラメータが動作範囲外)」を返します


18

ボードには2つのグラフィックカードが2つあります。1つはIntel CPUに統合され、もう1つはnvidiaカードです。

私はデスクトップをレンダリングするために統合されたものを使用し、Cudaで計算するためにNVカードを使用したいです。「nvidia-modprobe」をインストールした後、「NVIDIA Xサーバー設定」で統合するものを使用するように切り替えました。

しかし、glxinfoを実行するとglxに問題があります。

name of display: :0
X Error of failed request:  BadValue (integer parameter out of range for operation)
Major opcode of failed request:  154 (GLX)
Minor opcode of failed request:  24 (X_GLXCreateNewContext)
Value in failed request:  0x0
Serial number of failed request:  37
Current serial number in output stream:  38

xorgでlibglx.soにログインします

[     3.597] (II) "glx" will be loaded by default.
[     3.597] (II) LoadModule: "glx"
[     3.599] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     3.612] (II) Module glx: vendor="X.Org Foundation"

glxを正しく実行する方法はありますか?

回答:


10

解決し、私が望むものをセットアップしました。以下に示す回答をGitHubに投稿しました。

  1. すべてのNvidiaパッケージを削除し、xorgパッケージを再インストールします。

    sudo apt-get purge nvidia*  
    sudo apt-get install --reinstall xserver-xorg-video-intel libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core   
    sudo dpkg-reconfigure xserver-xorg   
    
  2. cuda8をインストールします。必要がある:

    Crtl + Alt + F1キーを押します。

    sudo service lightdm stop  
    sudo init 3  
    

    cuda8 .runファイルを使用してインストールした後、nvidiaカードドライバーをインストールするかどうかを確認するメッセージが表示されます。

    はいを選択します。

    nvidia openglをインストールする場合、プロンプトが表示されますか?

    いいえ、これは重要な選択です。ここで「はい」と言うと、「mesa *」ライブラリが対象になります。

    この後、デフォルトを選択します。

    インストール後、再起動します。

    sudo reboot
    

2
これをフォローアップしてください-グラフィックの更新が原因で同様のエラーが発生しました。簡単な再起動により、nvidiaドライバーをアンインストール/再インストールする必要なく、コンピューターで修正されました。
翼竜

1
実際、それは必要ではないかもしれない多くの作業のようです...同様の問題があり、キーmod番号(Mod4の代わりにMod1を使用)を修正する必要がありました
リング

私はワインのOpenGLアプリケーション(glxgearsとglxinfoは問題なく動作していた)を実行している同様のエラーを持っていたソリューションは、NVIDIA-415(で見つかっに(Ubuntuの18.04)のnvidia-410からアップグレードするには、単にされている「グラフィックスドライバ」PPA、バージョン415.27-0ubuntu0〜gpu18.04.1)。これが将来誰かに役立つことを願っています。
Avio

3

ヘッドレスサーバーでOpenGLを使用しようとすると、この質問に到達した人には:NVIDIA GLXドライバーがインストールされているが、実際にサーバーにNVIDIAカードがない場合(AWS Deep Learning Base AMIを使用している場合など) GPUのないマシンで)。

確認するには、+iglxglxinfo実行を許可する必要がある)でXサーバーを実行してみて、glxinfo出力(例xvfb-run -s '-screen 0 1400x900x24 +iglx' glxinfo)が報告される かどうかを確認しますclient glx vendor string: NVIDIA Corporation。その場合は、NVIDIAのもの​​を使用せずにAMIに切り替えてみてください。


3

NVIDIAドライバーを340.12にダウングレードします

以前はデフォルトで384.11でした。

これは、software-properties-gtk「追加ドライバー」タブから簡単に実行できます。

次に再起動します。

Ubuntu 16.04、NVIDIA Corporation GF119 [NVS 310]。

同様のSteamの問題もあります:Ubuntu 16.04でSteamが起動しない

この問題は、最小限のGLUT Hello Worldで再現可能です。

#include <stdlib.h>

#include <GL/glut.h>

int main(int argc, char *argv[]) {
    glutInit(&argc, argv);
    glutInitWindowSize(800, 600);
    glutInitWindowPosition(200, 100);
    glutCreateWindow(argv[0]);
    glutMainLoop();
    return EXIT_SUCCESS;
}

Ubuntu 19.04:問題はもう起こらない

しばらくこれを持っていませんでした、可能であればUbuntuをアップグレードしてください。現在、390.116で完全に動作しています。

Lenovo ThinkPad P51で起動するには、いくつかのマイナーなBIOSオプションの変更が必要でした:nVidia 384.90をインストールした後、「NVIDIA Persistence Daemonを開始しました」というメッセージでUbuntu 17.10ブートが停止する


1

このエラーが発生する別の状況は、chroot環境で実行中にOpenGLウィンドウを実行しようとしている場合です。この投稿には、lightdmのxserver-commandに+ iglxを追加する提案があり、これで問題が解決しました。他の回答がグーグルで目立って表示されなかったため、この回答を表示するためにここに配置しました。


0

同じエラーメッセージが表示されましたが、glutInitContextVersion(4、0)が原因 でした。 ハードウェアがOpenGL 4.0をサポートしていなかったため、glutInitContextVersion(3、3)への呼び出しを変更しました 物事は順調になりました。独自のNVidiaドライバーを使用しています。


1
どうやってそれを説明しましたか?
ザンナ

glutInitContextVersion未定義:freeglut3-dev 2.8.1、Ubuntu 15.10、関連:stackoverflow.com/questions/22055522/…しかし、これは興味深い手がかりです。
Ciro Santilli新疆改造中心法轮功六四事件

しかし、私も試みglfwWindowHint(GLFW_CONTEXT_VERSION、それが問題を解決しませんでした:-( stackoverflow.com/questions/18113270/...
チロSantilli新疆改造中心法轮功六四事件
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.