Ich habe Probleme beim Übersetzen des SFML-Projekts (sehe keine Grafik):
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Dieser Fehler kann durch eine einfache Neuinstallation der nvidia-Treiber über dieses Tutorial behoben werden: https://askubuntu.com/a/451248/341889
..aber wenn ich neue Updates bekomme - dieser Fehler wird zurückgegeben; (Was soll ich tun? Es ist nicht die Lösung - verwende kein Systemupdate ...
PS und ja, ich habe alle Änderungen nach der Installation von NVIDIA-Treibern gespeichert
libGL.so
:LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa ./glprogram
. Standardmäßig verwendet mein Ubuntu 16.04/usr/lib/nvidia-361/libGL.so
da/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf
und alles funktioniert einwandfrei.Antworten:
Das
swrast
Ding ist der Software-Renderer. Das bedeutet, dass der Hardwaretreiber für Ihre Grafikkarte nicht gefunden wird. Es sind eine Reihe von libGL-Bibliotheken installiert und eine Reihe von symbolischen Links zu diesen Bibliotheken. Um dies zu sehen, führen Sie dies von der Shell aus:Die wahrscheinliche Ursache für Ihr Problem ist, dass bei der Installation von Grafiktreibern diese symbolischen Verknüpfungen manchmal unterbrochen werden. (Insbesondere
/usr/local/lib/libGL.so.1.2.0
handelt es sich wahrscheinlich entweder um die falsche Bibliothek oder um einen Sym-Link zum falschen Link.)Um herauszufinden, welche Bibliothek die OpenGL-Programme ausführen möchten, können Sie ein wenig Ausführlichkeit aktivieren und ein einfaches OpenGL-Programm ausführen. Sie können dies mit dem Standard-OpenGL-Testprogramm überprüfen:
Hoffentlich scheitert das genauso wie SFML. Damit
LIBGL_DEBUG
sollten Sie wissen, welche OpenGL-Bibliothek geladen werden soll. Außerdem wird die/usr/local/lib/libGL.so.1.2.0
Bibliothek, die es zu laden versuchen wird, mit ziemlicher Sicherheit sein (Bearbeiten: Dies war die Standard-OpenGL-Bibliothek auf meinem Computer zum Zeitpunkt der Beantwortung dieser Frage. Möglicherweise befindet sich jetzt eine andere Version auf Ihrem Computer).Die Lösung (in diesem Fall) besteht also darin, sicherzustellen, dass
/usr/local/lib/libGL.so.1.2.0
es sich um einen symbolischen Link handelt, der auf die rechte OpenGL-Bibliothek verweist. In meinem Fall habe ich den Nvidia 3.40-Treiber, also lief ich:Sie sollten es jedoch auf die OpenGL-Bibliothek verweisen, die für Sie geeignet ist (im ersten find-Befehl aufgeführt).
Zusammenfassend lässt sich sagen, dass die Installation von (proprietären) Grafiktreibern die für OpenGL-Bibliotheken verwendeten symbolischen Links beschädigen kann. Um dieses Problem manuell zu lösen, korrigieren Sie die symbolischen Verknüpfungen (
/usr/local/lib/libGL.so.1.2.0
zuerst korrigieren ).quelle
Ich hatte das gleiche Problem mit den
nvidia-340
Treibern unter Ubuntu 16.10 und keine der hier beschriebenen Lösungen funktionierte für mich.Es stellte sich heraus, dass sich die 32-Bit-Bibliotheken nicht im Bibliothekspfad befanden.
Dieser eine Liner arbeitete für mich:
quelle
Ich hatte Probleme, den richtigen Symlink zu finden, um auf den nVidia-Treiber zu verweisen, und ich habe einen anderen Weg gefunden, der für mich funktioniert.
Es wird hier umrissen .
Außerdem erfahren Sie, wie Sie den nVidia-Treiber über PPA installieren, der für die neueste Version 349.16 verfügbar ist.
Deinstallieren Sie zunächst alle derzeit installierten nVidia-Treiber, indem Sie ein Terminalfenster öffnen ( Ctrl+ ALT+ T) und tippen
Starten Sie Ihr System neu
Öffnen Sie dann ein anderes Terminal und geben Sie Folgendes ein
Starten Sie dann erneut
Ich habe es versucht, nachdem ich mich mit den Symlinks verlaufen hatte, und Steam funktionierte sofort nach der Installation des Treibers einwandfrei. Wieder funktionierte es, nachdem ich mehr als 400 MB System-Updates hatte.
quelle
Als Alternative zu Adrian: Wenn Sie proprietäre Treiber verwenden möchten, die direkt von NVIDIA bezogen wurden, anstatt die in einem PPA zu finden, können Sie den neuesten proprietären Treiber installieren (oder in meinem Fall neu installieren), um den Kontrastfehler zu beseitigen.
Wenn Sie den NVIDIA-Treiber noch nicht haben, laden Sie ihn von der NVIDIA-Website herunter . Wechseln Sie als Nächstes zu tty (
ctrl
+alt
+F1
) und schalten Sie Ihren Login-Manager aus:Wenn Sie lightdm verwenden,
$ sudo service lightdm stop
Wenn Sie gdm verwenden,
$ sudo service gdm stop
Navigieren Sie zum Installationsskript, führen Sie es aus und befolgen Sie die Anweisungen. Machen Sie sich keine Sorgen, wenn das Vorinstallationsskript fehlschlägt. Ich akzeptiere immer die Registrierung von DKMS und der 32-Bit-Kompatibilitätsbibliotheken. Starten Sie Ihren Computer nach der Installation des Treibers neu:
Wenn Sie bereits ein Installationsskript von einem älteren NVIDIA-Treiber haben, führen Sie das NVIDIA-Treiberinstallationsskript wie oben beschrieben aus, jedoch mit der Option "--update":
Dadurch erhalten Sie die aktuellste Version des Treibers.
Dadurch wurde mein
libGL error: failed to load driver: swrast
Fehler behoben .quelle
Habe das gleiche Problem auf Ubuntu 18. Das passierte im Grunde nur mit 32bit Apps. Meine Idee war also, 32bit nvidia zu installieren, da mein Ordner / usr / lib / i386-linux-gnu / verdächtig leer war.
Nach sehr wenigen Versuchen wurde das Problem behoben, dass Dampf und Wein nicht ansprangen:
(und ändern Sie 418 auf die von Ihnen verwendete Version)
Interessant, dass sich die Anwendungen bei der Installation nicht über fehlende Abhängigkeiten beschwert haben.
quelle
Ich muss zugeben, ich bin mir nicht sicher, warum das bei mir funktioniert, aber es hat funktioniert. In diesem speziellen Fall "reparieren" Sie die ld.so.conf.d-Einträge, indem Sie einen neuen Eintrag wie diesen hinzufügen:
Dies ist sinnvoll, bis Sie Folgendes ausführen
find
:Warum die gleichen Einträge in dreifacher Ausfertigung funktionieren, aber nicht doppelt, weiß ich nicht!
quelle
Hier ist eine
apt
einzige Lösung, die für mich funktioniert hat und mit der ich weder sympathisiert noch rumgespielt habeld.so.conf.d
:quelle
Ich benutze nur diese Zeile:
und es funktioniert.
Weil ich solche Eingaben sehe, wenn ich ausführe
sudo ldconfig -p | grep -i gl.so
:quelle
Führen Sie einfach Folgendes aus:
Die Version Ihres Treibers wird in den NVIDIA-Einstellungen angezeigt.
quelle
Ich hatte dieses seltsame Problem, als ich von meinem Macbook Pro auf meine Ubuntu-VM sshte, aber die Installation des folgenden Nvidia-Treibers auf meinem Ubuntu 16.04 behebte das Problem. Ich hoffe, das funktioniert für Sie.
sudo apt-get installiere nvidia-331
quelle