Tengo problemas al compilar el proyecto SFML (no veo ningún gráfico):
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Este error puede resolverse simplemente reinstalando nvidia-drivers a través de este tutorial: https://askubuntu.com/a/451248/341889
... pero cuando recibo nuevas actualizaciones, este error regresa; (¿Qué debo hacer? No es la solución, no usar la actualización del sistema ...
PD y sí, guardé todos los cambios después de instalar nvidia-drivers
libGL.so
:LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa ./glprogram
. Por defecto, mi Ubuntu 16.04 usa/usr/lib/nvidia-361/libGL.so
debido/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf
y todo funciona bien.Respuestas:
La
swrast
cosa es el procesador de software. Eso significa que no está encontrando el controlador de hardware para su tarjeta gráfica. Hay un montón de bibliotecas libGL instaladas y un montón de enlaces simbólicos a esas bibliotecas. Para ver esto, ejecute esto desde el shell:Ahora, la causa probable de su problema es que la instalación de controladores de gráficos a veces rompe estos enlaces simbólicos. (
/usr/local/lib/libGL.so.1.2.0
Es probable que sea específicamente la lib incorrecta o un enlace simbólico al enlace incorrecto).Para determinar qué biblioteca están tratando de ejecutar los programas OpenGL, puede activar un poco de verbosidad y ejecutar un simple programa OpenGL. Puede verificar esto utilizando el programa de prueba estándar OpenGL:
Esperemos que eso falle de la misma manera que SFML. Con
LIBGL_DEBUG
él debería decirte qué biblioteca de OpenGL está tratando de cargar. Además, la/usr/local/lib/libGL.so.1.2.0
biblioteca que intentará cargar seguramente será (Edición: esta era la biblioteca estándar de OpenGL en mi máquina en el momento en que respondí esto. Bien podría ser alguna otra versión en su máquina ahora).Entonces, la solución (en este caso) es asegurarse de que
/usr/local/lib/libGL.so.1.2.0
sea un enlace simbólico que apunte a la biblioteca de OpenGL correcta. En mi caso tengo el controlador Nvidia 3.40, así que ejecuté:Pero querrá apuntarlo a la biblioteca OpenGL que sea apropiada para usted (enumerada en el primer comando de búsqueda).
En resumen: la instalación de controladores de gráficos (propietarios) puede romper los enlaces simbólicos utilizados para las bibliotecas OpenGL. Para resolver este problema, arregle manualmente los enlaces simbólicos (arregle
/usr/local/lib/libGL.so.1.2.0
primero).fuente
Tuve el mismo problema en Ubuntu 16.10 con los
nvidia-340
controladores y ninguna de las soluciones aquí funcionó para mí.Resulta que las bibliotecas de 32 bits no estaban en la ruta de la biblioteca.
Este trazador de líneas funcionó para mí:
fuente
Estaba teniendo problemas para obtener el enlace simbólico correcto para apuntar al controlador nVidia y encontré otra forma que funciona para mí.
Se describe aquí .
Y enumera cómo instalar el controlador nVidia a través de PPA, que está disponible para 349.16, la última versión.
Primero desinstale cualquier controlador nVidia instalado actualmente abriendo una ventana de terminal ( Ctrl+ ALT+ T) y escribiendo
Reinicie su sistema
Luego abra otra terminal y escriba lo siguiente
Luego reinicie nuevamente
Lo probé después de perderme con los enlaces simbólicos y steam funcionó bien inmediatamente después de instalar el controlador y nuevamente funcionó después de haber tenido más de 400 megas de actualizaciones del sistema.
fuente
Para proporcionar una alternativa a la respuesta de Adrian: si prefiere usar controladores propietarios directamente de NVIDIA en lugar de los que se encuentran en un PPA, la instalación (o en mi caso, la reinstalación) del último controlador propietario puede ayudar a eliminar el error de la ráfaga.
Si aún no tiene el controlador NVIDIA, descárguelo del sitio web de NVIDIA . A continuación, cambie a tty (
ctrl
+alt
+F1
) y apague su administrador de inicio de sesión:Si usa lightdm,
$ sudo service lightdm stop
Si usa gdm,
$ sudo service gdm stop
Navegue hasta el script de instalación y ejecútelo, y siga las indicaciones. No se preocupe si falla el script de preinstalación. Siempre acepto registrar DKMS y las bibliotecas de compatibilidad de 32 bits. Después de instalar el controlador, reinicie su máquina:
Si ya tiene un script de instalación de un controlador NVIDIA anterior, simplemente ejecute el script de instalación del controlador NVIDIA como se indicó anteriormente, pero con la opción "--update":
Esto le proporcionará la versión más actualizada del controlador.
Hacer esto solucionó mi
libGL error: failed to load driver: swrast
error.fuente
Tengo el mismo problema en ubuntu 18. Esto sucedió básicamente solo con aplicaciones de 32 bits. Así que mi idea era instalar 32bit nvidia algo, ya que mi carpeta / usr / lib / i386-linux-gnu / estaba sospechosamente vacía.
Después de muy pocos intentos, esto solucionó mi problema con el vapor y el vino que no comenzaba:
(y cambie 418 a la versión que tenga)
Es interesante que las aplicaciones no se quejen de las dependencias faltantes durante la instalación.
fuente
Tengo que admitir que no estoy seguro de por qué esto funciona para mí, pero lo hizo. En este caso particular, "arreglar" las entradas ld.so.conf.d agregando una nueva entrada como esta funciona:
Esto tiene sentido, hasta que ejecute lo siguiente
find
:¿Por qué tener las mismas entradas por triplicado funciona, pero no por duplicado, no tengo idea!
fuente
Aquí hay una
apt
solución única que funcionó para mí, sin simbología ni manipulaciónld.so.conf.d
:fuente
Solo uso esta línea:
y funciona.
Porque veo esa entrada cuando ejecuto
sudo ldconfig -p | grep -i gl.so
:fuente
Solo ejecuta esto:
La versión de su controlador se muestra en nvidia-settings.
fuente
En mi caso, la solución a este problema residía en la continuación del mensaje de error
El párrafo 5.7.0 me informó que:
El mensaje
Ha sido clave. Ejecuté 'glxgears' para verificar que las bibliotecas de gráficos funcionaban bien, vea también
man glxgears
, mostrando esta animación:Entonces mi solución fue simplemente establecer la variable de entorno
Tomar nota:
locate libGL.so
, encuentro otro candidato/usr/lib/i386-linux-gnu/libGL.so
. Sin embargo, establecer esto como LD_PRELOAD no solucionó el problema;locate libGLEW.so
Estoy en deuda con https://github.com/openai/mujoco-py/issues/44 por pistas
fuente
Me estaba enfrentando a este extraño problema cuando ssh a mi Ubuntu VM desde mi Macbook Pro, pero la instalación del siguiente controlador Nvidia en mi Ubuntu 16.04 solucionó el problema. Espero que esto funcione para usted.
sudo apt-get install nvidia-331
fuente