agung@agung-K43SJ:~$ steam
Running Steam on ubuntu 15.04 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(0)
libGL error: unable to load driver: nouveau_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: nouveau
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
Antes de eso, también intenté instalar Steam desde la Terminal, pero no se inició después de haber descargado la actualización.
¿Alguien puede ayudarme a encontrar una solución para instalar Steam?
Respuesta1
Version corta:
Inicie Steam en la terminal usando:
LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam
en lugar de solosteam
Versión larga:
Steam no puede abrir nouveau_dri.so
, la biblioteca compartida responsable de comunicarse con el controlador de gráficos. Para comprobar si el controlador está habilitado para OpenGL, ejecute:
DISPLAY=:0 glxinfo | grep -i direct
La salida debería ser:
direct rendering: Yes
Ejecutando Steam en modo de depuración:
DISPLAY=:0 LIBGL_DEBUG=verbose steam
Nos da el resultado donde las siguientes líneas nos dan una pista:
libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri/nouveau_dri.so
libGL: dlopen /usr/lib/i386-linux-gnu/dri/nouveau_dri.so failed (/home/user/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/lib/i386-linux-gnu/dri/nouveau_dri.so))
Parece que Steam usa una versión diferente de libstdc++.so.6
. Comprobemos qué versión utiliza Steam:
ls -l ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
lrwxrwxrwx 1 user user 19 Jul 18 2014 /home/user/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6 -> libstdc++.so.6.0.18
Entonces Steam cargó LibC6 con ABI versión 18 donde el controlador espera la versión 20. La solución es decirle al sistema operativo que precargue la versión adecuada de LibC6 usando
LD_PRELOAD
la variable:
LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam
El parámetro $LIB, algo poco intuitivo, se expande en ld.so a la ruta correcta según la plataforma del proceso que se inicia (man 8 ld.so para más detalles).
Puede crear un script con el siguiente contenido para ejecutarlo en lugar de steam
:
#!/bin/bash
# Export so all child processes are affected as well
export LD_PRELOAD='/usr/$LIB/libstdc++.so.6'
export DISPLAY=:0
#export LIBGL_DEBUG=verbose
steam
Un script mejor podría verificar si la versión global de LibC6 es más nueva que la de STEAM_RUNTIME
y solo entonces LD_PRELOAD
.
Se pueden encontrar más detalles enaquí. Tenga en cuenta que lo probé en Debian y ahora se probó en Ubuntu vivid 15.04 y funciona bien.
Respuesta2
Aquí encontré otra solución que me ayudó a iniciar el cliente Steam:
https://wiki.archlinux.org/index.php/Steam/Troubleshooting
Ejecuté este comando -
find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" -o -name "libgpg-error.so*" \) -print -delete
y ahora se lanza Steam sin precargas adicionales. Espero que esto ayude a todos los que tienen el mismo problema en Ubuntu 16.04.
Respuesta3
Quizás las gcc
bibliotecas en el tiempo de ejecución de Steam sean incompatibles con sus mesa
controladores.Haga una copia de seguridad de su carpeta de inicio, luego intente eliminar estos archivos de biblioteca:
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1
Respuesta4
Aparentemente este error ocurre cuando uno intenta instalar Steam en un64 bitsUbuntu 15.04.
Hice una nueva instalación de Ubuntu 15.04 en mi máquina. También instalé los controladores de gráficos propietarios de NVIDIA.
Recibí este error, pero después de mirar detenidamente noté que Steam es una aplicación de 32 bits, así que instalé algunas bibliotecas de 32 bits y reinstalé el controlador NVIDIA paraVaporpudo lanzar.
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
sudo ./NVIDIA-Linux-x86_64-352.63.run
Donde el último comando debería ser el instalador de su controlador.
Cuando el instalador del controlador solicite instalar bibliotecas de 32 bits, presione sí.