Lambdaカクテル

ソフトウェア開発者です.玉石混淆です.

GPU不良で起動しなくなったApple製の文鎮を起動するレベルにまで持ち込んだ話

2011 LateモデルのMBPにはあまり良い噂を聞かない。なんでもAMD製のGPUが原因で画面が乱れたり、酷いときには起動できなくなるといった症状が多発しているらしいのだ。この話は噂ではなく本当である。なぜなら今この記事を書いているMBPはその症状で起動できなくなったからである。

f:id:Windymelt:20140902002735j:plain

写真は起動できた頃のMBP。

さてこの症状、GPUが原因で発生している。熱が原因ではないかと疑われたりもしたが、一度発症すると、症状は悪化するばかりで懸命な冷却も幾許かの延命にしかならない。まさに気休めといった状況を繰り返しながら、ついに我がMBPは起動できなくなった。グレーのアップルロゴから全画面がグレーになって停止したり、画面が真っ青になって停止したり、画面が永谷園みたいな模様になって停止したり(これは本当)した。これがインターン前の課題のコーディング中に発生したのだから狼狽するほかなかった。マグネシウム製の鈍い光沢を放つ文鎮は、彼女のネットブックに取って代わられた。

壊れた話はさておきそれが不完全ながら復活する話をしよう。数日前にまだ懲りず「MBP graphics card driver fix」とかで検索していると、このようなサイトを発見した。

Macbook Pro Discreate Graphics Card Issue Fix Updated | Asyncro.com

記事を要約すると、「MBPのグラフィックスチップの問題に進展あり」という話だった。なんでも、

  1. MBPをフリーズした状態で密閉した場所に放置し放熱を阻害することで熱保護システムを強制的にトリガーし、この作用でGPUを使用不可能にすることで起動できるようにする
  2. その後シングルユーザモードで起動しグラフィックカード関連のカーネル拡張を根こそぎ解除する

という荒技極まる話。いささか恐ろしい話なのだが、とりあえずそれを実行して起動できるようになり(不自由だが)使えるようになったのでその手順を紹介する。なお、この手順を行なったことで生じた一切の損害や不都合の一切を椛川は負わないし、情報の提供と引き換えにこれに同意したものとする。

 手順

  1. USBメモリなどのメディアにgfxCardStatus最高バージョンの2.2.1以外*1ダウンロードしておく。
  2. ドライバ類をmacが壊れる直前の状態にまで戻しておく*2。システムファイルの類は正しい位置になければならない。
  3. MBPを起動し、青やグレーとかの画面でフリーズするまで適度に待つ。
  4. MBPを以下の状態に置く。
    • 画面を閉じる
    • ケースやバッグ等に入れ、とにかく新鮮な冷たい空気に触れられないようにする
    • MBPのファンが狂ったようにガンガン回り出すが、勝手にそのうち電源が切れるのでそのまま放置する
  5. すぐにMBPを密閉状態から解放し、電源ボタンを押して起動する(ボディはものすごく熱いのでやけどに気をつける)。冷めるまで待ってはいけない。熱いままに起動させる。起動しないときは何度も試して起動させる。
  6. おそらくMBPは統合GPUを使って起動する。うまく起動したら、すぐにUSBメモリを接続してgfxCardStatusを起動し、画面右上のアイコンをクリックして〈Integrated only〉を選択し、動作モードを統合GPUに固定する。

これで一応操作できる状態になるが、これを永続化するために以下の手順を踏む。

  1. MBPをシングルユーザモードで起動する。これは起動音が鳴った直後に[コマンド]+Sを押すことで遷移できる。
  2. mount -uw /
  3. /_tempなどの適当なフォルダを作成する(ここにAMDカーネル拡張が隔離される)。
  4. 作成したフォルダにAMD関連のファイルを全て移動させる。 sudo mv /System/Library/Extensions/AMD*.* /_temp
  5. 以下のコマンドを実行する: sudo kextcache -v 1 -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions/ これによりAMDドライバのkextを含まないkextキャッシュが構築される。
  6. MBPを再起動させる。 sudo reboot
  7. MBPを通常通り起動させる。MBPは統合GPUのみを使って起動し、起動後も統合GPUのみを使うはずである。

注意

Mac OSXに接続されているあらゆる拡張(kext)を解除してからこの手順を行なうこと。この過程でほかのシステム拡張がまた破損するかもしれない。

ここまで翻訳。

効果

僕のMacは起動するようになったが、いくつかの副作用?が残った。

副作用

  • グラフィックドライバが機能しないので画面が青っぽくなった
  • Finderの挙動がにぶくなり、表示が崩れることがある(リスト表示のとき)
  • カーソルの動きがにぶくなることがある
  • ビデオを再生できない(黒く表示される)

起動こそするが不自由な感じなので、あくまで応急措置として行なってほしい。修理に出したほうが早いです。修理に出すときは先程行なったAMD関係のドライバ関連の移動を元に戻したほうがいいと思います。また、人為的熱暴走スレスレの状況を作り出すのは危険なので、ダメージ覚悟の自己責任で。

*1:記事を書いた現時点で2.3が最新だが、自分は2.3を使ってしまった。

*2:シングルユーザーモードなどを使う。僕は特に何もしていない。