OpenGL 프로그램을 실행할 때 ubuntu 16.04에서“실패한 요청의 오류 : BadValue (정수 매개 변수가 범위를 벗어남)”를 표시합니다.


18

두 개의 그래픽 카드가 두 개 있습니다. 하나는 Intel CPU의 통합이고, 하나는 Nvidia 카드입니다.

통합 된 것을 사용하여 데스크탑을 렌더링하고 NV 카드를 cuda로 계산하고 싶습니다. "nvidia-modprobe"를 설치 한 후 "NVIDIA X Server 설정"에서 통합 된 것을 사용하도록 전환했습니다.

그러나 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
실제로 그것은 필요하지 않은 많은 일처럼 보입니다 ... 비슷한 문제가 있었고 키 모드 번호를 수정해야했습니다 (Mod4 대신 Mod1 사용)
Ring Ø

와인 OpenGL 응용 프로그램 (glxgears 및 glxinfo가 아무런 문제없이 실행 중)과 유사한 오류가 발생했으며 해결책은 단순히 nvidia-410 (Ubuntu 18.04)에서 nvidia-415 ( "graphics drivers"ppa , version 415.27-0 우분투 0 ~ gpu18.04.1). 이것이 미래에 누군가를 도울 수 있기를 바랍니다.
Avio

3

헤드리스 서버에서 OpenGL을 사용하려는이 질문에 도달 한 사람 : NVIDIA GLX 드라이버가 설치되어 있지만 실제로 서버에 NVIDIA 카드가없는 경우 (예 : AWS Deep Learning Base AMI를 사용하는 경우)이 메시지가 표시 될 수 있습니다 GPU가없는 머신에서).

확인하려면 가진 X 서버를 실행하십시오 +iglx(허용해야 glxinfo실행)를하고 있는지 여부를 확인 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 문제도 있습니다 : Steam이 Ubuntu 16.04에서 시작되지 않습니다

최소한의 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;
}

우분투 19.04 : 문제가 더 이상 발생하지 않습니다

잠시 동안 이것을 가지고 있지 않다면 가능하다면 우분투를 업그레이드하십시오. 현재 390.116에서 완벽하게 작동합니다.

nVidia 384.90을 설치 한 후 Lenovo ThinkPad P51에서 시작하기 위해 약간의 BIOS 옵션 변경이 필요했습니다.


1

이 오류가 발생할 수있는 또 다른 상황은 chroot 환경에서 실행하는 동안 OpenGL 창을 실행하려고 할 때입니다. 이 게시물 에는 xdm 명령에 lightdm 용 + iglx를 추가하라는 제안이있어 문제를 해결했습니다. 다른 답변이 Google에 눈에 띄게 표시되지 않았 으므로이 답변을 여기에 표시하십시오.


0

동일한 오류 메시지가 있었지만 glutInitContextVersion (4, 0) 으로 인해 발생했습니다 . 하드웨어가 OpenGL 4.0을 지원하지 않았기 때문에 glutInitContextVersion (3, 3)에 대한 호출을 변경했습니다 . 그리고 상황이 좋아졌다. 독점 NVidia 드라이버를 사용하고 있습니다.


1
어떻게했는지 설명해 주시겠습니까?
Zanna

glutInitContextVersion정의되지 않음 : freeglut3-dev 2.8.1, Ubuntu 15.10, 관련 : stackoverflow.com/questions/22055522/… 그러나 이것은 흥미로운 단서입니다.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

그러나 나는 또한 시도 glfwWindowHint(GLFW_CONTEXT_VERSION하고 문제를 해결하지 못했습니다 :-( stackoverflow.com/questions/18113270/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.