Xlib: ekstensi "GLX" tidak ada - dengan kartu NVIDIA dan gambar on-board


17

Saya memiliki mesin dengan NVIDIA GeForce yang tidak saya gunakan untuk tujuan tampilan (yaitu monitor tidak terhubung ke sana), dan beberapa chip grafis on-board yang kurang bagus. (Di bawah ini Anda akan menemukan lshwdaftar yang relevan .)

Sesi X saya berfungsi dengan baik; tetapi ketika sebagian besar aplikasi X saya (yang membutuhkan segala jenis GFX mewah atau toolkit) berjalan, mereka memancarkan pesan kesalahan berikut:

Xlib:  extension "GLX" missing on display ":0".

Pertanyaan saya adalah: Bagaimana saya bisa membuat aplikasi saya memperhatikan perpustakaan non-NVIDIA GLX dan menggunakannya (tanpa melepas kartu NVIDIA dan tanpa mengalihkan monitor ke port outputnya tentu saja)?

Saya menggunakan Debian / Linux Stretch 64bit, kernel versi 4.2.6, dengan LXDE.

Output dari lshw -c display:

  *-display               
       description: VGA compatible controller
       product: GK106 [GeForce GTX 650 Ti Boost]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:02:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
       configuration: driver=nvidia latency=0
       resources: irq:17 memory:f6000000-f6ffffff memory:e0000000-e7ffffff memory:e8000000-e9ffffff ioport:e000(size=128) memory:f7000000-f707ffff
  *-display
       description: VGA compatible controller
       product: Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 09
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:30 memory:f7400000-f77fffff memory:d0000000-dfffffff ioport:f000(size=64)

Output dari glxinfo:

Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Error: couldn't find RGB GLX visual or fbconfig
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".

Output dari cat /var/log/Xorg.0.log | grep glx:

[    19.287] (II) LoadModule: "glx"
[    19.787] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    22.727] (II) Module glx: vendor="X.Org Foundation"

Informasi tambahan:

  • Saya tidak memiliki glx-alternative-nvidiapaket yang diinstal.
  • Jika saya boot dari USB live-image Devuan ASCII, masalahnya tidak nyata.
  • Jika saya membuat xorg.confpenggunaan Xorg :1 -configure, ini yang dihasilkannya (2 bagian 'Perangkat', yang satu terkait dengan inteldriver, yang lain dengan nouveau); tetapi jika saya mengomentari bagian nouveau dan mencoba menjalankan Xorg dengan konfigurasi itu - itu tidak akan memuat, mengatakan tidak dapat menemukan layar.

Solusi bagi saya adalah menghapus bumblebeedan menginstal nvidia-bumblebee(pada Debian Jessie, menggunakan paket gfx backports).
Skeen

Jawaban:


8

Saya tiba di sini setelah menginstal nvidia-currentdari repositori paket, dan macet di loop login . Saya melihat log on ~/.xsession-errorsdan menemukan kesalahan yang disebutkan:

Xlib: extension "GLX" missing on display ":0".

Saya sudah uninstall nvidia-currentdan masalahnya masih ada. Saya juga belum glx-alternative-nvidiamenginstal. Sebagai upaya terakhir, saya cukup mencopot semuanya dari nvidiaUbuntu saya (termasuk hal-hal CUDA), dan itu berhasil setelah restart.


Maaf karena tidak membalas ini sebelumnya. Saya tidak nvidia-currentmenginstal, juga nvidia-paket. Tapi saya punya CUDA terbaru yang diinstal, dengan driver yang menyertainya (installer manual dari nvidia). Saya tahu itu cara jelek untuk melakukan sesuatu, tetapi saya memang membutuhkan versi terbaru.
einpoklum

1

Pertama-tama identifikasi modul glx mana yang digunakan:

$ cat /var/log/Xorg.0.log | grep glx
[     3.622] (II) LoadModule: "glx"
[     3.624] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     3.705] (II) Module glx: vendor="NVIDIA Corporation"

Di Debian 8 Jessie solusi saya adalah menghapus glx-alternative-nvidiapaket. Jadi setelah reboot:

$ cat /var/log/Xorg.0.log | grep glx
[     3.581] (II) LoadModule: "glx"
[     3.582] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     3.592] (II) Module glx: vendor="X.Org Foundation"

$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Mesa DRI Intel(R) Haswell Desktop

1
Saya sebenarnya hanya mendapatkan modul fungsi X.Org untuk mulai dengan ... lihat edit.
einpoklum

1
Dan bagaimana Anda menghapusnya? Itu tidak terdaftar pada apt-getpaket saya .
villasv

1
@VillasV Anda perlu mengaktifkan contribrepositori untuk melihatnya. Dan mungkin Anda bahkan tidak menginstalnya, dan dengan demikian penyebab Anda hilang kesalahan ekstensi glx berbeda.
svlasov

Nitpick kecil: mengapa Anda mengatakannya cat file | grep pattern? Mengapa tidak grep pattern file?
Timo

@Timo, hanya preferensi pribadi. Dalam sejarah shell saya merasa lebih mudah untuk melihat bagaimana pola berevolusi jika berjalan terakhir.
svlasov

1

Saya menyelesaikannya dengan menghapus instalan glx-alternative-nvidia

apt-get remove glx-alternative-nvidia

Saya bahkan tidak glx-alternative-nvidiamenginstal paketnya ...
einpoklum

1

Saya memiliki masalah setelah memutakhirkan Debian 9 setelah mengklik reboot untuk meningkatkan prompt.

Saat menginstal awalnya saya mengikuti langkah-langkah yang ditemukan di wiki https://wiki.debian.org/NvidiaGraphicsDrivers

Yang penting bagi saya adalah ...

# apt-get update
# apt-get install -t stretch-backports nvidia-driver

Kemudian dilakukan reboot


0

Instal OpenGL di komputer Anda, lalu seperti yang disebutkan di sini , tambahkan yang berikut ke Anda /etc/X11/xorg.conf:

Section "Files"
    ModulePath "/usr/lib/nvidia-VERSION/xorg"
    ModulePath "/usr/lib/xorg/modules"
EndSection

(Ganti nvidia-VERSIONdengan nama direktori Anda) Ini bekerja untuk saya.


1
Saya tidak memiliki direktori pertama. Bahkan, saya bahkan tidak punya /etc/X11/xorg.confalasan.
einpoklum

1
Anda dapat membuatnya dibuat untuk Anda dengansudo nvidia-xconfig
Gabriel Fair

@GabrielFair: Saya benar-benar tidak boleh melakukan itu. Ini kemungkinan akan membuat kartu nVIDIA saya digunakan untuk X; dan bahkan jika itu tidak akan - secara konseptual tidak sesuai.
einpoklum

0

Dapatkan "ekstensi" GLX "hilang" ketika saya "dist-upgrade" debian saya (8 -> 9). Solusinya cukup sederhana.

Unduh penginstal driver Anda di NVIDIA

service lightdm stop
#(ALT+F1) + your credentials
sudo nvidia-installer --uninstall
sudo ./NVIDIA-Linux-x86_64-340.102-custom.run #my vga GT218M [GeForce 310M]

Setelah installer melakukan tugasnya, GLX kembali.

ps: Jika Anda repo pengguna, saya pikir dpkg-reconfigure "driver_package_name" akan melakukan hal yang sama.


1
Jika saya tidak salah, ini akan membuat X menggunakan modul nVIDIA GLX. Yang bukan itu yang saya inginkan, karena saya tidak menggunakan GPU untuk tujuan tampilan.
einpoklum
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.