Pertanyaan Masalah dengan libGl, fbConfigs, swrast melalui setiap pembaruan?


Saya memiliki masalah ketika mengkompilasi proyek SFML (tidak melihat grafik apa pun):

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

Kesalahan ini dapat diatasi dengan menginstal ulang nvidia-driver sederhana melalui tutorial ini: https://askubuntu.com/a/451248/341889

..tapi ketika saya mendapat pembaruan baru - kesalahan ini kembali; (Apa yang harus saya lakukan? Ini bukan solusinya - tidak menggunakan pembaruan sistem ...

P.S. dan ya, saya menyimpan semua perubahan setelah menginstal nvidia-drivers


28
2017-10-25 09:29


asal


Ini terjadi pada saya jika saya mencoba meluncurkan OpenGL yang dapat dijalankan secara dinamis memuat mesa libGL.so: LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa ./glprogram. Secara default, Ubuntu 16.04 saya menggunakan /usr/lib/nvidia-361/libGL.so karena /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf dan semuanya berfungsi dengan baik. - Ciro Santilli 新疆改造中心 六四事件 法轮功


Jawaban:


Itu swrast hal adalah perender perangkat lunak. Itu berarti tidak menemukan driver perangkat keras untuk kartu grafis Anda. Ada banyak libraries libraries yang diinstal dan banyak link simbolik ke librari tersebut. Untuk melihat ini jalankan ini dari shell:

find /usr -iname "*libGL.so*" -exec ls -l -- {} + 

Sekarang kemungkinan penyebab masalah Anda adalah menginstal driver grafis terkadang memecah tautan simbolik ini. (Secara khusus /usr/local/lib/libGL.so.1.2.0 kemungkinan merupakan salah lib atau tautan sym ke tautan yang salah).

Untuk mencari tahu apa perpustakaan program OpenGL mencoba untuk menjalankan Anda dapat mengaktifkan sedikit verbositas dan menjalankan program OpenGL sederhana. Anda dapat memverifikasi ini menggunakan program uji standar OpenGL:

LIBGL_DEBUG=verbose glxgears

Semoga itu akan gagal dengan cara yang sama seperti SFML. Dengan LIBGL_DEBUG ia harus memberi tahu Anda apa yang perpustakaan OpenGL coba muat. Selanjutnya lib yang akan di-load akan hampir pasti akan terjadi /usr/local/lib/libGL.so.1.2.0 (Edit: Ini adalah perpustakaan OpenGL standar pada mesin saya pada saat saya menjawab ini. Mungkin ada beberapa versi lain pada komputer Anda sekarang).

Jadi solusinya (dalam hal ini) adalah untuk memastikan itu /usr/local/lib/libGL.so.1.2.0 adalah tautan simbolis yang menunjuk pada pustaka OpenGL kanan. Dalam kasus saya, saya memiliki driver Nvidia 3.40 jadi saya berlari:

ln -s /usr/lib/nvidia-340/libGL.so.1 /usr/local/lib/libGL.so.1.2.0

Tetapi Anda harus mengarahkannya ke lib OpenGL yang sesuai untuk Anda (tercantum di perintah find pertama).

Singkatnya: menginstal (proprietary) driver grafis dapat memutuskan tautan simbolik yang digunakan untuk lib OpenGL. Untuk mengatasi masalah ini secara manual memperbaiki tautan simbolik (perbaiki /usr/local/lib/libGL.so.1.2.0 pertama).


22
2017-12-29 08:40



Masalah ini membantu saya memahami pesan kesalahan, tetapi tidak memperbaikinya. Jawaban "instal ulang driver nvidia" membantu adalah pelengkap yang baik karena benar-benar memperbaiki masalah bagi saya. - henko
@henko ya menginstal ulang driver nvidia mungkin adalah cara tercepat dan termudah untuk menyelesaikan masalah ini. Jatuh kembali ke pendekatan ini jika karena alasan apa pun menginstal ulang driver tidak memperbaiki masalah Anda dan Anda perlu mengotori tangan Anda. - demented hedgehog
Saya mengerti setiap bagian, kecuali "hampir pasti menjadi /usr/local/lib/libGL.so.1.2.0". Tambang menunjukkan "libGL: OpenDriver: mencoba /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so libGL: OpenDriver: mencoba /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so" dan semua file ini ada di sistem saya ... - Samuel Li
Saya hanya mengatakan bahwa itu adalah masalah pada mesin saya (dengan os Ubuntu yang diperbarui). Jadi pada saat itu yang kemungkinan adalah versi lib OpenGL saat ini. Hari-hari ini mungkin memiliki beberapa versi lain meskipun saya masih menunjuk pada 1.2.0 pada mesin baru. - demented hedgehog
Terima kasih sekali lagi atas penjelasan Anda; Saya mengerti lebih baik tentang masalah ini. Saya juga ingin menunjukkan bahwa dalam kasus saya, ada konfirmasi bug di ubuntu swrast.so, dan orang-orang telah berdiskusi saya t. - Samuel Li


Saya mengalami masalah mendapatkan symlink yang benar untuk menunjuk pada driver nVidia dan saya menemukan cara lain yang cocok untuk saya.

Ini diuraikan sini.

Dan daftar tentang cara menginstal driver nVidia melalui PPA yang tersedia untuk 349,16, versi terbaru.

Pertama uninstall driver nVidia yang saat ini diinstal dengan membuka jendela terminal (Ctrl + ALT + T) dan mengetik

sudo apt-get remove nvidia*

Reboot sistem Anda

Kemudian buka terminal lain dan ketik yang berikut

sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install nvidia-349 nvidia-settings
sudo add-apt-repository -r ppa:xorg-edgers/ppa

Kemudian reboot lagi

Saya mencobanya setelah tersesat dengan symlink dan steam bekerja dengan baik segera setelah menginstal driver dan lagi itu masih berfungsi setelah saya memiliki 400+ MB pembaruan sistem.


4
2018-05-21 13:28



Saya tidak akan menyarankan untuk meninggalkan ppa xorg-edgers setelah driver diinstal. Banyak paket yang tidak stabil akan muncul dalam pembaruan. - Pilot6
hanya melepas nvidia * sudah memecahkan masalah ini untuk saya! - xtofl


Saya memiliki masalah yang sama pada Ubuntu 16.10 dengan nvidia-340 driver dan tidak ada solusi di sini yang berhasil untuk saya.

Ternyata pustaka 32-bit tidak ada di jalur perpustakaan.

Liner satu ini bekerja untuk saya:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-340"

4
2018-04-08 21:14





Untuk memberikan alternatif untuk jawaban Adrian: jika Anda lebih suka menggunakan driver proprietary yang bersumber langsung dari NVIDIA daripada yang ditemukan dalam PPA, menginstal (atau dalam kasus saya, menginstal ulang) driver eksklusif terbaru dapat membantu menghilangkan kesalahan swrast.

Jika Anda belum memiliki driver NVIDIA, unduh driver dari Situs web NVIDIA. Selanjutnya, beralih ke tty (ctrl+alt+F1) dan matikan login manager Anda:

Jika menggunakan lightdm, $ sudo service lightdm stop

Jika menggunakan gdm, $ sudo service gdm stop

Arahkan ke skrip pemasangan dan jalankan, dan ikuti petunjuknya. Jangan khawatir jika skrip pra-pemasangan gagal. Saya selalu menerima pendaftaran DKMS dan pustaka kompatibilitas 32-bit. Setelah driver terinstal, restart komputer Anda:

$ sudo reboot

Jika Anda sudah memiliki skrip instalasi dari driver NVIDIA lama, jalankan saja skrip pemasangan driver NVIDIA seperti yang dijelaskan di atas, tetapi dengan opsi "--update":

$ sudo ./NVIDIA-Linux-x86_64-***.**.run --update

Ini akan memberi Anda versi driver yang paling baru.

Melakukan hal ini memperbaikiku libGL error: failed to load driver: swrast kesalahan.


2
2017-08-22 15:46





Saya harus akui, saya tidak yakin mengapa ini bekerja untuk saya, tetapi itu berhasil. Dalam hal ini khususnya "memperbaiki" entri ld.so.conf.d dengan menambahkan entri baru seperti ini berfungsi:

sudo ln -s /usr/lib/nvidia-381/ld.so.conf /etc/ld.so.conf.d/nvidia64.conf
sudo ldconfig 

Ini masuk akal, sampai Anda menjalankan yang berikut ini find:

$ find -L /etc/ld.so.conf.d -type f | xargs grep -i nvidia
/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf:/usr/lib/nvidia-381
/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf:/usr/lib32/nvidia-381
/etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf:/usr/lib/nvidia-381
/etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf:/usr/lib32/nvidia-381
/etc/ld.so.conf.d/nvidia64.conf:/usr/lib/nvidia-381
/etc/ld.so.conf.d/nvidia64.conf:/usr/lib32/nvidia-381

Mengapa memiliki entri yang sama dalam karya rangkap tiga, tetapi tidak dalam rangkap dua, saya tidak tahu!


2
2018-04-30 18:58



Bekerja untuk saya di Ubunu 17.04. Sekedar catatan - jalurnya adalah / usr / lib / nvidia-xxx di mana xxx adalah nomor driver sehingga menyesuaikan perintah untuk itu. - user2082382


Ini sebuah aptSolusi-satunya yang bekerja untuk saya, tidak ada symlinking atau mucking di sekitar ld.so.conf.d:

apt install --reinstall libgl1-mesa-glx:i386
apt install mesa-utils nvidia-driver nvidia-driver-libs-i386

2
2017-11-24 01:03





Saya menghadapi masalah aneh ini ketika saya ssh ke Ubuntu VM saya dari Macbook Pro saya, tetapi menginstal driver Nvidia di bawah ini pada Ubuntu 16.04 saya memperbaiki masalah ini. Semoga ini berhasil untuk Anda.

sudo apt-get instal nvidia-331


-3
2017-10-28 05:33



Mengapa Anda menginstal driver Nvidia GPU pada sistem tamu VM? Ó_ò - David Foerster