ubuntu 16.04 donne «Erreur X de la demande ayant échoué: BadValue (paramètre entier hors plage pour le fonctionnement)» lors de l'exécution de programmes OpenGL

18

J'ai deux deux cartes graphiques à bord, l'une est l'intégration dans le processeur Intel, l'autre est la carte nvidia.

Je veux utiliser l'intégration pour rendre le bureau, la carte NV pour calculer avec cuda. Je change pour utiliser celui d'intégration dans "Paramètres du serveur NVIDIA X", après avoir installé le "nvidia-modprobe", il fonctionne comme je le souhaite.

mais où est un problème avec glx, lorsque je lance 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

Dans le journal xorg, libglx.so dans

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

Existe-t-il un moyen de faire fonctionner correctement le glx?

hangkongwang
la source

Réponses:

10

Résolu, j'ai configuré ce que je veux. J'ai posté la réponse ci-dessous sur GitHub .

  1. Supprimez tous les packages Nvidia et réinstallez les packages 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. Installez cuda8. Tu dois:

    Appuyez sur les touches Crtl + Alt + F1.

    sudo service lightdm stop  
    sudo init 3  
    

    J'utilise le fichier cuda8 .run pour l'installer, puis l'installer vous demandera si vous souhaitez installer le pilote de la carte nvidia?.

    Choisissez oui.

    Il vous demandera si vous souhaitez installer nvidia opengl?

    Choisissez non, c'est un choix crucial, si vous dites «oui» ici, il couvrira les bibliothèques «mesa *».

    Après cela, choisissez la valeur par défaut.

    Après l'installation, redémarrez.

    sudo reboot
    
hangkongwang
la source
2
Suite à cela - j'ai eu une erreur similaire causée par des mises à jour graphiques. Un simple redémarrage l'a corrigé pour mon ordinateur sans avoir à désinstaller / réinstaller les pilotes nvidia.
Pterosaur
1
En effet, cela semble beaucoup de travail qui peut ne pas être nécessaire ... A eu un problème similaire, et a dû fixer le numéro de mod clé (utilisé Mod1 au lieu de Mod4)
Anneau Ø
J'ai rencontré une erreur similaire lors de l'exécution des applications Wine OpenGL (glxgears et glxinfo fonctionnaient sans aucun problème) et la solution a été simplement de passer de nvidia-410 (Ubuntu 18.04) à nvidia-415 (que l'on trouve sur les "drivers graphiques" ppa , version 415.27-0ubuntu0 ~ gpu18.04.1). J'espère que cela pourra aider quelqu'un à l'avenir.
Avio
3

Pour quiconque arrive à cette question et essaie d'utiliser OpenGL sur un serveur sans tête: vous pouvez également recevoir ce message si vous avez installé des pilotes NVIDIA GLX mais que vous n'avez pas de carte NVIDIA sur votre serveur (par exemple, si vous utilisez l'AWS Deep Learning Base AMI sur une machine sans GPU).

Pour confirmer, essayez d'exécuter un serveur X avec +iglx(qui devrait permettre glxinfode s'exécuter) et voyez si la glxinfosortie (par exemple xvfb-run -s '-screen 0 1400x900x24 +iglx' glxinfo) signale client glx vendor string: NVIDIA Corporation. Si c'est le cas, essayez de passer à une AMI sans aucun truc NVIDIA.

Matthew Rahtz
la source
3

Rétrograder le pilote NVIDIA à 340.12

Auparavant, c'était 384.11 par défaut.

Cela peut être fait facilement à partir de l' software-properties-gtkonglet "pilotes supplémentaires".

Redémarrez ensuite.

Ubuntu 16.04, NVIDIA Corporation GF119 [NVS 310].

Il existe également un problème Steam similaire sur: Steam ne démarre pas sur Ubuntu 16.04

Le problème est reproductible avec un monde bonjour GLUT minimal:

#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: le problème ne se reproduit plus

Je n'ai pas eu cela depuis un moment, mettez à niveau Ubuntu si vous le pouvez. Actuellement sur 390.116 fonctionne parfaitement.

Besoin de quelques modifications mineures des options du BIOS pour le faire démarrer sur mon Lenovo ThinkPad P51: démarrage Ubuntu 17.10 bloqué au message "Démarré NVIDIA Persistence Daemon" après l'installation de nVidia 384.90

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
la source
1

Une autre situation où cette erreur peut se produire est lorsque vous essayez d'exécuter des fenêtres OpenGL tout en s'exécutant dans un environnement chroot. Ce message a une suggestion pour ajouter + iglx dans la commande xserver pour lightdm, ce qui a résolu le problème pour moi. Mettre cette réponse ici pour plus de visibilité car l'autre réponse n'apparaissait pas en évidence sur Google.

aleksk
la source
0

J'ai eu le même message d'erreur mais il a été causé par glutInitContextVersion (4, 0); parce que mon matériel ne supportait pas OpenGL 4.0, j'ai changé l'appel en glutInitContextVersion (3, 3); et les choses se sont bien passées. J'utilise un pilote NVidia propriétaire.

vollitwr
la source
1
Pourriez-vous expliquer comment vous avez fait cela?
Zanna
glutInitContextVersionn'est pas défini: dans freeglut3-dev 2.8.1, Ubuntu 15.10, lié: stackoverflow.com/questions/22055522/… Mais c'est un indice intéressant.
Ciro Santilli 28 改造 中心 法轮功 六四 事件
Mais j'ai aussi essayé glfwWindowHint(GLFW_CONTEXT_VERSIONet cela n'a pas résolu le problème :-( stackoverflow.com/questions/18113270/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件