画面が突然真っ暗になる

 
今まで普通に使用できていたPCですが年末も近づきPCを掃除しようとケースを開けてエアスプレーで埃を
掃除してPCを起動させたところWindows7ロゴにて急にディスプレイの信号が切れて真っ暗の状態になった
GPUのファンを掃除しようとしてマザーボードから外してファンを掃除したのが原因だったのかなぁ(´・ω・`)
 
・原因調査
なんどか再起動したが同じ現象(Windows7ロゴのが出たときにディスプレイの信号が切れる
("DVI DIGITAL NO SIGNAL"この画面になって真っ暗になる)その後再起動を勝手に行いディスプレイが
真っ暗のまま起動が行われる(起動音が鳴るのでおそらくPCは起動してるのだろう)
 
セーフモードでの起動
電源を起動してBios画面終了後F8キーを何度か押すと下記画面がでるのでセーフモードを選ぶ
セーフモード画面
 
パソコンは起動することを確認した、セーフモードでの起動画面自体に問題はなかったことから
ディスプレイの故障ではなさそう、おそらくシステムファイルが何かの原因でこわれたのだろうとおもって
システムファイルの復旧をおこなう
 
コンピュータを右クリック→プロパティ→左側にあるシステム保護クリック
システムプロパティ
 
あとはウィザードに従って通常に起動してた時のシステムに復元した。
そのあと再起動これで普通に起動できるかとおもったが・・・

またWindows7ロゴで画面が真っ暗にΣ(゚д゚lll)

しかたなくデータバックアップを取ってOSの再インストールを行う
OSインストール後無事Windows7起動 いや~良かった良かった( ´Д`)=3 フゥ
その後付属のマザーボードドライバー、再起動してGPUドライバーをいれて再起動・・・すると

またまたWindows7ロゴで画面が真っ暗に(´;ω;`)ブワッ

 
購入初期状態にしても直らないとか・・・もうPCも寿命なのかなとおもったがまだ使用して2年もたってない
GPUドライバーを入れたらおかしくなるということはドライバーが問題なのかもとおもい
セーフモードで起動→コントロールパネル→デバイスマネージャーを開く
ディスプレイアダプターのGPUカード名を右クリックして無効を選択
デバイスマネージャ画面
 
PC再起動をおこなうと起動できた!
これでGeForceのNVIDIAドライバーが原因で障害が起きてることがわかった
 
ネットで”NVIDIAドライバー 不具合”で検索するとかなりの件数がヒットした
今回私のPCで起こったWindows7ロゴ時にディスプレイ信号が消えるというものは見つからなかったが
”ディスプレイ ドライバー nvlddmkm が応答を停止しましたが、正常に回復しました。”
というエラーでWindowsが起動してる状態で画面が瞬時にフリーズし回復するという状態が他でも多発してるようだ
どうやらwindows7についてるnvlddmkm.sysとNVIDIAドライバーのnvlddmkm.sysが競合するようで
windows7に入っているnvlddmkm.sysを最新の物に置き換えると直るとかなんとか
とりあえず対策として2つ実行してみることにした
 
1.NVIDIAドライバーを最新の物にしてみる
それでも直らなければ
2.windows7が使っているnvlddmkm.sysをNVIDIAドライバーのnvlddmkm.sysに置き換える
 
1のNVIDIAドライバーを最新の物にする(ここのサイトから対象GPUカードを選択して最新をダウンロード)
以下ディスプレイアダプターのNVIDIAを無効にしたまま起動させて作業する
まず元のNVIDIAドライバーをプログラムの追加削除からすべてアンインストールする
レジストリクリーナーを行う(使用アプリは”Glary Utilities 4”を使用しました ここの窓の社から落とせます)
最新のNVIDIAドライバーをインストール
その後再起動・・・
 

結果はダメでした やっぱり無理か(´・ω・`)

 
2のwindows7が使っているnvlddmkm.sysを最新の物にしてみた
windowsフォルダで”nvlddmkm.sys”で検索すると下記4つのファイルが出た
上の2つの日付の新しいファイルはNVIDIAをインストールすると更新される最新ファイル
nvlddmkm検索画像
 
4つのうちの下2つを最新の物(上2つのどちらでもいい)に変更してみた 当然バックアップを取って変更!
再起動・・・・・・・・・・・・・・・
 

やっぱりダメかー

変更したファイルは元のファイルに戻しました
 
