ubuntu 16.04 fornisce "X Errore di richiesta non riuscita: BadValue (parametro intero fuori intervallo per il funzionamento)" durante l'esecuzione di programmi OpenGL


18

Ho due due schede grafiche a bordo, una è l'integrazione in Intel CPU, una è la scheda NVIDIA.

Voglio usare quello integrato per il rendering desktop, la scheda NV per calcolare con cuda. Passo a utilizzare quello integrato in "Impostazioni server NVIDIA X", dopo aver installato "nvidia-modprobe" funziona come voglio.

ma dov'è un problema con glx, quando eseguo 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

Nel log di xorg, libglx.so in

[     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"

C'è un modo per far funzionare correttamente il glx?

Risposte:


10

Risolto, ho impostato quello che volevo. Ho pubblicato la risposta mostrata di seguito su GitHub .

  1. Rimuovi tutti i pacchetti Nvidia e reinstalla i pacchetti 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. Installa cuda8. Devi:

    Premi i tasti Crtl + Alt + F1.

    sudo service lightdm stop  
    sudo init 3  
    

    Uso cuda8 .run file per installarlo, quindi installarlo chiederà se si desidera installare il driver della scheda nvidia ?.

    Scegli si.

    Ti verrà richiesto se desideri installare nvidia opengl?

    Scegli no, questa è una scelta cruciale, se dici "sì" qui coprirà le librerie "mesa *".

    Successivamente, scegli il valore predefinito.

    Dopo l'installazione, riavviare.

    sudo reboot
    

2
Seguitemi: ho riscontrato un errore simile causato da aggiornamenti grafici. Un semplice riavvio lo ha riparato per il mio computer senza la necessità di disinstallare / reinstallare i driver nvidia.
Pterosaur,

1
In effetti sembra un sacco di lavoro che potrebbe non essere necessario ... Ha avuto un problema simile e ha dovuto correggere il numero di chiave mod (usato Mod1 invece di Mod4)
Anello Ø

Ho avuto un errore simile durante l'esecuzione delle applicazioni OpenGL di vino (glxgears e glxinfo erano in esecuzione senza alcun problema) e la soluzione è stata semplicemente l'aggiornamento da nvidia-410 (Ubuntu 18.04) a nvidia-415 (disponibile sul "driver di grafica" ppa , versione 415.27-0ubuntu0 ~ gpu18.04.1). Spero che questo possa aiutare qualcuno in futuro.
Avio,

3

Per chiunque arrivi a questa domanda cercando di usare OpenGL su un server senza testa: potresti anche ricevere questo messaggio se hai i driver NVIDIA GLX installati ma in realtà non hai una scheda NVIDIA nel tuo server (ad esempio se usi AWS Deep Learning Base AMI su una macchina senza GPU).

Per confermare, provare a eseguire un server X con +iglx(che dovrebbe consentire glxinfol'esecuzione) e vedere se glxinfoi xvfb-run -s '-screen 0 1400x900x24 +iglx' glxinforeport di output (ad es. ) client glx vendor string: NVIDIA Corporation. In tal caso, prova a passare a un AMI senza elementi NVIDIA.


3

Eseguire il downgrade del driver NVIDIA a 340.12

Precedentemente era 384.11 per impostazione predefinita.

Questo può essere fatto facilmente dalla software-properties-gtkscheda "driver aggiuntivi".

Quindi riavviare.

Ubuntu 16.04, NVIDIA Corporation GF119 [NVS 310].

C'è anche un problema Steam simile su: Steam non si avvia su Ubuntu 16.04

Il problema è riproducibile con un mondo ciao GLUT minimo:

#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: il problema non si verifica più

Non ce l'ho da un po ', basta aggiornare Ubuntu se puoi. Attualmente su 390.116 funziona perfettamente.

Sono state necessarie alcune piccole modifiche alle opzioni del BIOS per avviarlo sul mio Lenovo ThinkPad P51: l' avvio di Ubuntu 17.10 bloccato al messaggio "Avviato NVIDIA Persistence Daemon" dopo l'installazione di nVidia 384.90


1

Un'altra situazione in cui può verificarsi questo errore è quando si tenta di eseguire finestre OpenGL mentre si esegue in un ambiente chroot. Questo post ha un suggerimento di aggiungere + iglx nel comando xserver per lightdm, che ha risolto il problema per me. Mettendo questa risposta qui per visibilità in quanto l'altra risposta non è stata mostrata in modo prominente su Google.


0

Ho avuto lo stesso messaggio di errore ma è stato causato da glutInitContextVersion (4, 0); poiché il mio hardware non supportava OpenGL 4.0, ho cambiato la chiamata in glutInitContextVersion (3, 3); e le cose sono andate bene. Sto usando un driver NVidia proprietario.


1
Potresti spiegare come hai fatto?
Zanna,

glutInitContextVersionnon è definito: in freeglut3-dev 2.8.1, Ubuntu 15.10, relativo: stackoverflow.com/questions/22055522/… Ma questo è un indizio interessante.
Ciro Santilli 28 改造 中心 法轮功 六四 事件

Ma ho anche provato glfwWindowHint(GLFW_CONTEXT_VERSIONe non ha risolto il problema :-( stackoverflow.com/questions/18113270/...
Ciro Santilli新疆改造中心法轮功六四事件
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.