Xlib: відсутнє розширення “GLX” - з NVIDIA-карткою та вбудованою графікою


17

У мене є машина з NVIDIA GeForce, яку я не використовую для цілей відображення (тобто монітор не підключений до неї), і деякий нестабільний вбудований графічний чіп. (Нижче ви знайдете відповідний lshwсписок.)

Мої X сесії працюють просто чудово; але коли працює більшість моїх додатків X (для яких потрібен будь-який фантазійний GFX або інструментарій), вони видають таке повідомлення про помилку:

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

Моє запитання: як я можу змусити мої програми помітити бібліотеку, яка не є NVIDIA GLX, і використовувати її (не виймаючи картку NVIDIA і, звичайно, не перемикаючи монітор на вихідні порти)?

Я використовую Debian / Linux Stretch 64bit, ядро ​​версії 4.2.6, з LXDE.

Вихід 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)

Вихід 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".

Вихід 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"

Додаткова інформація:

  • У мене не встановлений glx-alternative-nvidiaпакет.
  • Якщо я завантажуюся з USB-зображення Devuan ASCII в реальному зображенні, проблема не проявляється.
  • Якщо я створюю xorg.confкористування Xorg :1 -configure, це те, що він створює (2 розділи "Пристрій", один пов'язаний з intelдрайвером, інший з nouveau); але якщо я прокоментую розділ нуво і спробую запустити Xorg з такою конфігурацією - він не завантажиться, кажучи , що він не може знайти жодних екранів.

Для мене рішення було видалення bumblebeeта встановлення nvidia-bumblebee(на Debian Jessie, використовуючи backports gfx-пакети).
Skeen

Відповіді:


8

Я приїхав сюди після встановлення nvidia-currentз сховища пакетів і застряг на циклі входу . Я переглянув журнал ~/.xsession-errorsі виявив згадану помилку:

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

Я вже видалив nvidia-currentі проблема не зникала. Я також не glx-alternative-nvidiaвстановив. В крайньому випадку, я просто видалив усе, що було nvidiaна моєму Ubuntu (включаючи CUDA-матеріали), і це спрацювало після перезавантаження.


Вибачте, що раніше не відповідали на це. Я не nvidia-currentвстановив і, власне, жодного nvidia-пакета. Але в мене встановлений останній CUDA з супровідним драйвером (установник з Nvidia). Я знаю, що це некрасивий спосіб робити речі, але мені потрібна остання версія.
einpoklum

1

Спочатку визначте, який модуль glx використовується:

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

У Debian 8 Jessie моїм рішенням було видалити glx-alternative-nvidiaпакунок. Отже, після перезавантаження:

$ 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
Насправді я лише починаю з модуля фонтації X.Org для початку ... див. Редагувати
einpoklum

1
А як ви його видаляєте? Він не вказаний на моїх apt-getпакетах.
villasv

1
@VillasV вам потрібно включити contribсховище, щоб побачити його. І, ймовірно, ви навіть не встановили його, і тому ваша причина відсутності помилки розширення glx інша.
svlasov

Незначна ніпелька: чому ти кажеш cat file | grep pattern? Чому ні grep pattern file?
Тімо

@Timo, лише особисті переваги. В історії оболонок мені простіше бачити, як розвивалася модель, якщо вона триває останньою.
svlasov

1

Я вирішив це шляхом видалення glx-alternative-nvidia

apt-get remove glx-alternative-nvidia

У мене навіть glx-alternative-nvidiaпакет не встановлений ...
einpoklum

1

У мене виникли проблеми після оновлення Debian 9 після натискання кнопки перезавантаження для підказки оновлення.

При установці спочатку я дотримувався кроків, знайдених у вікі https://wiki.debian.org/NvidiaGraphicsDrivers

Для мене важливими були ...

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

Потім виконується перезавантаження


0

Встановіть OpenGL на свій комп’ютер, а потім, як згадувалося тут , додайте наступне до свого /etc/X11/xorg.conf:

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

(Замініть nvidia-VERSIONім'я вашого каталогу) Це працювало для мене.


1
У мене немає першого каталогу. Насправді я навіть /etc/X11/xorg.confчомусь не маю .
einpoklum

1
Ви можете створити його для васsudo nvidia-xconfig
Габріель Ярмарок

@GabrielFair: Я абсолютно не повинен цього робити. Можливо, це дозволить мою картку nVIDIA використовувати для X; і навіть якщо цього не буде - це концептуально недоречно.
einpoklum

0

Зрозуміло, що "розширення" GLX "відсутнє", коли я "дистрибутив модернізацію" свого debian (8 -> 9). Рішення було досить простим.

Завантажте інсталятор драйверів на 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]

Після того, як інсталятор зробив свою роботу, GLX повернувся назад.

ps: Якщо ви користуєтеся репост, я думаю, що переконфігурування dpkg "driver_package_name" зробить те саме.


1
Якщо я не помиляюся, це змусить X використовувати модуль nVIDIA GLX. Що не те, що я хочу, оскільки я не використовую свій графічний процесор для цілей відображення.
einpoklum
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.