Mam problemy podczas kompilacji projektu SFML (nie widzę żadnej grafiki):
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Ten błąd można rozwiązać, instalując ponownie sterowniki NVIDIA w tym samouczku: https://askubuntu.com/a/451248/341889
.. ale kiedy otrzymuję nowe aktualizacje - ten błąd powraca; (Co powinienem zrobić? To nie jest rozwiązanie - nie używaj aktualizacji systemu ...
PS i tak, zapisałem wszystkie zmiany po zainstalowaniu sterowników NVIDIA
libGL.so
:LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa ./glprogram
. Domyślnie mój Ubuntu 16.04 używa z/usr/lib/nvidia-361/libGL.so
powodu/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf
i wszystko działa dobrze.Odpowiedzi:
Chodzi
swrast
o renderer oprogramowania. Oznacza to, że nie znajduje sterownika sprzętowego dla karty graficznej. Zainstalowano kilka bibliotek libGL i kilka dowiązań symbolicznych do tych bibliotek. Aby zobaczyć te, uruchom to z powłoki:Prawdopodobną przyczyną tego problemu jest to, że instalacja sterowników graficznych czasami psuje te dowiązania symboliczne. (W szczególności
/usr/local/lib/libGL.so.1.2.0
może to być niewłaściwa biblioteka lub link do niewłaściwego linku).Aby dowiedzieć się, jaką bibliotekę próbują uruchomić programy OpenGL, możesz włączyć trochę gadatliwości i uruchomić prosty program OpenGL. Możesz to sprawdzić za pomocą standardowego programu testowego OpenGL:
Mam nadzieję, że zawiedzie w taki sam sposób jak SFML. Dzięki
LIBGL_DEBUG
niemu dowiesz się, jaką bibliotekę OpenGL próbuje załadować. Co więcej, lib, który będzie próbował załadować, prawie na pewno będzie/usr/local/lib/libGL.so.1.2.0
(Edycja: To była standardowa biblioteka OpenGL na moim komputerze w chwili, gdy odpowiedziałem na to pytanie. Może to być inna wersja na twoim komputerze).Zatem rozwiązaniem (w tym przypadku) jest upewnienie się, że
/usr/local/lib/libGL.so.1.2.0
jest to dowiązanie symboliczne wskazujące właściwą bibliotekę OpenGL. W moim przypadku mam sterownik Nvidia 3.40, więc uruchomiłem:Ale będziesz chciał wskazać na bibliotekę OpenGL, która jest dla Ciebie odpowiednia (wymieniona w pierwszym poleceniu find).
Podsumowując: instalowanie (zastrzeżonych) sterowników graficznych może uszkodzić dowiązania symboliczne używane w bibliotekach OpenGL. Aby rozwiązać ten problem, ręcznie napraw łącza symboliczne (
/usr/local/lib/libGL.so.1.2.0
najpierw napraw ).źródło
Miałem ten sam problem na Ubuntu 16.10 ze
nvidia-340
sterownikami i żadne z rozwiązań tutaj nie działało dla mnie.Okazuje się, że biblioteki 32-bitowe nie były na ścieżce biblioteki.
Ta jedna wkładka działała dla mnie:
źródło
Miałem problemy z uzyskaniem poprawnego dowiązania symbolicznego do wskazania sterownika nVidia i znalazłem inny sposób, który działa dla mnie.
Zostało to przedstawione tutaj .
Wymienia także sposób instalacji sterownika nVidia przez PPA, który jest dostępny dla najnowszej wersji 349.16.
Najpierw odinstaluj aktualnie zainstalowane sterowniki nVidia, otwierając okno terminala ( Ctrl+ ALT+ T) i wpisując
Uruchom ponownie system
Następnie otwórz inny terminal i wpisz następujące polecenie
Następnie uruchom ponownie komputer
Wypróbowałem to po zgubieniu się z dowiązaniami symbolicznymi, a para działała dobrze natychmiast po zainstalowaniu sterownika i znowu działała po tym, jak miałem ponad 400 megapikseli aktualizacji systemu.
źródło
Aby zapewnić alternatywę dla odpowiedzi Adriana: jeśli wolisz używać zastrzeżonych sterowników pochodzących bezpośrednio z NVIDIA zamiast tych zawartych w PPA, instalowanie (lub w moim przypadku ponowne instalowanie) najnowszego zastrzeżonego sterownika może pomóc wyeliminować błąd swrast.
Jeśli nie masz jeszcze sterownika NVIDIA, pobierz sterownik ze strony internetowej NVIDIA . Następnie przejdź do tty (
ctrl
+alt
+F1
) i wyłącz menedżera logowania:Jeśli używasz lightdm,
$ sudo service lightdm stop
Jeśli używasz gdm,
$ sudo service gdm stop
Przejdź do skryptu instalacyjnego, uruchom go i postępuj zgodnie z instrukcjami. Nie martw się, jeśli skrypt przedinstalacyjny zawiedzie. Zawsze akceptuję rejestrację DKMS i bibliotek kompatybilności 32-bitowej. Po zainstalowaniu sterownika uruchom ponownie komputer:
Jeśli masz już skrypt instalacyjny ze starszego sterownika NVIDIA, po prostu uruchom skrypt instalacyjny sterownika NVIDIA zgodnie z powyższym opisem, ale z opcją „--update”:
Otrzymasz najbardziej aktualną wersję sterownika.
W ten sposób naprawiono mój
libGL error: failed to load driver: swrast
błąd.źródło
Ten sam problem dotyczy Ubuntu 18. Zdarzyło się to tylko w przypadku aplikacji 32-bitowych. Więc moim pomysłem było zainstalowanie 32-bitowej nvidii, ponieważ mój folder / usr / lib / i386-linux-gnu / był podejrzanie pusty.
Po kilku próbach rozwiązało to mój problem z uruchomieniem się pary i wina:
(i zmień 418 na dowolną wersję)
Ciekawe, że aplikacje nie narzekały na brakujące zależności podczas instalacji.
źródło
Muszę przyznać, że nie jestem pewien, dlaczego to dla mnie działa, ale tak się stało. W tym szczególnym przypadku „poprawianie” wpisów ld.so.conf.d przez dodanie nowego wpisu, jak to działa:
Ma to sens, dopóki nie uruchomisz
find
:Po co te same wpisy w trzech egzemplarzach, ale nie w duplikatach, nie mam pojęcia!
źródło
Oto
apt
jedyne rozwiązanie, które zadziałało dla mnie, bez symlinkowania i bezsensownegold.so.conf.d
:źródło
Po prostu używam tej linii:
i to działa.
Ponieważ widzę takie dane wejściowe podczas wykonywania
sudo ldconfig -p | grep -i gl.so
:źródło
Po prostu uruchom to:
Wersja sterownika jest wyświetlana w ustawieniach NVIDIA.
źródło
W moim przypadku rozwiązanie tego problemu polegało na kontynuacji komunikatu o błędzie
Paraview 5.7.0 poinformował mnie, że:
Wiadomość
był kluczowy. Uruchamiam „glxgears”, aby sprawdzić, czy biblioteki graficzne działają poprawnie - patrz także
man glxgears
- pokazując tę animację:Potem moim rozwiązaniem było po prostu ustawienie zmiennej środowiskowej
Uwaga:
locate libGL.so
znajduję innego kandydata/usr/lib/i386-linux-gnu/libGL.so
. Ustawienie tego parametru na LD_PRELOAD nie rozwiązało jednak problemu;locate libGLEW.so
Jestem wdzięczny https://github.com/openai/mujoco-py/issues/44 za wskazówki
źródło
Napotkałem ten dziwny problem, kiedy ssh do mojej maszyny Wirtualnej Ubuntu z mojego Macbooka Pro, ale zainstalowanie poniższego sterownika Nvidia na moim Ubuntu 16.04 rozwiązało ten problem. Mam nadzieję, że to Ci odpowiada.
sudo apt-get install nvidia-331
źródło