32-битный OpenGL на 64-битной системе с драйвером NVIDIA

Материал из ALT Linux Wiki

Статья описывает настройку системы для запуска 32-битных OpenGL-программ на 64-битной операционной системе с драйвером NVIDIA без Optimus.


Подготовка системы

mkdir /etc/X11/lib/ /etc/X11/lib64/

Подключить репозиторий x86_64-i586 (для веток P5 и старше репозиторий x86_32)

mcedit /etc/apt/sources.list
apt-get update
apt-get install i586-libGL.32bit i586-libGLU.32bit

Для Wine

apt-get install i586-wine i586-libwine-gl


Установка драйвера

  • Выполнить команду
nvidia-install-driver
  • Для веток P6 и старше

Узнать разновидность ядра можно из вывода команды

uname -r

(например 3.12.25-std-def-alt1 означает, разновидность std-def (далее FLAVOR)) и выполнить команду

apt-get install kernel-modules-nvidia-FLAVOR


Установка 32-битных библиотек драйвера (только для веток P6 и старше)

Узнать текущую версию драйвера NVIDIA (далее NVVER)

cat /proc/driver/nvidia/version
  • Для ветки P6
apt-get install i586-nvidia_glx_NVVER
  • Для веток P5 и старше необходимо из соответствующего 32-битного пакета nvidia_glx_NVVER (репозиторий i586) скопировать вручную в систему все /usr/lib/* )


Завершение установки драйвера

Запустить (один раз после установки нового i586-nvidia_glx_XXXX):

x11presetdrv
/usr/libexec/X11/drv.d/nvidia
ldconfig


Подготовка конкретной 32-битной программы

Запускаем ее в эмуляторе терминала и смотрим ругань на недостающие библиотеки.

Доустанавливаем соответствующие i586-пакеты.

  В отдельных случаях ругань(или ее сокрытие) может быть даже при успешном запуске,
  если программа проверяет работоспособность подключаемых модулей в процессе своей работы.