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); но если я закомментирую раздел nouveau и попробую запустить Xorg с этой конфигурацией - он не загрузится, сказав , что не может найти никаких экранов.

Решением для меня было удаление bumblebeeи установка nvidia-bumblebee(в Debian Jessie, используя пакеты backports gfx).
Скин

Ответы:


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?
Тимо

@ Тимо, просто личное предпочтение. В истории оболочки мне легче увидеть, как развивался паттерн, если он будет последним.
Свласов

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-перенастроить "имя_пакета_драйвера" сделает то же самое.


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