ubuntu 16.04 ให้“ X ข้อผิดพลาดของการร้องขอล้มเหลว: BadValue (พารามิเตอร์จำนวนเต็มอยู่นอกช่วงการทำงาน)” เมื่อเรียกใช้โปรแกรม OpenGL


18

ฉันมีการ์ดกราฟิกสองสองตัวอยู่บนบอร์ดหนึ่งอันคือการผสานรวมใน Intel cpu หนึ่งอันคือการ์ด NVIDIA

ฉันต้องการใช้การรวมเพื่อแสดงเดสก์ท็อปการ์ด NV เพื่อคำนวณด้วย cuda ฉันสลับไปใช้การรวมเข้าด้วยกันใน "การตั้งค่าเซิร์ฟเวอร์ NVIDIA X" หลังจากฉันติดตั้ง "nvidia-modprobe" มันทำงานได้อย่างที่ฉันต้องการ

แต่ที่ไหนมีปัญหากับ glx เมื่อฉันเรียกใช้ 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

ใน 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 อีกครั้ง
Pterosaur

1
แน่นอนว่าดูเหมือนจะมีงานจำนวนมากที่อาจไม่จำเป็น ... มีปัญหาที่คล้ายกันและต้องแก้ไขหมายเลข mod ที่สำคัญ (ใช้ Mod1 แทน Mod4)
Ring Ø

ฉันมีข้อผิดพลาดคล้ายกันในการเรียกใช้แอปพลิเคชั่นไวน์ OpenGL (glxgears และ glxinfo กำลังทำงานโดยไม่มีปัญหาใด ๆ ) และวิธีแก้ปัญหานั้นก็คือการอัพเกรดจาก nvidia-410 (Ubuntu 18.04) เป็น nvidia-415 (พบใน"ไดรเวอร์กราฟิก" ppaรุ่น 415.27-0ubuntu0 ~ gpu18.04.1) หวังว่าสิ่งนี้จะช่วยใครบางคนในอนาคต
Avio

3

สำหรับผู้ที่มาถึงคำถามนี้พยายามใช้ OpenGL บนเซิร์ฟเวอร์ที่ไม่มีหัว: คุณอาจได้รับข้อความนี้หากคุณติดตั้งไดรเวอร์ NVIDIA GLX แต่ไม่มีการ์ด NVIDIA ในเซิร์ฟเวอร์ของคุณ (เช่นถ้าใช้ AWS Deep Learning AMI บนเครื่องที่ไม่มี GPU)

หากต้องการยืนยันให้ลองเรียกใช้เซิร์ฟเวอร์ X ด้วย+iglx(ซึ่งควรอนุญาตให้glxinfoเรียกใช้) และดูว่ารายงานglxinfoเอาต์พุต (เช่นxvfb-run -s '-screen 0 1400x900x24 +iglx' glxinfo) client glx vendor string: NVIDIA Corporationหรือไม่ ถ้าเป็นเช่นนั้นลองเปลี่ยนเป็น AMI โดยไม่มีสิ่งใดจาก NVIDIA


3

ปรับลดไดรเวอร์ NVIDIA เป็น 340.12

ก่อนหน้านี้คือ 384.11 โดยค่าเริ่มต้น

สิ่งนี้สามารถทำได้อย่างง่ายดายจากsoftware-properties-gtkแท็บ "ไดรเวอร์เพิ่มเติม"

จากนั้นรีบูท

Ubuntu 16.04, NVIDIA Corporation GF119 [NVS 310]

นอกจากนี้ยังมีปัญหา Steam ที่คล้ายกันที่: Steam จะไม่เริ่มใน Ubuntu 16.04

ปัญหานี้สามารถทำซ้ำได้ด้วย GLUT สวัสดีโลกเพียงเล็กน้อย:

#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: ปัญหาไม่ได้เกิดขึ้นอีกต่อไป

ยังไม่เคยมีสิ่งนี้มานานแค่อัพเกรดอูบุนตูถ้าคุณทำได้ ปัจจุบันที่ 390.116 ทำงานได้อย่างสมบูรณ์แบบ

ต้องการการเปลี่ยนแปลงตัวเลือก BIOS เล็กน้อยบางอย่างเพื่อเริ่มต้นใช้งานบน Lenovo ThinkPad P51 ของฉัน: บูต Ubuntu 17.10 ติดอยู่ที่ข้อความ "เริ่ม NVIDIA Persistence Daemon" หลังจากติดตั้ง nVidia 384.90


1

สถานการณ์อื่นที่ข้อผิดพลาดนี้สามารถเกิดขึ้นได้คือเมื่อคุณพยายามเรียกใช้หน้าต่าง OpenGL ในขณะที่ทำงานในสภาพแวดล้อมแบบ chroot โพสต์นี้มีข้อเสนอแนะในการเพิ่ม + iglx ในคำสั่ง xserver-lightdm ซึ่งแก้ไขปัญหาให้ฉันได้ การวางคำตอบนี้ไว้ที่นี่เพื่อให้มองเห็นได้เนื่องจากคำตอบอื่น ๆ ไม่ปรากฏเด่นชัดบน 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.