Ausgezeichnete Frage.
Arbeitslasten
Das Verzeichnis / usr / share / xdiagnose / workloads enthält eine Reihe von Workloads, mit denen Sie Ihr Grafiksystem trainieren können, um Abstürze auszulösen.
$ ls /usr/share/xdiagnose/workloads/
README do_monitor_rotation_loop
do_chws_loop* do_screensaver_loop*
do_cpu_spin_loop do_video_loop*
do_disk_write_loop do_vtswitch_loop*
do_glx_loop* repro.sh
do_kernel_compile_loop run_workloads
do_monitor_disable_loop* youtube-loop.html
do_monitor_resolution_loop* youtube-reload.html
Beachten Sie, dass Sie zum Ausführen von 'run' übergeben müssen. Z.B:
$ do_glx_loop run
Ohne Argumente zeigen die Skripte die Verwendung an. Dies dient zum Teil der Sicherheit (für den Fall, dass Benutzer die Skripte nur blind ausführen), zum größten Teil jedoch dazu, die API der Skripte aufgeräumt zu halten.
Diejenigen, die ich in der Hauptrolle gespielt habe, sind wahrscheinlich die besten, mit denen ich anfangen kann. Ich würde damit beginnen, jeweils nur ein Skript auszuführen und es einige Stunden lang laufen zu lassen. Wenn Ihr System so gut überlebt, versuchen Sie, zwei oder mehr gleichzeitig auszuführen.
Hinweis: Ich habe diese nicht besonders stark getestet und kann daher nicht versprechen, dass sie fehlerfrei sind. Aber es sind ziemlich kurze und einfache Skripte, die hoffentlich leicht zu reparieren sind, und Patches sind sehr willkommen.
Beachten Sie auch, dass sie höchstwahrscheinlich Abstürze auslösen können, die nichts mit dem zu tun haben, den Sie lösen möchten. GPU-Abstürze sehen im Allgemeinen alle identisch mit dem ungeübten Auge aus, da sie mehr oder weniger genau dieselben Symptome aufweisen.
Protokolle
Wenn Sie mit Intel Graphics arbeiten, gibt es einen / sys / kernel / debug / dri / 0 / i915_error_state, den Sie möchten. Dies ist eine Momentaufnahme des Registerstatus zum Zeitpunkt des Hängens, und oben befinden sich einige Fehlercodes. IPEHR, PGTBL_ER, ESR, EIR. Ordnen Sie diese Codes zu, um festzustellen, ob Sie den gleichen oder einen ähnlichen Fehler haben.
Wenn Sie nicht mit Intel Graphics arbeiten (wie in diesem Fall nicht) oder wenn keine i915_error_state-Dateien generiert werden, sollten Sie sich dmesg und /var/log/kern.log ansehen. Manchmal geben sie bei GPU-Sperren an, durch was oder in welcher GPU-Sperre verursacht wurde.
Der Open Source -ati-Treiber verfügt über Radeontool und Avivotool, die Registerzustände erfassen. Diese sind hauptsächlich für die OpenSource -ati bestimmt, aber die Tools sollten auch mit -fglrx funktionieren. Ich habe noch nie gesehen, dass es nach einem -fglrx-Fehler gefragt wurde, aber es kann sicherlich nicht schaden.
Testen
Für alle Treiber besteht der nächste Schritt normalerweise darin, entweder neuere oder ältere Versionen des Treibers zu testen. Bei proprietären Treibern können Sie die ppa der x-Updates überprüfen, aber wahrscheinlich müssen Sie den Treiber von der Website des Anbieters herunterladen und manuell installieren (und dabei die Verpackung Ihres Systems durcheinander bringen). Für FOSS-Treiber wie -intel, -nouveau, -ati bedeutet dies, entweder neuere Kernel oder neuere Mesa zu testen. Unter http://kernel.ubuntu.com/~kernel-ppa/mainline/ bieten wir gepackte Builds neuerer Kernel an . Für Mesa gibt es verschiedene PPAs wie Xorg-Edger. Ich bin auch dabei, ein 8.0.3-Update für präzise vorzubereiten, von dem wir glauben, dass es eine Reihe von Abstürzen für Intel Graphics behebt.
Hören Sie auf keinen Fall einfach auf, wenn Sie eine funktionierende Version finden. Probieren Sie andere Versionen zwischen Ihrer Arbeitsversion und der defekten aus. Wenn Sie die Klammer auf zwei benachbarte Versionen eingrenzen können, kann dies für die Entwickler sehr hilfreich sein, um herauszufinden, welcher Patch die Regression verursacht hat.
Mitwirken
Während Sie die Fehlerbehebung durchführen, werden Sie möglicherweise Fehler entdecken oder Verbesserungen für die Skripte oder Dokumente finden. Beiträge zu diesen Themen sind herzlich willkommen. Mit den Wiki-Dokumenten können Sie einfach weitermachen und bearbeiten! Ich versuche, sie mindestens einmal im Jahr zu aktualisieren, aber ich komme nicht immer dazu, und der nächste, der die Seite besucht, wird Ihre Bemühungen, sie zu verbessern, sicherlich zu schätzen wissen.
Für Änderungen an den Skripten selbst auch sehr zu begrüßen. Senden Sie mir Änderungen, wie auch immer Sie sich wohl fühlen - als Patches, als BZR- oder Git-Zweig oder auch nur als Kopien des Skripts. Wenn Sie viele Änderungen vornehmen möchten, ist ein bzr-Zweig mit einem Zusammenführungsvorschlag der bevorzugte Weg. Tutorials dazu finden Sie unter code.launchpad.net. Wenn Sie Fragen haben, können Sie mich gerne im IRC abrufen.
Wenn Sie nicht bereit sind, sich mit Codierung zu befassen, aber Fehler oder Bereiche markieren möchten, in denen mehr Funktionen benötigt werden, können Sie Fehlerberichte auf die übliche Weise einreichen ( ubuntu-bug xdiagnose
).
Schnellkorrekturen
Wenn Sie nicht an einem der oben genannten Debugging-Vorgänge interessiert sind, finden Sie hier einige zufällige Tipps:
Versuchen Sie bei proprietären Treibern, diese zu deinstallieren und vollständig von Ihrem System zu entfernen, und installieren Sie sie dann von Grund auf neu. Dies "löst" leider viele Fehler ...
Für die FOSS-Treiber gibt es verschiedene Kernel-Switches, mit denen Sie herumspielen können. Für 3D / Mesa-Fehler gibt es auch driconf, um verschiedene Einstellungen zu optimieren.
Schließlich
Zum Schluss noch eine Anfrage ... Bitte senden Sie keine Fehlerberichte über "zufällige Einfrierungen" an Launchpad, bis Sie mindestens ein wenig nach oben beschrieben gesucht haben. Andernfalls würden Sie nur das Rauschen verstärken.
Wir versuchen, gut recherchierte Fehlerberichte herauszufischen. Wir finden, dass diese einen höheren Knall für das Geld geben und viel wahrscheinlicher zu einer tatsächlichen Lösung für die Distribution führen.