Почему мои 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-битные библиотеки совместимости» (или что-то в этом роде), я выбрал «да». Как это исправить?

Edit:

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

$ 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 не запускается:

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

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

1
задан 27 June 2013 в 07:13

2 ответа

Когда я переустановил драйверы 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 работает отлично!

1
ответ дан 24 May 2018 в 20:37
  • 1
    Могу ли я спросить, почему мой ответ был отклонен? – Hubro 28 October 2013 в 14:04

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

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

ls

найти имя файла с «i386»

mine «i386-linux-gnu_GL.conf»

, тогда я пишу

sudo gedit i386-linux-gnu_GL.conf 

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

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

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

sudo ldconfig

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

D
0
ответ дан 24 May 2018 в 20:37

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

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