すばらしい質問です。
ワークロード
/ usr / share / xdiagnose / workloadsディレクトリには、グラフィックシステムを動かしてロックアップをトリガーするように設計された一連のワークロードがあります。
$ 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
それらを実行するには、「run」を渡す必要があることに注意してください。例えば:
$ do_glx_loop run
引数がない場合、スクリプトは使用状況を表示します。一部は安全のためです(人々が盲目的にスクリプトを実行する場合に備えます)が、ほとんどはスクリプトのAPIを整頓することです。
私がスターを付けたものは、おそらく最初から始めるのに最適なものです。最初は一度に1つのスクリプトのみを実行し、それを数時間実行します。システムが十分に生き残った場合は、2つ以上を同時に実行してみてください。
私自身はこれらのテストをあまり行っていないので、バグがないことは保証できません。しかし、それらは非常に短く単純なスクリプトなので、修正が簡単であり、パッチも大歓迎です。
また、解決しようとしているものとは無関係のロックアップを引き起こす可能性が高いことにも注意してください。GPUロックアップは、ほぼ同じ症状を持っているため、訓練されていない目とほぼ同じように見えます。
ログ
Intel Graphicsを使用している場合、必要な/ sys / kernel / debug / dri / 0 / i915_error_stateがあります。これは、ハング時のレジスタ状態のスナップショットであり、その上部にはいくつかのエラーコードが含まれています。IPEHR、PGTBL_ER、ESR、EIR。それらのコードを一致させて、同じエラーまたは同様のエラーがあるかどうかを確認します。
Intel Graphicsを使用していない場合(この場合はそうではありません)、またはi915_error_stateファイルが生成されない場合は、dmesgおよび/var/log/kern.logを確認してください。 場合によっては、GPUロックアップで、GPUロックアップが何によって、またはその中で発生したかを示します。
オープンソースの-atiドライバーには、レジスターの状態を取り込むradeontoolとavivotoolがあります。これらは主にオープンソースの-ati用ですが、ツールは-fglrxでも動作するはずです。-fglrxバグが要求されたのを見たことがありませんが、害はありません。
テスト中
すべてのドライバーについて、次のステップは通常、新しいバージョンまたは古いバージョンのドライバーのテストを開始することです。プロプライエタリドライバーの場合は、x-updates ppaを確認できますが、ベンダーのWebサイトからドライバーをダウンロードして手動でインストールする必要があります(その際、システムのパッケージングを台無しにしてください)。-intel、-nouveau、-atiなどのFOSSドライバーの場合、新しいカーネルまたは新しいメサのいずれかをテストすることを意味します。新しいカーネルのパッケージビルドをhttp://kernel.ubuntu.com/~kernel-ppa/mainline/で提供しています。メサには、xorg-edgersなどのさまざまなPPAがあります。また、正確な8.0.3アップデートを準備しています。これにより、インテルグラフィックスのいくつかのロックアップが修正されると考えられます。
いずれにせよ、動作するバージョンを見つけたときだけに止まらないでください。作業中のバージョンと壊れたバージョンの間にある他のバージョンを試してください。ブラケットを2つの隣接するバージョンに絞り込むことができれば、開発者がどのパッチでリグレッションを引き起こしたかを特定するのに非常に役立ちます。
貢献する
トラブルシューティングを行うと、エラーを発見したり、スクリプトやドキュメントの改善を思い付く場合があります。これらへの貢献は大歓迎です。ウィキドキュメントを使って、先に進んで編集してください!少なくとも年に1回は更新を試みますが、常にそれに慣れるわけではありません。次のページにアクセスする人は、それらを改善するためのあなたの努力に確かに感謝します。
スクリプト自体の変更についても、大歓迎です。パッチ、bzrまたはgitブランチ、またはスクリプトのコピーなど、快適な変更を送ってください。多くの変更を行う予定の場合は、マージプロポーザルを含むbzrブランチが推奨されます。これを行う方法のチュートリアルは、code.launchpad.netで入手できます。質問がある場合は、IRCで遠慮なく教えてください。
または、コーディングを掘り下げる準備ができていないが、エラーやより多くの機能が必要な領域にフラグを付けたい場合は、通常の方法でバグレポートを提出できます(ubuntu-bug xdiagnose
)。
クイックフィックス
上記のデバッグのいずれにも興味がない場合は、ランダムなヒントをいくつか示します。
プロプライエタリドライバーの場合は、システムから完全にアンインストールしてパージし、最初から再インストールしてみてください。これは残念ながら多くのバグを「解決」します...
FOSSドライバーについては、さまざまなカーネルスイッチを試してみてください。3D /メサのバグについては、さまざまな設定を微調整するためのdriconfもあります。
最終的に
最後に、1つの要求...上記のような少なくとも少しの調査が完了するまで、「ランダムなフリーズ」に関するバグレポートをLaunchpadに提出しないでください。それ以外の場合は、ノイズに追加されます。
私たちはよく研究されたバグレポートを探し出そうとします。私たちは、これらの費用を負担して、最終的にはディストリビューションを実際に修正する可能性が高くなることがわかりました。