Почему мои 32-битные библиотеки OpenGL указывают на mesa вместо nvidia, и как мне это исправить?

Я установил драйверы Nvidia в свою систему Ubuntu 13, но в соответствии с этой командой (ldconfig -p | grep GL):

$ ldconfig -p | grep GL
    libQtOpenGL.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
    libGLU.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLU.so.1
    libGLEWmx.so.1.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.8
    libGLEW.so.1.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLEW.so.1.8
    libGLESv2.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so
    libEGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1

32-битная версия OpenGL указывает на библиотеки mesa вместо nvidia. Это приводит к тому, что мои игры в Steam отказываются запускаться с ошибкой:

Не удалось найти необходимую точку входа OpenGL 'glGetError'! Либо ваша видеокарта не поддерживается, либо необходимо обновить драйвер OpenGL.

Почему это так? Когда установщик nvidia спросил меня, хочу ли я установить «32-битные библиотеки совместимости» (или что-то в этом роде), я выбрал «да». Как мне это исправить?


Редактировать:

Я только что переустановил тот же драйвер Nvidia, который, очевидно, полностью удалил 32-битный драйвер OpenGL:

$ ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so

Теперь Steam не запускается:

Вам не хватает следующих 32-битных библиотек, и Steam может не работать: libGL.so.1

Опять я выбрал ДА , когда установщик спросил меня, хочу ли я установить 32-битные библиотеки. Почему они не установлены!?

4
задан 27 June 2013 в 06:13

3 ответа

Когда я переустанавливал драйверы Nvidia, все драйверы Mesa OpenGL были удалены из кеша библиотеки. Мой библиотечный кеш выглядел так:

$ ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so

Нет 32-битных драйверов! К счастью, после быстрого поиска я нашел 32-битные драйверы Nvidia в /usr/lib32. Я добавил этот путь к файлу в /etc/ld.so.conf.d/ (любой файл подойдет, вы даже можете создать новый файл) и запустил sudo ldconfig. Мой кеш теперь выглядит так:

$ ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib32/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so
    libGL.so (libc6) => /usr/lib32/libGL.so

И Steam работает отлично!

0
ответ дан 27 June 2013 в 06:13

Codemonkey Correct. Все, что вам нужно сделать, это добавить 32-битный драйвер nvidia и удалить драйвер mesa.

cd /etc/ld.so.conf.d/

ls

найти имя файла с "i386"

, у меня есть "i386-linux-gnu_GL.conf"

, затем я пишу,

sudo gedit i386-linux-gnu_GL.conf 

затем добавьте путь 32-битного драйвера, используя gedit.
мой "/usr/lib32/".

Если вы не можете найти местоположение вашего 32-битного драйвера, просто найдите его.

Сохранить. Откройте терминал и введите:

sudo ldconfig

My Half-Life2 отлично работает после этого. : D

0
ответ дан 27 June 2013 в 06:13

Вариант 1: Попробуйте запустить sudo ldconfig в терминале. Перезагрузитесь и попробуйте.

Вариант 2: Если это не сортирует, вам придется вручную добавить каталог библиотек NVidia (/ usr / lib32) в файл конфигурации ldconfig (/etc/ld.so). .conf.d / libc.conf), а затем повторно запустите ldconfig (от имени пользователя root)

РЕДАКТИРОВАТЬ: перед копированием я сделал бы копию libc.conf.

0
ответ дан 27 June 2013 в 06:13

Другие вопросы по тегам:

Похожие вопросы: