Xlib: brak rozszerzenia „GLX” - z kartą NVIDIA i grafiką pokładową


17

Mam maszynę z NVIDIA GeForce, której nie używam do wyświetlania (tj. Monitor nie jest do niej podłączony), i trochę słabego wbudowanego układu graficznego. (Poniżej znajduje się odpowiednia lshwlista.)

Moje sesje X działają dobrze; ale gdy uruchomiona jest większość moich aplikacji X (które wymagają dowolnego wymyślnego GFX lub zestawu narzędzi), emitują następujący komunikat o błędzie:

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

Moje pytanie brzmi: w jaki sposób mogę sprawić, aby moje aplikacje zauważyły ​​bibliotekę inną niż NVIDIA GLX i używały jej (bez wyjmowania karty NVIDIA i oczywiście bez przełączania monitora na porty wyjściowe)?

Używam Debian / Linux Stretch 64bit, jądro w wersji 4.2.6, z LXDE.

Wyjście 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)

Wyjście 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".

Wyjście 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"

Dodatkowe informacje:

  • Nie mam glx-alternative-nvidiazainstalowanego pakietu.
  • Gdybym uruchomić z USB żywo obrazu Devuan ASCII, problem robi nie manifest.
  • Jeśli utworzę za xorg.confpomocą Xorg :1 -configure, to jest to, co produkuje (2 sekcje „Device”, jedna związana ze intelsterownikiem, druga z nouveau); ale jeśli skomentuję sekcję nouveau i spróbuję uruchomić Xorg z tą konfiguracją - nie załaduje się, mówiąc , że nie może znaleźć żadnych ekranów.

Rozwiązaniem było dla mnie usunięcie bumblebeei instalacja nvidia-bumblebee(na Debianie Jessie, przy użyciu pakietów gfx backports).
Skeen

Odpowiedzi:


8

Przybyłem tutaj po instalacji nvidia-currentz repozytorium pakietów i utknąłem w pętli logowania . Spojrzałem na logowanie ~/.xsession-errorsi znalazłem wspomniany błąd:

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

Już odinstalowałem nvidia-currenti problem nadal występuje. Ja również nie glx-alternative-nvidiazainstalowałem. W ostateczności po prostu odinstalowałem wszystko z nvidiamojego Ubuntu (w tym CUDA) i zadziałało po restarcie.


Przepraszam, że nie odpowiadałem na to wcześniej. Nie nvidia-currentzainstalowałem ani w rzeczywistości żadnego nvidia-pakietu. Ale mam zainstalowaną najnowszą wersję CUDA z dołączonym sterownikiem (instalator ręczny od NVIDIA). Wiem, że to brzydki sposób na robienie rzeczy, ale potrzebuję najnowszej wersji.
einpoklum

1

Najpierw określ, który moduł glx jest w użyciu:

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

W Debian 8 Jessie moim rozwiązaniem było usunięcie glx-alternative-nvidiapakietu. Więc po ponownym uruchomieniu:

$ 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
Dostaję tylko moduł funkcji X.Org na początek ... zobacz edycję.
einpoklum

1
Jak to usunąć? Nie ma go na moich apt-getpaczkach.
villasv

1
@VillasV musisz włączyć contribrepozytorium, aby go zobaczyć. Prawdopodobnie nawet nie masz go zainstalowanego, dlatego Twoja przyczyna braku błędu rozszerzenia glx jest inna.
svlasov

Drobny nitpick: dlaczego mówisz cat file | grep pattern? Dlaczego nie grep pattern file?
Timo,

@ Timo, tylko osobiste preferencje. W historii muszli łatwiej jest mi zobaczyć, jak wzór ewoluował, jeśli przetrwa jako ostatni.
svlasov

1

Rozwiązałem go, odinstalowując glx-alternative-nvidia

apt-get remove glx-alternative-nvidia

Nie mam nawet glx-alternative-nvidiazainstalowanego pakietu ...
einpoklum

1

Miałem problemy po aktualizacji Debiana 9 po kliknięciu przycisku ponownego uruchomienia w celu aktualizacji.

Podczas instalacji początkowo postępowałem zgodnie z instrukcjami podanymi na stronie https://wiki.debian.org/NvidiaGraphicsDrivers

Najważniejsze dla mnie były ...

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

Następnie wykonał restart


0

Zainstaluj OpenGL na swoim komputerze, a następnie, jak wspomniano tutaj , dodaj następujące elementy do /etc/X11/xorg.conf:

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

(Zamień nvidia-VERSIONna nazwę katalogu) To zadziałało dla mnie.


1
Nie mam pierwszego katalogu. W rzeczywistości nie mam nawet żadnego /etc/X11/xorg.confpowodu.
einpoklum

1
Możesz go stworzyć dla Ciebie zsudo nvidia-xconfig
Gabriel Fair

@GabrielFair: Absolutnie nie powinienem tego robić. To prawdopodobnie sprawi, że moja karta nVIDIA zostanie użyta dla X; a nawet jeśli nie, jest to koncepcyjnie nieodpowiednie.
einpoklum

0

Mam „brakujące” rozszerzenie „GLX”, gdy „zaktualizowałem” mojego debiana (8 -> 9). Rozwiązanie było dość proste.

Pobierz instalator sterownika na 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]

Po zakończeniu pracy instalatora GLX powrócił.

ps: Jeśli korzystasz z repozytoriów użytkowników, myślę, że dpkg-rekonfigurujący „nazwa_pakietu sterowników” zrobiłby to samo.


1
Jeśli się nie mylę, X sprawi, że użyje modułu nVIDIA GLX. To nie jest to, czego chcę, ponieważ nie używam mojego GPU do celów wyświetlania.
einpoklum
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.