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.
einpoklum
sumber
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.

villasv
sumber
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
svlasov
sumber
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
Gonzalo S Perilhou
sumber
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

Gabriel Gates
sumber
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.

Gokul NC
sumber
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.

FabricioFCarv
sumber
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