Steam: kesalahan libGL: Tidak ditemukan fbConfigs atau visual yang cocok dengan kesalahan libGL: gagal memuat driver: swrast

37

Jika saya mengklik aplikasi desktop "Steam", tidak ada yang terjadi.

Running steamin terminal menghasilkan yang berikut:

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

Yang menarik adalah bahwa jika saya mengubah driver GPU saya ke xorg, itu berfungsi dengan baik.

Apa yang bisa saya lakukan untuk membuatnya bekerja? Itu berhenti bekerja setelah pembaruan uap terbaru (36 jam yang lalu).

Saya mencoba menghapus instalan nvidia - sudo apt-get remove nvidia*dan menginstal ulang driver, tetapi tidak berhasil.

cbll
sumber

Jawaban:

52

Ubuntu 16.04+ Bagi siapa pun yang masih mengalami kesalahan yang sama, jika Anda menggunakan driver nvidia, terkadang Anda akan melihat bahwa libGL.so.1 menunjuk ke libGL ambigu yang disediakan oleh mesa dan nvidia. Untuk menguji ini, Anda dapat menjalankan perintah ini

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

Outputnya kira-kira seperti:

    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

Sekarang saya hanya perlu menghapus perpustakaan yang disediakan oleh mesa dan semuanya bekerja dengan sempurna.

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

Pembaruan: Masalah ini tidak ada lagi dari Ubuntu 18.04 LTS.

Zobayer Hasan
sumber
11
Man, kamu layak mendapatkan kue yang sangat besar.
Aritz Lopez
2
Ini adalah jawaban yang benar
Colonder
2
pada debian 9, saya menghapus yang ini dan berhasil, tetapi tidak menyebutkan "mesa", namun, "dpkg -S libGL.so.1" berikan tip mana yang harus Anda hapus. Jadi: rm /usr/lib/i386-linux-gnu/libGL.so.1 Dan nikmati cookie Anda :)
FabricioFCarv
4
Masalah ini berlanjut pada 18.10
QkiZ
4
Setelah memperbarui Linux Mint dari 18 hingga 19 saya mengalami masalah ini. Saya harus menghapus /usr/lib/i386-linux-gnu/libGL.so.1 Terima kasih Zobayer Hasan atas bantuan Anda!
kayo
7

Subsistem Windows untuk Linux (WSL) memiliki kesalahan yang sama

Di Windows Subsystem untuk Linux (WSL) di bawah Windows 10 ada file /usr/lib/i386-linux-gnu/mesa/libGL.so.1tidak ada. Sebaliknya ada file yang /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1sepertinya menggantikannya. Namun jika Anda menghapus file pengganti perpustakaan tidak berfungsi sama sekali.

Ganti nama pustaka lalu ganti nama kembali memecahkan masalah

Jika Anda mengganti nama file dan kemudian mengganti nama kembali kesalahan hilang dan itu bekerja jauh lebih cepat:

───────────────────────────────────────────────────────────────────────────────
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$

Saya memverifikasi bahwa perubahannya persisten, yaitu menutup jendela terminal WSL dan membuka jendela baru.

Apa yang menggunakan perpustakaan?

Perpustakaan digunakan oleh yaddalam skrip bash kunci-layar-timer ditingkatkan dengan dukungan hybrid untuk WSL selain Ubuntu. Yad adalah persimpangan Zenityyang mengapa Anda melihat Gtk-Message:referensi mirip Zenity dalam pesan kesalahan ketiga di atas.

Beginilah bentuk yadjendelanya di Ubuntu (di WSL sedikit berbeda):

Timer Layar Kunci

WinEunuuchs2Unix
sumber
Ini tidak berhasil untuk saya - walaupun saya tidak menggunakan pengunci layar
Eric
lock-screen-timerhanyalah contoh dari skrip yang memanggil GUI. Anda bisa menggunakannya gedit.
WinEunuuchs2Unix
Tentu saya sadar. Maksud saya adalah aplikasi saya ( rqt) mungkin memanggil GUI dengan cara yang berbeda, yang mungkin mengapa masih gagal setelah mencoba memperbaiki Anda
Eric
Hm Bagi saya gnome-terminal melempar peringatan yang sama, tetapi bahkan tanpa mengganti nama apa pun, peringatan itu hilang ketika memulai instance kedua terminal gnome. Bukankah itu masalahnya mungkin untuk "solusi" Anda juga?
jan-glx
Ini tidak berhasil untuk saya juga
Tropilio
2

Ini mungkin masalah driver nvidia, menurut masalah steam-for-linux .

Dalam kasus saya, saya menginstal SuperTuxKart melalui flapak, ketika saya menjalankannya, saya menemukan kesalahan berikut:

..:: 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

Solusi saya adalah:

  1. Periksa driver nvidia di sistem saya

ubuntu-drivers devices

Sudah nvidia-driver-430diinstal.

  1. Menurut masalah masalah steam-for-linux , instal nvidia-driver-418untuk menggantinvidia-driver-430

sudo apt install libnvidia-gl-418

Itu diminta bahwa itu tidak bergantung libnvidia-compute-418, jadi instal libnvidia-compute-418dulu.

sudo apt install libnvidia-compute-418

kemudian

sudo apt install libnvidia-gl-418

  1. Sistem boot ulang.

Lalu saya menjalankan SuperTuxKart , itu berhasil.

Yong Yang
sumber