「ディスプレイドライバが応答を停止しましたが、正常に回復しました」との戦いの顛末
久々にPC組んだらこれだよ・・・
というわけで2か月近くに及ぶ戦いに勝利したので書いときます。
先に結論
「ディスプレイドライバが応答を停止しましたが、正常に回復しました」の原因はメモリ。
メモリ自体が不良ってわけじゃなくて、俗にいう相性というやつの模様。
メモリ買い替えたら直りました。
構成
CPU:Ryzen5 1500X
メモリ:Corsair CMK8GX4M2A2666C16(Ver.5.30)
MB:ASUS B350-PLUS
グラボ:SAPPHIRE RX560
電源:玄人志向 KRPW-N600W
OS:Windows10 Pro
症状
・BIOS POSTは正常。
・Windows起動も正常。
・ブラウジングの時にしばしばカーソルが反応しなくなる⇒数秒後に画面暗転⇒数秒後に勝手に復旧
⇒タスクトレイのメッセージに表題の「ディスプレイドライバが応答を停止しましたが、正常に回復しました」
⇒イベントビューアでは「ディスプレイ ドライバー amdkmdap が応答を停止しましたが、正常に回復しました。」
・CINEBENCHのGPUはほぼ完走できず。途中でホワイトアウト。⇒Windows自体は生きてるので、タスクマネージャとかからCINEBENCH強制終了はできる。
発生確率は体感7割くらい。
・FF14紅蓮のベンチは完走できず。「DirectXに致命的なエラーが」とかなんとか
頻度が結構なのと、まともにベンチ取れないのできつかった。
調査と戦い
軽く調べてみると・・・
Windows XP以降のどのWindowsでも起こる模様。
NVIDIA,AMD,ATIのどれでも起こる模様。
これやったらなおったよ、という記事はたくさんあるけど、みんなバラバラ。つまり原因不明、というか原因はバラバラ。
1.グラボが原因?
まぁグラボっぽいですよね。最初に疑いました。
このエラーがグラボ起因で出る時の原因は主に3つ。
・グラボの故障
・グラボの物理的接触不良(取り付けミス)
・ドライバがおかしい
自作erは故障を疑うのは最後です。
グラボ抜き差ししてみたけど症状変わらず。新品なので埃等による冷却性能低下などは考えにくいです。
次はドライバ。割と新製品なのでこれは疑わしい。
DDUを使って旧ドライバ完全削除して、AMDからの最新のドライバ(ベータと正式版の2種類)を試みる。
結果変わらず。
2.BIOS?
まぁ新しいですしね。Ryzen用MBはまだBIOS成熟しきってないという話もありますし。
ASUSのサイトから新しい方から3つくらい拾ってきます。
0613 Agesa1.0.0.6α
0609
0606 Agesa1.0.0.4α
あたり。他にも試した気がするけどもう忘れました。
結果は変わらず。
3.メモリ?
www.btopcinfo.com
まさかのメモリ?しかも相性?
とりあえず今回のメモリをD.O.C.P(XMPプロファイル)有効無効で症状の発生具合を調べてみるがあまり変わらない。
ちなみにこの辺でmemtest走らせてみるけど問題無く2passくらい。
⇒メモリの「不具合」ではないし、2666稼働が厳しいわけでもなさそう。
とはいえグラボ・BIOSの線はほぼ消えてるので、メモリはもうちょい検証してみました。
というわけで基本の2枚刺し⇒1枚刺しすると・・・
嘘のように症状が消えます。
すると問題はメモリの相性orメモリスロット。
A2-B2に刺してたのをA1-B1にしてみる→症状発生
A1-A2に刺してみる→症状発生
B1-B2に刺してみる→症状発生
A1のみ1枚→症状発生せず
B1のみ1枚→症状発生せず
A2のみ1枚→症状発生せず
B2のみ1枚→症状発生せず
どうもデュアルチャネル関係なしに、2枚さすのはダメな模様ですね。
この間2133,2666で試す、2枚のメモリの組み合わせを変えてみる等々しているので、
実際に試した組み合わせは詳しく覚えていません。
ただ、2枚刺しではほぼ必ず症状発生。1枚では症状発生せず。
また、2枚のメモリのどちらか1枚が原因という事も無さげです。
ここが上記BTO高知さんの状況と違うところ。2枚の内どちらかで症状発生ならメモリ確定とするところですが、
2枚とも1枚刺しでは正常稼働を確認しているため、確実にメモリとは言い切れません。
この時点で可能性としては
・メモリの相性(2枚だとダメ)
・MBの不具合(でも特定のメモリスロットがダメというのではない)
・CPUのメモコン
あと、非常に低い可能性としてグラボの初期不良・電源の初期不良が有ります。
電源は容量的には十分なはずなので、高負荷時に供給が不安定になっていると・・・ってことですね。
まぁ、この辺の可能性はかなり低いでしょう。全てを試してダメなら・・・という感じです。
それからどうした
某ドスパラの通販でまとめて購入したので、サポートに聞いてみた。
状況説明して、相性、MB不具合、CPUのメモコン不具合のどれかだと思うけど・・・と。
メルマガ会員になってたので初期不良1ヶ月以内です。
サポートの人曰く、「MBの不具合の可能性が高いので、CPU,MB,メモリを送ってくれないか」とのこと。
ついでにグラボも見てくれると言うので、CPU,MB,メモリ,グラボを送って調べてもらいました。
ちなみに集荷の手配はドスパラでやってくれて、配送料は無料です。
5日後くらい
電話かかってきて、「MBにIOエラー有、他のパーツは正常を確認。MBを初期不良として新品交換します」とのこと。
なおったか
と思って組んでみたけど症状再発。MB2連続初期不良ってあんまり考えられない。なくはないけど。
ちなみにCorsairのメモリはVer.5系はHynix。Ryzenと相性悪いです。
というわけで、しばらく一枚刺しで稼働しながらメモリを物色しました。
3400以上だとRyzen環境では最高のパフォーマンスを発揮するSamsungのB-dieものの確率が上がるようですが、
3000以下ではおみくじです。G.SkillすらHynixが混じってる。
しかも迷ってる間にもメモリ価格は高騰。一時期噂になった(?)Samsungの純正バルクB-dieもほとんど残っていません。
そしてB350-PLUSのQVLに載ってるメモリはことごとく売り切れて入荷待ちになっていく。
それからどーした
そこで見つけたのは安定のMicron(のチップを確定で使ってるCrusial)。
安定と言っても、まぁ普通じゃない?という感じですけど。
Ryzen環境では
Samsung B-die>超えれらえない壁>>>>>>>>>Samsung B-die以外>>Micron>>>>>>>>>>Hynix
という感じでしょうか。結構今回の件での偏見が入ってるかもしれませんが。
というわけで候補はCrusial by MicronのBME or BMTあたりになりました。
よくよく調べてみるとどうやら
BME Eliteシリーズ→海外でBLEhogehoge
BMT Tacticalシリーズ→海外でBLThogehogeのようです。たぶん。
もう一つSportsシリーズ(BMS)→海外でBLSってのがありますが、どうもあまり売ってないので無視します。
BLT4Gとすれば、2666が2666で動いたとQVLのリストに載っています。だからといって動くとは限りませんが。
3000は載ってませんでしたが、Agesa1.0.0.6にかけて3000BMTにしました。
3000として動かなくても2枚刺しで安定してくれれば良しとします。(ドスパラで特価だった)
そうしてどーなった
結局W4U3000BMT(4Gx2)にしたわけですが、刺しなおして一発で2933起動。
今回の発端となった「ディスプレイドライバが応答を停止しましたが、正常に回復しました」は
換装して1週間ちょいですが、まだ一回も発症しておりません。
こけまくったベンチもすべて安定して完走。3DMarkもエラーなく走り切りました。
あ、ちなみに調子のって3200起動しようとしましたがダメでしたね。タイミング緩めれば行けるかもしれませんが、この辺がMicronチップの限界と言われればそーなのかなと思います。
結局最初に組んでから完全解決までに2か月近くかかってしまった。
ながれ
6/15一式購入
開封の儀 pic.twitter.com/aChouon2fN
— tmin (@t_min) 2017年6月15日
6/18完成
でけた pic.twitter.com/OVeFhAh9cF
— tmin (@t_min) 2017年6月18日
6/19戦闘開始
IE11がフリーズしたり「ディスプレイドライバが応答を停止しましたが、正常に回復しました」エラーが頻発する場合の対処方法 https://t.co/KxTjMPDFQl
— tmin (@t_min) 2017年6月19日
IEじゃないけどこれが・・・
7/3メモリが原因っぽいのをつきとめる
相性なんてないと思ってた。そう、昨日まではね
— tmin (@t_min) 2017年7月3日
7/13サポートから戻ってきて復活・・・したと思った
復活記念 pic.twitter.com/gFwActr2EG
— tmin (@t_min) 2017年7月13日
7/17再発して電源プランを疑う
まだかの不安定原因はryzen paformanceのせい疑惑
— tmin (@t_min) 2017年7月17日
7/31Radeonのドライバ更新の望みをかけるも打ち砕かれる
Radeon driver更新されたの願いをかけてメモリ2枚刺ししたけどやっぱダメだった
— tmin (@t_min) 2017年7月31日
8/7やっとこさメモリ決める
W4U3000BMT買った。回るといいけど
— tmin (@t_min) 2017年8月7日
いやまずは2枚ざしの安定を
8/9メモリ換装して戦い終了の予感
いやっほい
— tmin (@t_min) 2017年8月9日
2933一発起動
Cinebench完走
そーいうことでしたね
結局メモリの相性(不具合ではない)でFA
— tmin (@t_min) 2017年8月9日
こうして見てみると買い替えのメモリ迷ってた期間長すぎだろ。いや、メモリ今高いですしね。。。
まとめ
・「ディスプレイドライバが応答を停止しましたが、正常に回復しました」の原因はメモリであることも有る。(確率は知らない)
・memtest問題無いメモリでも発症する
・Corsairのメモリはおみくじ
パッケージ管理しりーず dpkgによるパッケージ管理 (Debian系)
dpkgとは
Debian系で使われているパッケージ管理コマンド。
Red Hat系のrpmコマンドとほぼ対応する立ち位置にいる。
対象となるファイルはDebian形式のパッケージファイルで、拡張子は.debである。
主なオプション
-E 同バージョンが既にインストールされていればインストールを行わない
-Q 新バージョンが既にインストールされていればインストールを行わない
-R ディレクトリを再帰的に処理
-i(--install) パッケージファイル名 パッケージのインストール
-r(--remove) パッケージ名 パッケージのアンインストール
-P(--purge) パッケージ名 パッケージの完全削除(設定ファイルも含めて削除)
-l(--list) [検索パターン] インストール済みパッケージを検索して表示
-L(--listfiles) パッケージ名 指定したパッケージからインストールされたファイルを一覧表示
-s(--status) パッケージ名 指定したファイルがどのパッケージからインストールされたか表示
-C(--audit) 壊れているパッケージのチェック
使い方
vimのdebパッケージをDLしてインストールとかだとこんな感じ。
$ ls -l | grep vim
-rw-r--r-- 1 tmin tmin 952724 Nov 23 01:53 vim_7.4.488-7+deb8u1_amd64.deb
rpmコマンドと同じく、リポジトリを参照してパッケージインストールとかはできないので、
基本的には配布されている必要なパッケージにリポジトリが用意されていなかったりして、aptが使えないときに使用することになる。
パッケージをDLしてきて手元に置いてインストールするという手法である。
検索についても、リポジトリ上のパッケージ群から探すのではなく、そのシステムにインストールされているパッケージから選択をする。
よって、dpkg -l 以外はaptが使用できる環境であればaptを使うべきだし、dpkgを使用して直接にdebパッケージをインストールする前に
そのパッケージを配布しているリポジトリが無いか探すべきである。
しかし、どうしてもない場合ないしバージョンにこだわりがある場合、もしくはネット環境が無い場合など、まれに必要になることもある。
ちなみにGUIでパッケージインストーラーにてdebファイルをインスコしようとして、リポジトリにそのパッケージのより新しいバージョンがある場合、
リポジトリから入れてよね!!と言わんばかりの警告が出るが、無視してインストールすることは依存関係を満たせば可能である。
また、依存関係で警告が出ている際にも--forceをつけることによって強制的にhogehogeしたりできる。
しかし、のちにupdateでエラー吐いたり、upgradeでエラー吐いたり色んなトラブルのもとになるのであまりお勧めしない。
なお、aptは裏でdpkgを呼んでいるらしい。
こわれたときのなおしかた
dokgでリポジトリ経由しないでdebパッケージインストールしたりして、
依存関係がおかしくなったりするとこんなエラーが出たりする。
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
vim : Depends: vim-common (= 2:7.4.488-7+deb8u1) but 2:7.4.488-7+deb8u2 is installed
Depends: vim-runtime (= 2:7.4.488-7+deb8u1) but 2:7.4.488-7+deb8u2 is installed
zsh : Depends: zsh-common (= 5.3.1-4) but it is not installed
Depends: libtinfo5 (>= 6) but 5.9+20140913-1+b1 is installed
Recommends: libc6 (>= 2.23) but 2.19-18+deb8u7 is installed
Recommends: libncursesw5 (>= 6) but 5.9+20140913-1+b1 is installed
E: Unmet dependencies. Try using -f.
こんな感じで直せることが多い。
$ sudo dpkg --configure -a
$ sudo apt-get -f install
実行例
$ sudo dpkg --configure -a
dpkg: dependency problems prevent configuration of vim:
vim depends on vim-common (= 2:7.4.488-7+deb8u1); however:
Version of vim-common on system is 2:7.4.488-7+deb8u2.
vim depends on vim-runtime (= 2:7.4.488-7+deb8u1); however:
Version of vim-runtime on system is 2:7.4.488-7+deb8u2.dpkg: error processing package vim (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of zsh:
zsh depends on zsh-common (= 5.3.1-4); however:
Package zsh-common is not installed.
zsh depends on libtinfo5 (>= 6); however:
Version of libtinfo5:amd64 on system is 5.9+20140913-1+b1.dpkg: error processing package zsh (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of zsh-static:
zsh-static depends on zsh; however:
Package zsh is not configured yet.dpkg: error processing package zsh-static (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
vim
zsh
zsh-staticsudo apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
vim
Suggested packages:
ctags vim-doc vim-scripts
The following packages will be REMOVED:
zsh zsh-static
The following packages will be upgraded:
vim
1 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
3 not fully installed or removed.
Need to get 0 B/953 kB of archives.
After this operation, 4,776 kB disk space will be freed.
Do you want to continue? [Y/n] y
Reading changelogs... Done
(Reading database ... 164824 files and directories currently installed.)
Removing zsh-static (5.3.1-4) ...
Removing zsh (5.3.1-4) ...
Processing triggers for man-db (2.7.0.2-5) ...
(Reading database ... 164760 files and directories currently installed.)
Preparing to unpack .../vim_2%3a7.4.488-7+deb8u2_amd64.deb ...
Unpacking vim (2:7.4.488-7+deb8u2) over (2:7.4.488-7+deb8u1) ...
Setting up vim (2:7.4.488-7+deb8u2) ...$ sudo dpkg --configure -a
2回めのdpkg --configure -a で出力がなければ問題解決してるはず。
パッケージ管理しりーず aptのリポジトリ (Debian系)
リポジトリの設定(apt用)
Debian系のリポジトリの設定ファイルは/etc/apt/sources.list
デフォルト
$ sudo cat /etc/apt/sources.list
# セキュリティ更新
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free# ベースリポジトリ
deb http://ftp.debian.org/debian jessie main contrib non-free
deb-src http://ftp.debian.org/debian jessie main contrib non-free# 安定版更新
deb http://ftp.debian.org/debian jessie-updates main contrib non-free
deb-src http://ftp.debian.org/debian jessie-updates main contrib non-free# 安定版バックポート
deb http://ftp.debian.org/debian jessie-backports main contrib non-free
deb-src http://ftp.debian.org/debian jessie-backports main contrib non-free
設定変更は
ここ(/etc/apt/sources.list)に追記することでリポジトリ追加、記述削除することでリポジトリ削除。
ちなみに先頭の#がアンコメントになるので、無効にしたいリポジトリの行をアンコメントして無効にすることも可能。
$ sudo apt-get update
で接続エラーが出るようなリポジトリが混じってる時は一旦アンコメントするのも良いだろう。
なお、上記ファイルを書き換えたのちは、キャッシュ更新の為必ず
$ sudo apt-get update
$ sudo apt-get upgrade
してから目的のパッケージを入れた方が良い。
追記するときはこんな感じ。
$ sudo emacs /etc/apt/sources.list
# セキュリティ更新
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free# ベースリポジトリ
deb http://ftp.debian.org/debian jessie main contrib non-free
deb-src http://ftp.debian.org/debian jessie main contrib non-free# 安定版更新
deb http://ftp.debian.org/debian jessie-updates main contrib non-free
deb-src http://ftp.debian.org/debian jessie-updates main contrib non-free# 安定版バックポート
deb http://ftp.debian.org/debian jessie-backports main contrib non-free
deb-src http://ftp.debian.org/debian jessie-backports main contrib non-free#Deb-Multimedia Reposito
deb http://www.deb-multimedia.org wheezy main non-free
deb-src http://www.deb-multimedia.org wheezy main non-free
最後の
#Deb-Multimedia Reposito
deb http://www.deb-multimedia.org wheezy main non-free
deb-src http://www.deb-multimedia.org wheezy main non-free
を追記。
この上で
$ sudo apt-get update
Ign http://ftp.jp.debian.org jessie InRelease
~~中略~~
Get:18 http://security.debian.org jessie/updates/contrib Translation-en [1,211 B]
Get:19 http://security.debian.org jessie/updates/main Translation-en [198 kB]
Hit http://ftp.jp.debian.org jessie/contrib Translation-en
Hit http://ftp.jp.debian.org jessie/main Translation-en
Hit http://ftp.jp.debian.org jessie/main Translation-ja
Hit http://ftp.jp.debian.org jessie/non-free Translation-en
Get:20 http://security.debian.org jessie/updates/non-free Translation-en [14 B]
Ign http://nginx.org jessie/nginx Translation-en_US
Ign http://nginx.org jessie/nginx Translation-en
Ign http://nginx.org jessie/nginx Translation-ja
Get:21 http://www.deb-multimedia.org wheezy InRelease [41.2 kB] ←ここから下
Ign http://www.deb-multimedia.org wheezy InRelease
Get:22 http://www.deb-multimedia.org wheezy/main Sources [47.2 kB]
Get:23 http://www.deb-multimedia.org wheezy/non-free Sources [2,932 B]
Get:24 http://www.deb-multimedia.org wheezy/main amd64 Packages [79.5 kB]
Get:25 http://www.deb-multimedia.org wheezy/non-free amd64 Packages [2,153 B]
Get:26 http://www.deb-multimedia.org wheezy/main Translation-en [39.2 kB]
Get:27 http://www.deb-multimedia.org wheezy/non-free Translation-en [2,933 B]
Ign http://www.deb-multimedia.org wheezy/main Translation-en_US
Ign http://www.deb-multimedia.org wheezy/main Translation-ja
Ign http://www.deb-multimedia.org wheezy/non-free Translation-en_US
Ign http://www.deb-multimedia.org wheezy/non-free Translation-ja
Fetched 1,207 kB in 17s (68.3 kB/s)
Reading package lists... Done
上記リポジトリの情報を読み込んでいるのが見られるはず。
また、読み込みが遅い時にはより速いミラーサイトに書き換えるなども試すことが可能。
パッケージダウンロードに利用するミラーサイトについて
要するにこの/etc/apt/sources.listがCentOSにおける/etc/yum.repos.d/epel.repoのようなものと思っておけば良い。
ちなみに/etc/apt/apt.confをはじめ、/etc/apt配下にいろいろ設定ファイルがあったりなかったりするが、
よほどのことが無い限り触ることは無いような。。。