web-dev-qa-db-ja.com

Steam:libGLエラー:一致するfbConfigsまたはビジュアルが見つかりませんlibGLエラー:ドライバーの読み込みに失敗しました:swrast

「Steam」のデスクトップアプリをクリックしても、何も起こりません。

ターミナルでSteamを実行すると、以下が生成されます。

Steam_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(Steam)/version(1474415843)
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

おもしろいのは、GPUドライバーをxorgに変更すると、完全に機能することです。

動作させるにはどうすればよいですか?最新のSteamアップデート(36時間前)の後に動作しなくなりました。

Nvidia-Sudo apt-get remove nvidia*をアンインストールして、ドライバーを再インストールしようとしましたが、うまくいきませんでした。

34
cbll

buntu 16.04 +それでも同じエラーが発生する場合、nvidiaドライバーを使用していると、libGL.so.1がmesaとnvidiaの両方によって提供されるあいまいなlibGLを指すことがあります。これをテストするには、このコマンドを実行できます

$ Sudo ldconfig -p | grep -i gl.so

出力は次のようなものでした:

    libwayland-egl.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1
    libftgl.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libftgl.so.2
    libcogl.so.20 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcogl.so.20
    libQt5OpenGL.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5
    libQtOpenGL.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
    libQtOpenGL.so.4 (libc6) => /usr/lib/i386-linux-gnu/libQtOpenGL.so.4
    libOpenGL.so.0 (libc6,x86-64) => /usr/lib/nvidia-378/libOpenGL.so.0
    libOpenGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libOpenGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-378/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib32/nvidia-378/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libGL.so
    libGL.so (libc6) => /usr/lib32/nvidia-378/libGL.so
    libEGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-378/libEGL.so.1
    libEGL.so.1 (libc6) => /usr/lib32/nvidia-378/libEGL.so.1
    libEGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libEGL.so
    libEGL.so (libc6) => /usr/lib32/nvidia-378/libEGL.so

今、mesaが提供するライブラリを削除するだけで、すべてが完全に機能しました。

$ Sudo rm /usr/lib/i386-linux-gnu/mesa/libGL.so.1

更新:この問題は、Ubuntu 18.04 LTSでは存在しなくなりました。

50
Zobayer Hasan

Windowsサブシステムfor Linux(WSL)にも同じエラーがあります

Windows 10のWindowsサブシステムfor Linux(WSL)では、/usr/lib/i386-linux-gnu/mesa/libGL.so.1ファイルは存在しません。代わりに、/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1というファイルが存在します。ただし、置換ファイルを削除すると、ライブラリはまったく機能しません。

ライブラリの名前を変更してから名前を変更して、問題を解決します

ファイルの名前を変更してから元の名前に戻すと、エラーが消え、はるかに高速に動作します。

───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$ lock-screen-timer
Linux version 4.4.0-43-Microsoft ([email protected]) (gcc version 5.4.0 (GCC) ) #1-Microsoft Wed Dec 31 14:42:53 PST 2014
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$ Sudo ldconfig -p | grep -i gl.so
        libwayland-egl.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1
        libcogl.so.20 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcogl.so.20
        libQt5OpenGL.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5
        libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
        libEGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1
───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$ Sudo rm /usr/lib/i386-linux-gnu/mesa/libGL.so.1
rm: cannot remove '/usr/lib/i386-linux-gnu/mesa/libGL.so.1': No such file or directory
───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$ Sudo mv /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.ORIGINAL
───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$ lock-screen-timer
Linux version 4.4.0-43-Microsoft ([email protected]) (gcc version 5.4.0 (GCC) ) #1-Microsoft Wed Dec 31 14:42:53 PST 2014
/usr/bin/zenity: error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory
───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$ Sudo mv /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.ORIGINAL /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$ lock-screen-timer
Linux version 4.4.0-43-Microsoft ([email protected]) (gcc version 5.4.0 (GCC) ) #1-Microsoft Wed Dec 31 14:42:53 PST 2014
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
───────────────────────────────────────────────────────────────────────────────
rick@alien:/mnt/e/etc$

変更が永続的であること、つまり、WSLターミナルウィンドウを閉じて新しいウィンドウを開くことを確認しました。

ライブラリを使用しているのは何ですか?

ライブラリは、Ubuntuに加えてWSLのハイブリッドサポートでアップグレードされた lock-screen-timer bashスクリプトのyadによって使用されます。 YadはZenityの分岐であるため、上記の3番目のエラーメッセージにZenityのようなGtk-Message:参照が表示されます。

Ubuntuでのyadウィンドウの外観は次のとおりです(WSLでは若干異なります)。

Lock Screen Timer

7

Steam-for-linuxの問題 によると、これはnvidiaドライバーの問題である可能性があります。

私の場合、 SuperTuxKart through flapakをインストールしました。実行すると、次のエラーが発生しました。

..:: Antarctica Rendering Engine 2.0 ::..
Linux 4.15.0-52-generic #56-Ubuntu SMP Tue Jun 4 22:49:08 UTC 2019 x86_64
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

私の解決策は次のとおりです。

  1. システム上のnvidiaドライバーを確認してください

ubuntu-drivers devices

nvidia-driver-430が既にインストールされています。

  1. Steam-for-linux issue issueに従って、nvidia-driver-418をインストールしてnvidia-driver-430を置き換えます

Sudo apt install libnvidia-gl-418

libnvidia-compute-418の依存関係がないことを促したので、最初にlibnvidia-compute-418をインストールしてください。

Sudo apt install libnvidia-compute-418

それから

Sudo apt install libnvidia-gl-418

  1. 再起動システム。

それから SuperTuxKart を実行しました。

1
Yong Yang