Ubuntu 16.04 podaje „X Błąd nieudanego żądania: BadValue (parametr liczby poza zakresem do działania)” podczas uruchamiania programów OpenGL

18

Mam dwie dwie karty graficzne na pokładzie, jedna integruje się z procesorem Intel, jedna to karta NVIDIA.

Chcę użyć zintegrowanego do renderowania pulpitu, karty NV do obliczenia za pomocą cuda. Przechodzę do korzystania z integrującego w „Ustawieniach serwera NVIDIA X”, po zainstalowaniu „nvidia-modprobe” działa ono tak, jak chcę.

ale gdzie jest problem z glx, kiedy uruchamiam glxinfo.

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

W dzienniku xorg zaloguj się 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"

Czy istnieje sposób, aby poprawnie uruchomić glx?

hangkongwang
źródło

Odpowiedzi:

10

Rozwiązane, skonfigurowałem to, czego chcę. Na GitHub opublikowałem odpowiedź pokazaną poniżej .

  1. Usuń wszystkie pakiety Nvidia i zainstaluj ponownie pakiety 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. Zainstaluj cuda8. Musisz:

    Naciśnij klawisze Crtl + Alt + F1.

    sudo service lightdm stop  
    sudo init 3  
    

    Używam pliku .run cuda8, ​​aby go zainstalować, a następnie zainstalowanie go wyświetli monit, jeśli chcesz zainstalować sterownik karty NVIDIA ?.

    Wybierz tak

    Zostaniesz zapytany, czy chcesz zainstalować NVIDIA OpenGL?

    Wybierz nie, jest to kluczowy wybór, jeśli powiesz „tak”, to obejmie biblioteki „mesa *”.

    Następnie wybierz domyślny.

    Po instalacji uruchom ponownie.

    sudo reboot
    
hangkongwang
źródło
2
Kontynuuj po tym - dostałem podobny błąd spowodowany aktualizacjami graficznymi. Proste ponowne uruchomienie naprawiło to na moim komputerze bez konieczności odinstalowywania / ponownej instalacji sterowników NVIDIA.
Pterozaur
1
Rzeczywiście, wydaje się, że to dużo pracy, która może nie być konieczna ... Miałem podobny problem i musiałem naprawić kluczowy numer mod (użyty Mod1 zamiast Mod4)
Pierścień Ø
Miałem podobny błąd podczas uruchamiania aplikacji Wine OpenGL (glxgears i glxinfo działały bez problemu), a rozwiązaniem było po prostu uaktualnienie z nvidia-410 (Ubuntu 18.04) do nvidia-415 (znalezione w ppa „sterowniki karty graficznej” , wersja 415.27-0ubuntu0 ~ gpu18.04.1). Mam nadzieję, że może to komuś pomóc w przyszłości.
Avio
3

Dla każdego, kto podejdzie do tego pytania, próbując użyć OpenGL na bezgłowym serwerze: możesz również otrzymać ten komunikat, jeśli masz zainstalowane sterowniki NVIDIA GLX, ale tak naprawdę nie masz karty NVIDIA na serwerze (np. Jeśli korzystasz z AWS Deep Learning Base AMI na maszynie bez GPU).

Aby potwierdzić, spróbuj uruchomić serwer X z +iglx(który powinien pozwolić glxinfona uruchomienie) i sprawdź, czy glxinfodane wyjściowe (np. xvfb-run -s '-screen 0 1400x900x24 +iglx' glxinfo) Generują raporty client glx vendor string: NVIDIA Corporation. Jeśli tak, spróbuj przejść na AMI bez żadnych elementów NVIDIA.

Matthew Rahtz
źródło
3

Zmień sterownik NVIDIA na 340.12

Poprzednio domyślnie było 384,11.

Można to łatwo zrobić z poziomu software-properties-gtk zakładce „dodatkowe sterowniki”.

Następnie uruchom ponownie.

Ubuntu 16.04, NVIDIA Corporation GF119 [NVS 310].

Istnieje również podobny problem ze Steam: Steam Steam nie uruchamia się na Ubuntu 16.04

Problem jest powtarzalny w minimalnym świecie GLUT hello:

#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: problem już nie występuje

Nie miałem tego przez jakiś czas, po prostu zaktualizuj Ubuntu, jeśli możesz. Obecnie 390.116 działa idealnie.

Potrzebowałem drobnych zmian opcji BIOS-u, aby uruchomić go na moim Lenovo ThinkPad P51: Ubuntu 17.10 boot utknął na komunikat „Uruchomiłem NVIDIA Persistence Daemon” po zainstalowaniu nVidia 384.90

Ciro Santilli
źródło
1

Inną sytuacją, w której może wystąpić ten błąd, jest próba uruchomienia systemu Windows OpenGL podczas pracy w środowisku chroot. Ten post zawiera sugestię dodania + iglx w poleceniu xserver dla lightdm, co rozwiązało problem. Umieszczenie tej odpowiedzi tutaj dla widoczności, ponieważ druga odpowiedź nie pojawiła się wyraźnie w Google.

aleksk
źródło
0

Miałem ten sam komunikat o błędzie, ale został spowodowany przez glutInitContextVersion (4, 0); ponieważ mój sprzęt nie obsługiwał OpenGL 4.0, zmieniłem wywołanie na glutInitContextVersion (3, 3); i wszystko stało się dobrze. Używam zastrzeżonego sterownika NVidia.

vollitwr
źródło
1
Czy możesz wyjaśnić, jak to zrobiłeś?
Zanna,
glutInitContextVersionjest niezdefiniowany: we freeglut3-dev 2.8.1, Ubuntu 15.10, powiązane: stackoverflow.com/questions/22055522/... Ale to ciekawa wskazówka.
Ciro Santilli 28 改造 中心 法轮功 六四 事件
Ale też próbowałem glfwWindowHint(GLFW_CONTEXT_VERSIONi nie rozwiązałem problemu :-( stackoverflow.com/questions/18113270/...
Ciro Santilli 28 改造 中心 法轮功 六四 事件