ネットでいろいろ調べたけどWindows7(64bit)とNvidiaドライバーはかなり相性が悪いらしいです
最新のドライバーでも頻繁にエラーが出てとてもじゃないけど使用できないって書込みを多数みうけられます
とくに自分の使ってる”GTX 560”は消費電力もすごく高くお勧めできないGeForceに選ばれてました(;^ω^)
買う前にいろいろしらべないとダメだなぁと改めて思った(´・ω・`)
 
さらにネットで検索するとGPU制御で興味深いものを見つけました

WDDM によるタイムアウトの検出と GPU の回復

というものであるURLは下記
http://msdn.microsoft.com/ja-jp/windows/hardware/gg487368
 
この中にある
  1. タイムアウト検出 : Windows Vista グラフィックス スタックの Video Scheduler コンポーネントは、GPU が特定のタスクを実行する際に、許可されているよりも長い時間がかかっており、この特定のタスクを回避しようとしていることを検出します。この回避処理には、"待ち" タイムアウト、すなわち実際の "TDR タイムアウト" が含まれます。したがって、この手順は、プロセスの "タイムアウト検出" 段階です。Windows Vista での既定のタイムアウト時間は、2 秒です。GPU が TDR のタイムアウト時間内に現在のタスクを完了または回避できないと、GPU はハングしたと診断されます。

 

タイムアウト時間が2秒と書いてあるが
NVIDIAインストール後の初期セットアップにかかるディスプレイとの信号のやり取りが2秒以上かかってるのでそれをWindowsがエラーと感知し、NVIDIA処理が正常処理途中なのにGPUハングアップとして処理されているのでは?

 

・エラー対処

GPUハングアップとwindowsに認識させないようにする。
レジストリをいじることになるので注意してください(最悪PCが起動しなくなります)
 
TdrLevel: REG_DWORD。回復の初期レベル
TdrDelay: REG_DWORD。GPU がスケジューラからの回避要求を遅延できる秒数。これは、事実上のタイムアウトのしきい値
TdrDdiDelay: REG_DWORD。オペレーティング システムで、スレッドがドライバーの処理を中断することが許可される秒数。
TdrDebugMode: REG_DWORD: TDR プロセスのデバッグ関連動作。
この4つのレジストリキーを追加します。キーがある場合は値だけ変更
 
レジストリエディタを起動する
スタートボタンを押してプログラムファイルの検索の所に”regedit”と入力すると”regedit.exe”がでるので
エンターキーを押して起動させる
 
TDR 関連のレジストリ キーは、HKLM\System\CurrentControlSet\Control\GraphicsDrivers にあるので
その場所にフォルダ左の+ボタンを押してツリーを展開させていく
ちなみに”HKLM”というのは”HKEY_LOCAL_MACHINE”の事です
レジストリエディタ画像
 
下記値はすべて16進数にて入力(レジストリをいじるときは慎重に!)
TdrLevel:値 0(回復検出なし)
TdrDelay: 値 10(タイムアウト時間を16秒に設定)
TdrDdiDelay: 値 5(スレッドドライバーの中断が許される時間5秒 これは既定値です
TdrDebugMode:値 3(連続タイムアウトの場合も回復する)
 
回復検出をなくす事とタイムアウト時間を延ばすことによりwindowsの誤検知?を回避することができるかも
とおもい値を変更して再起動
windows7ロゴでしばらくハードディスク書込み音がガリガリ、ロゴがグルグル


通常起動出来たああ∩( ・ω・)∩ ばんじゃーい

 
NVIDIAがディスプレイとの信号の確認なのか一回ディスプレイが”DVI DIGITAL NO SIGNAL”となり
その後またディスプレイが再認識されてwindowsが通常起動されました初回だけで2回目からはDVI DIGITAL NO SIGNAL
は出ずに普通に起動できてます。
いままでではこの”DVI DIGITAL NO SIGNAL”でwindowsが2秒以上ディスプレイとの信号がとれすにGPU異常検知としてビデオメモリをクリアして画面が真っ暗になってたのではないかと考えてます。
NVIDIAドライバーの処理時間とwindows7のGPU異常検知の処理時間がミスマッチだったため
起きたものだと思います。
 
ちゃんとNVIDIAドライバーも問題なく認識できてるようで一安心です。ε-(´∀`*)ホッ
スタート→プログラムファイルの検索→”dxdiag.exe”にて確認した画面が以下になります。
 
dxdiag画像
 
NVIDIAドライバーのバージョンが古いものになっているのは
GTX560と次の世代のGTXが統合するまえのドライバーがいいみたい?とネットで見たので使用してます
ちなみにレジストリいじるまえにこのドライバーも試してみましたがやっぱりwindows7ロゴのところで
画面が暗くなって失敗してます。
 
正直GPUの回復検知なしにしていいものかどうかいまだにわかりません(;^ω^)
調べたURL先にも開発者用なので普通はレジストリいじらないでくださいってかいてました・・・
正常起動できたのでレジストリの値を既定値に戻して起動したところ
起動は正常にできたのですがしばらく動かしていると画面が固まり
ディスプレイ ドライバー nvlddmkm が応答を停止しましたが、正常に回復しました。”
とでました。その後はまた普通につかえましたが、画面が止まるとドキッとするのでやっぱり回復検知なしに
もどしました。その後nvlddmkmの反応停止は一度もでてないです。

これで1ヶ月ぐらい使用してますがとくに問題はないですね(`・ω・´)

あとはGPUの温度とかもみてますけがとくに高くならないし
ちょっときになるのはシャットダウン時かな、やたら画面が暗転するのがはやいような・・・
ログアウト→シャットダウンしてます→ディスプレイが切れる が以前より早いような
おそらくGPU検知してないのでそのままメモリクリアしてるんで以前より早くなってるのかな
 

とりあえず普通にPC使えるようになってよかったです。

 
戻る