技術者になりたい何か

技術者になりたい何かの覚書的な何かです

「ディスプレイドライバが応答を停止しましたが、正常に回復しました」との戦いの顛末

久々に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 が応答を停止しましたが、正常に回復しました。」
CINEBENCHGPUはほぼ完走できず。途中でホワイトアウト。⇒Windows自体は生きてるので、タスクマネージャとかからCINEBENCH強制終了はできる。
  発生確率は体感7割くらい。
FF14紅蓮のベンチは完走できず。「DirectXに致命的なエラーが」とかなんとか

頻度が結構なのと、まともにベンチ取れないのできつかった。

調査と戦い

軽く調べてみると・・・
Windows XP以降のどのWindowsでも起こる模様。
NVIDIA,AMD,ATIのどれでも起こる模様。
これやったらなおったよ、という記事はたくさんあるけど、みんなバラバラ。つまり原因不明、というか原因はバラバラ。

1.グラボが原因?


まぁグラボっぽいですよね。最初に疑いました。
このエラーがグラボ起因で出る時の原因は主に3つ。
・グラボの故障
・グラボの物理的接触不良(取り付けミス)
・ドライバがおかしい

自作erは故障を疑うのは最後です。
グラボ抜き差ししてみたけど症状変わらず。新品なので埃等による冷却性能低下などは考えにくいです。

次はドライバ。割と新製品なのでこれは疑わしい。
DDUを使って旧ドライバ完全削除して、AMDからの最新のドライバ(ベータと正式版の2種類)を試みる。

www.guru3d.com

 

結果変わらず。

2.BIOS


まぁ新しいですしね。Ryzen用MBはまだBIOS成熟しきってないという話もありますし。
ASUSのサイトから新しい方から3つくらい拾ってきます。
0613 Agesa1.0.0.6α
0609
0606 Agesa1.0.0.4α
あたり。他にも試した気がするけどもう忘れました。
結果は変わらず。

3.メモリ?
www.btopcinfo.com

www.btopcshop.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一式購入

6/18完成

6/19戦闘開始

7/3メモリが原因っぽいのをつきとめる

7/13サポートから戻ってきて復活・・・したと思った

7/17再発して電源プランを疑う

7/31Radeonのドライバ更新の望みをかけるも打ち砕かれる

8/7やっとこさメモリ決める

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) 壊れているパッケージのチェック

使い方

$ sudo dpkg -i hoge.deb
$ sudo dpkg -l hoge

vimdebパッケージをDLしてインストールとかだとこんな感じ。

$ ls -l | grep vim
-rw-r--r-- 1 tmin tmin 952724 Nov 23 01:53 vim_7.4.488-7+deb8u1_amd64.deb

$ sudo dpkg -i 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.

上記の場合はvimzshの依存関係で問題有り。

こんな感じで直せることが多い。

$ 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-static

sudo 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

## Debian アーカイブミラー

# ベースリポジトリ
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

## Debian アーカイブミラー

# ベースリポジトリ
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配下にいろいろ設定ファイルがあったりなかったりするが、
よほどのことが無い限り触ることは無いような。。。

 

Sponsored Link