ubuntu 16.04 memberikan "X Kesalahan permintaan gagal: BadValue (parameter integer di luar jangkauan untuk operasi)" ketika menjalankan program OpenGL

18

Saya memiliki dua dua kartu grafis, satu adalah integrasi dalam cpu Intel, satu adalah kartu nvidia.

Saya ingin menggunakan yang terintegrasi untuk membuat desktop, kartu NV untuk menghitung dengan cuda. Saya beralih untuk menggunakan yang terintegrasi dalam "pengaturan Server NVIDIA X", setelah saya menginstal "nvidia-modprobe" itu berfungsi seperti yang saya inginkan.

tetapi di mana ada masalah dengan glx, ketika saya menjalankan 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

Di xorg, log it 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"

Apakah ada cara saya bisa menjalankan glx dengan benar?

hangkongwang
sumber

Jawaban:

10

Terpecahkan, saya telah mengatur apa yang saya inginkan. Saya memposting jawaban yang ditunjukkan di bawah ini di GitHub .

  1. Hapus semua paket Nvidia dan instal ulang paket 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. Instal cuda8. Kamu butuh:

    Tekan tombol Crtl + Alt + F1.

    sudo service lightdm stop  
    sudo init 3  
    

    Saya menggunakan file cuda8 .run untuk menginstalnya, kemudian menginstalnya akan meminta jika Anda ingin menginstal driver kartu nvidia ?.

    Pilih ya.

    Ini akan meminta jika Anda ingin menginstal nvidia opengl?

    Pilih tidak, ini adalah pilihan penting, jika Anda mengatakan "ya" di sini akan mencakup perpustakaan "mesa *".

    Setelah ini, pilih default.

    Setelah menginstal, reboot.

    sudo reboot
    
hangkongwang
sumber
2
Tindak lanjuti ini - Saya mendapat kesalahan serupa yang disebabkan oleh pembaruan grafis. Sebuah reboot sederhana memperbaikinya untuk komputer saya tanpa perlu menghapus / menginstal ulang driver nvidia.
Pterosaur
1
Memang itu sepertinya banyak pekerjaan yang mungkin tidak perlu ... Punya masalah yang sama, dan harus memperbaiki nomor mod kunci (digunakan Mod1, bukan Mod4)
Ring Ø
Saya memiliki kesalahan yang sama menjalankan aplikasi OpenGL anggur (glxgears dan glxinfo berjalan tanpa masalah) dan solusinya hanya dengan meng-upgrade dari nvidia-410 (Ubuntu 18.04) ke nvidia-415 (ditemukan pada "driver grafis" ppa , versi 415.27-0ubuntu0 ~ gpu18.04.1). Semoga ini bisa membantu seseorang di masa depan.
Avio
3

Bagi siapa pun yang datang pada pertanyaan ini mencoba menggunakan OpenGL pada server tanpa kepala: Anda mungkin juga mendapatkan pesan ini jika Anda menginstal driver NVIDIA GLX tetapi tidak benar-benar memiliki kartu NVIDIA di server Anda (mis. Jika menggunakan AWS Deep Learning Base AMI pada mesin tanpa GPU).

Untuk mengonfirmasi, coba jalankan server X dengan +iglx(yang seharusnya memungkinkan glxinfountuk berjalan), dan lihat apakah glxinfokeluaran (misalnya xvfb-run -s '-screen 0 1400x900x24 +iglx' glxinfo) laporan client glx vendor string: NVIDIA Corporation. Jika ya, coba beralih ke AMI tanpa barang NVIDIA.

Matthew Rahtz
sumber
3

Turunkan driver NVIDIA ke 340.12

Sebelumnya adalah 384.11 secara default.

Ini dapat dilakukan dengan mudah dari software-properties-gtktab "driver tambahan".

Kemudian reboot.

Ubuntu 16.04, NVIDIA Corporation GF119 [NVS 310].

Ada juga masalah Steam serupa di: Steam tidak akan mulai di Ubuntu 16.04

Masalahnya dapat direproduksi dengan dunia hello 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: masalah tidak terjadi lagi

Belum memiliki ini untuk sementara waktu, cukup tingkatkan Ubuntu jika Anda bisa. Saat ini di 390,116 bekerja dengan sempurna.

Diperlukan beberapa perubahan opsi BIOS kecil untuk memulainya pada Lenovo ThinkPad P51: boot Ubuntu 17.10 saya macet di pesan "Memulai NVIDIA Persistence Daemon" setelah menginstal nVidia 384.90

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

Situasi lain di mana kesalahan ini dapat muncul adalah ketika Anda mencoba menjalankan windows OpenGL saat berjalan di lingkungan chroot. Posting ini memiliki saran untuk menambahkan + iglx di perintah xserver untuk lightdm, yang memecahkan masalah bagi saya. Menempatkan jawaban ini di sini agar dapat dilihat karena jawaban lain tidak muncul dengan jelas di google.

aleksk
sumber
0

Saya memiliki pesan kesalahan yang sama tetapi disebabkan oleh glutInitContextVersion (4, 0); karena perangkat keras saya tidak mendukung OpenGL 4.0, saya mengubah panggilan menjadi glutInitContextVersion (3, 3); dan segalanya menjadi baik-baik saja. Saya menggunakan driver NVidia eksklusif.

vollitwr
sumber
1
Bisakah Anda menjelaskan bagaimana Anda melakukannya?
Zanna
glutInitContextVersiontidak terdefinisi: di freeglut3-dev 2.8.1, Ubuntu 15.10, terkait: stackoverflow.com/questions/22055522/… Tapi ini adalah petunjuk yang menarik.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
Tetapi saya juga mencoba glfwWindowHint(GLFW_CONTEXT_VERSIONdan itu tidak menyelesaikan masalah :-( stackoverflow.com/questions/18113270/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件