Elementary OS Loki ist eine wirklich solide Linux-Distribution, aber wenn es mit den proprietären Nvidia-Treibern verwendet wird, stoßen Benutzer manchmal auf einen irritierenden Fehler, der aus dem Suspend-Zustand kommt. Derzeit besteht der Nvidia-Wiederaufnahmefehler auf Elementry OS Loki weiterhin, und Benutzer in der Community versuchen herauszufinden, warum.
Unsere Lösung zur Behebung des Nvidia-Wiederaufnahmefehlers ist nicht 100 % solide. Auch nach dem Einrichten dieses Fixes können diese Probleme weiterhin auftreten. Der Fix selbst beruht auf der Verwendung des systemd-Init-Systems in Elementary OS, um den Fenstermanager zurückzusetzen.
Möglicherweise stellen Sie fest, dass der Gala-Fenstermanager nicht zurückgesetzt werden kann. Wenn der Dienst nicht funktioniert, sollten Sie die Dateien löschen und neu starten oder dies manuell im Wingpanel-Anwendungsstarter ausführen:
gala --replace
Versuch auf eigene Gefahr.
Inhaltsverzeichnis
Das Drehbuch schreiben
Vor dem Erstellen eines Sleep-Hooks innerhalb von systemd ist ein Skript erforderlich. Dies liegt daran, dass Sie die Befehle nicht direkt in die Servicedatei schreiben können. Öffnen Sie stattdessen ein Terminalfenster auf Ihrem Elementary OS-Desktop und erhalten Sie Root-Zugriff mit sudo -s.
Öffnen Sie mit dem Root-Terminal den Nano-Texteditor.
nano /usr/bin/pantheon-wm-refresh.sh
Der folgende Befehl erstellt eine neue SH-Datei, die im Verzeichnis /usr/bin/ gespeichert werden kann. Fügen Sie von hier aus den folgenden Code oben in der Datei ein. Dieser Code ist wichtig, da er die Umgebung festlegt, in der das Skript ausgeführt wird. Ohne diese Zeile schlägt alles fehl.
#!/bin/bash
Mit dem Shebang am Anfang des Skripts enthält die SH-Datei alles, was der Interpreter zum Lesen benötigt. Jetzt ist es an der Zeit, die restlichen Befehlsargumente hinzuzufügen. Beginnen wir mit der Angabe der Standardanzeige. Dadurch wird sichergestellt, dass der Fenstermanager auf dem richtigen Bildschirm aktualisiert wird.
export DISPLAY=:0
Direkt nach „export DISPLAY=:0“ können wir den Befehl angeben, der die Pantheon-Desktopumgebung dazu zwingt, den Fenstermanager zurückzusetzen, wenn er aus dem Resume kommt. Der Befehl ist ein einfacher Befehl, der den Fenstermanager des elementaren Betriebssystems (bekannt als Gala) anweist, sich selbst zu ersetzen.
gala --replace
Nachdem der letzte Befehl in das Shell-Skript geschrieben wurde, ist es Zeit zu speichern. Drücken Sie Strg + O, um alles in Nano zu speichern. Aktualisieren Sie nach dem Speichern die Berechtigungen der Datei, damit sie als Programm ausgeführt werden kann:
chmod +x /usr/bin/pantheon-wm-refresh.sh
Erstellen eines Systemd-Dienstes
Der nächste Schritt im Prozess zur Behebung des gefürchteten Nvidia-Wiederaufnahmefehlers besteht darin, einen sogenannten „Sleep Hook“ zu erstellen. Dies ist ein Dienst, der innerhalb von systemd ausgeführt werden kann, wenn der Benutzer aus dem „Schlaf“ zurückkehrt. Zu Beginn benötigen wir wieder den Nano-Texteditor. Stellen Sie sicher, dass Ihr Terminal noch Root-Zugriff hat. Wenn nicht, verwenden Sie sudo -s, um root zu werden, und öffnen Sie eine neue Datei mit:
nano /etc/systemd/system/[email protected]
Im Inneren des „[email protected]”-Datei, fügen Sie Folgendes ein:
[Unit] Description=User resume actions After=suspend.target [Service] User=%I Type=simple ExecStart=/usr/bin/pantheon-wm-refresh.sh [Install] WantedBy=suspend.target
Speichern Sie die neue systemd-Datei mit Strg + O und verwenden Sie dann den Befehl systemctl, um diesen neuen Dienst innerhalb des Init-Systems zu aktivieren.
systemctl enable [email protected]
und
systemctl start [email protected]
Von hier aus wird der Pantheon-Fenstermanager jedes Mal aktualisiert, wenn Sie Ihren PC aus dem Suspend zurücksetzen. Dadurch wird das lästige Bildschirmproblem verhindert, das bei einigen proprietären GPU-Treibern von Nvidia auftritt, auf denen Elementary OS ausgeführt wird.
Andere Fehlerbehebungsoptionen
Treiber aktualisieren
Probieren Sie unsere Lösung oben aus und nichts funktioniert? Erwägen Sie, eines dieser beiden Dinge zu tun. Als erstes müssen Sie die absolut neueste Version der proprietären Nvidia-Treiber auf Ihrem Elementary OS-System installieren. Dies beginnt mit der Installation von Software, die die PPA-Nutzung auf dem Betriebssystem ermöglicht.
sudo apt install software-properties-common
Fügen Sie dann den regelmäßig aktualisierten Treiber-PPA hinzu mit:
sudo add-apt-repository ppa:graphics-drivers/ppa
Öffnen Sie von hier aus das Elementary OS Software Center, suchen Sie nach „zusätzlichen Treibern“, klicken Sie auf Installieren und starten Sie es (falls Sie es noch nicht haben). Deaktivieren Sie die aktuelle Version des von Ihnen ausgeführten proprietären Nvidia-Treibers und installieren Sie die absolut neueste Version. Dadurch wird Ihr System auf die neueste Version der Treiber aktualisiert – etwas, das sehr wohl lästige Fehler beheben kann.
Rollback-Treiber
Wenn der Fix oder die Aktualisierung von Nvidia auf die neueste Version nicht geholfen hat, sollten Sie versuchen, die proprietären Nvidia-Treiber zurückzusetzen und stattdessen die Open Source Noveau-Treiber zu verwenden. Obwohl sie nicht so effektiv sind wie die direkt von Nvidia, haben sie nicht den Resume-Bug.
Ersetzen Sie den Elementry OS Window Manager
Wenn Sie fest entschlossen sind, die Closed-Source-Treiber auf Elementary OS zu verwenden, sollten Sie den Fenstermanager von Elementary OS manuell durch etwas anderes wie Mutter ersetzen.
Mutter ist ein leichter, gut aussehender Fenstermanager mit ähnlichen visuellen Effekten. Führen Sie einfach diesen Befehl im Terminal aus:
sudo apt install mutter
Gehen Sie dann zu den Systemeinstellungen (oder suchen Sie nach Startup) und fügen Sie Folgendes hinzu: murmel –replace als Befehl. Beim Start ersetzt Ihr PC Gala automatisch durch Mutter. Dies ist eine grobe Lösung, aber es wird die Arbeit erledigen.