Расширение OpenGL GLX не поддерживается

Я установил OpenGL и freeglut в Ubuntu 10.04, и он отлично работал в 10.04 и 10.10. Но после того, как я обновился до 11.04, приложения, разработанные с использованием OpenGL, работают неправильно. Они компилируются без ошибок, но когда я пытаюсь их выполнить, я получаю ошибки:

Для GLUT:

Xlib:  extension "GLX" missing on display ":0.0".
freeglut (./a.out): OpenGL GLX extension not supported by display ':0.0'

Только для OpenGL:

Xlib:  extension "GLX" missing on display ":0.0".
main: X server has no OpenGL GLX extension

Несколько вещей, которые я пробовал:

$glxgears
Xlib:  extension "GLX" missing on display ":0.0".
Error: couldn't get an RGB, Double-buffered visual


$glxinfo
name of display: :0.0
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Error: couldn't find RGB GLX visual or fbconfig

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

Изменить: Маловероятно, что это связано с тем, что у меня нет графических драйверов, поскольку все, что у меня есть, это графическая плата.

Это моя системная графическая информация из sysinfo

$sysinfo
GRAPHIC CARD
      VGA controller
    Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07) (prog-if 00 [VGA controller])
    Subsystem: Toshiba America Info Systems Device ff50

Изменить 2: И, похоже, у меня установлен драйвер для этого.

$lshw -C display
  *-display:0             
       description: VGA compatible controller
       product: Mobile 4 Series Chipset Integrated Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: [email protected]:00:02.0
       version: 07
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:44 memory:f4000000-f43fffff memory:d0000000-dfffffff ioport:1800(size=8)

Посмотрите на "configuration: driver ="

Ответ 1

Эти сообщения просто говорят вам, что ваши графические драйверы установлены неправильно. GLX - это расширение протокола X11 для работы OpenGL в окнах X11. В системе с поддержкой GLX имеется 3 части:

  • Модуль ядра, говорящий с GPU (это либо DRM с Linux-Kernel, либо fglrx ATI/AMD или nvidia от NVidia).
  • Модуль расширения GL X-сервера, разговаривающий с модулем ядра, преобразующий операции OpenGL в команды специфического графического процессора.
  • Клиентская сторона libGL.so, которая также реализует протокол GLX. Там находится libGL на основе DRI2 от Mesa и собственный libGL.so либо ATI/AMD, либо NVidia.

Для правильной работы OpenGL эти три компонента должны быть правильно установлены и загружены для работы в гармонии. Если это не так, вы не сможете использовать OpenGL (или используйте только растеризатор программного обеспечения, который неправильно установлен в вашей системе).

Ответ 2

Вам может понадобиться Шмель. Но это поддерживается только для 12.04 и с 13.10 до. Официальные инструкции здесь: https://wiki.ubuntu.com/Bumblebee

Вам нужно открыть терминал и ввести команды ниже.

Если в 12.04.3 замените linux-headers-generic на linux-headers-generic-lts-raring.

sudo add-apt-repository ppa:bumblebee/stable

Включить репозитории Universe и Multiverse (для пакетов bumblebee и nvidia соответственно).

sudo apt-get update

Установите Bumblebee, используя собственный драйвер nvidia по умолчанию:

sudo apt-get install bumblebee bumblebee-nvidia linux-headers-generic

Перезагрузка

Теперь все должно быть хорошо.