Steam: ข้อผิดพลาด libGL: ไม่พบ fbConfigs หรือภาพที่ตรงกันข้อผิดพลาด libGL: ไม่สามารถโหลดไดรเวอร์: ความคมชัด


37

หากฉันคลิกแอปเดสก์ท็อปของ "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*และติดตั้งไดรเวอร์อีกครั้ง แต่ไม่มีโชค

คำตอบ:


52

Ubuntu 16.04+ สำหรับทุกคนที่ยังคงได้รับข้อผิดพลาดเดียวกันถ้าคุณใช้ไดรเวอร์ nvidia บางครั้งคุณจะเห็นว่า libGL.so.1 ชี้ไปที่ libGL ที่ไม่ชัดเจนซึ่งจัดทำโดยทั้ง mesa และ nvidia เพื่อทดสอบสิ่งนี้คุณสามารถเรียกใช้คำสั่งนี้

$ 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 อีกต่อไป


11
ผู้ชายคุณสมควรได้รับคุกกี้ขนาดใหญ่
Aritz Lopez

2
นี่คือคำตอบที่ถูกต้อง
Colonder

2
ในเดเบียน 9 ฉันลบสิ่งนี้ออกแล้วใช้งานได้ แต่ไม่พูดถึง "mesa" อย่างไรก็ตาม "dpkg -S libGL.so.1" ให้คำแนะนำที่คุณควรลบ ดังนั้น: rm /usr/lib/i386-linux-gnu/libGL.so.1 และสนุกกับคุกกี้ของคุณ :)
FabricioFCarv

4
ปัญหานี้ยังคงมีอยู่ในวันที่ 18.10
QkiZ

4
หลังจากอัปเดต Linux Mint จาก 18 เป็น 19 ฉันมีปัญหานี้ ฉันต้องลบ /usr/lib/i386-linux-gnu/libGL.so.1 ขอบคุณ Zobayer Hasan สำหรับความช่วยเหลือของคุณ!
kayo

7

Windows Subsystem สำหรับ Linux (WSL) มีข้อผิดพลาดเดียวกัน

ใน Windows Subsystem สำหรับ Linux (WSL) ภายใต้ Windows 10 /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 (Microsoft@Microsoft.com) (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 (Microsoft@Microsoft.com) (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 (Microsoft@Microsoft.com) (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 และเปิดหน้าต่างใหม่

ใช้ห้องสมุดอะไร

ไลบรารีถูกใช้โดยyadในสคริปต์ทุบตีหน้าจอล็อคจับเวลาที่อัปเกรดด้วยการสนับสนุนแบบไฮบริดสำหรับ WSL นอกเหนือจาก Ubuntu Yad เป็นทางแยกZenityซึ่งเป็นสาเหตุให้คุณเห็นการGtk-Message:อ้างอิงที่เหมือน Zenity ในข้อความแสดงข้อผิดพลาดที่สามด้านบน

นี่คือyadลักษณะที่ปรากฏใน Ubuntu (ใน WSL มันแตกต่างกันเล็กน้อย):

ล็อคหน้าจอจับเวลา


สิ่งนี้ไม่ได้ผลสำหรับฉัน - แม้ว่าฉันจะไม่ได้ใช้ตัวจับเวลาหน้าจอล็อค
Eric

lock-screen-timerเป็นเพียงตัวอย่างของสคริปต์ที่เรียกใช้ GUI geditคุณสามารถใช้
WinEunuuchs2Unix

แน่นอนฉันรู้ ประเด็นของฉันคือแอปพลิเคชันของฉัน ( rqt) อาจเรียกใช้ GUI ในวิธีที่แตกต่างกันซึ่งอาจเป็นสาเหตุว่าทำไมมันยังคงล้มเหลวหลังจากลองแก้ไขปัญหาของคุณ
Eric

ฮึ่ม สำหรับฉัน gnome-terminal พ่นคำเตือนเดียวกัน แต่แม้จะไม่ได้เปลี่ยนอะไรเลยคำเตือนจะหายไปเมื่อเริ่มต้นอินสแตนซ์ที่สองของ gnome-terminal นั่นไม่ใช่กรณีที่อาจเป็น "โซลูชัน" ของคุณด้วยใช่ไหม
jan-glx

สิ่งนี้ไม่ได้ผลสำหรับฉันเช่นกัน
Francesco Boccardo

2

นี้อาจจะเป็นปัญหาไดรเวอร์ NVIDIA ตามปัญหาอบไอน้ำสำหรับลินุกซ์

ในกรณีของฉันฉันติดตั้งSuperTuxKartผ่าน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ติดตั้ง 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มันใช้งานได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.