「あのかぼ」のスピンオフサイト「ゼロかぼ」ができました。 詳しくはこちら>

EFI ROM(ファームウェア)の破損したMacBook Late 2009を修理してみた話【備忘録】

修理・カスタマイズ

EFI ROM(ファームウェア)の破損したMacBook Late 2009を修理してみた話【備忘録】

暑い日が続きますね。

本日はファームウェアが破損した白ポリカのMacBook (13-inch, Late 2009)を修理した際の作業内容をサササーッとまとめてみたいと思います。

いつもより随分と緩めの記事です。

目次

はじめに

前述の通り、この記事ではEFI ROMの破損したMacBook (13-inch, Late 2009): MacBook6,1の修理記事です。ただ、実際に作業を行ったのは数カ月前で、ややうろ覚えなので、あくまでも備忘録程度にまとめてます。

ことの発端 —白ポリカのMacBookが可愛すぎる

プラスチックボディーのMacはお持ちですか?
白いものは白いポリカーボネートであるために俗に「白ポリカボディーMacBook」や「白ポリカのMacBook」なんて呼ばれたりしますね。
筆者は白ポリカのiBookとMacBook (13-inch, Late 2009)とMacBook (13-inch, Mid 2010)を所有しています。

特にMacBook Late 2009とMid 2010は他に所有しているアルミボディのMacBook Pro 2010や2012などと見た目が変わらないのに、プラスチックで覆われてる感じがとても気に入ってます。

筆者は気に入ったパソコンがあると、ついつい集めてしまう面倒な癖があり、突発的にMacBook (13-inch, Late 2009)が欲しくなり、この事態に巻き込まれました…。

MacBook (13-inch, Mid 2010)でmacOS Montereyを実行している際のイメージ画像

Macは起動(POST)時に異常を検出すると、ビープ音やステータスインジケータランプで、そのトラブルの内容をユーザーに通知します。

5 秒ごとに 1 回、繰り返しビープ音が鳴る
→ Mac がメモリ (RAM) を検出していません。メモリを増設または交換したばかりの場合は、適切に取り付けられているか確認してください。
ビープ音が 3 回鳴り、5 秒休むを繰り返す
→ Mac のメモリが整合性チェックに合格しませんでした。メモリを増設または交換したばかりの場合は、適切に取り付けられているか確認してください。
ビープ音が長めに 3 回鳴り、短く 3 回鳴り、長めに 3 回鳴る場合
→ ファームウェアの問題を解決するために、Mac がファームウェアを復元しています。進行状況バーが表示される場合がありますが、その後 Mac が通常通りに起動するはずです。
Appleから引用 一部加工しています。

今回修理したMacはこの表のうち、「ビープ音が長めに 3 回鳴り、短く 3 回鳴り、長めに 3 回鳴る場合」に該当しますが、自力での修復が出来ないようでこれ以上の起動はできませんでした。

MacがEPPROMに書き込むもの

※ EFI(UEFI)については非常に興味があり「勉強しよう!」と思っては断念、思っては後回し…になっているため、この解説はズレているかもしれません。

PowerPC時代のMacではファームウェアとしてOpen Firmwareを使用しており、nvramには起動先の情報などが保存されましたが2006年以降から発売されたIntel CPUを搭載したMac以降ではIntelが開発したEFI(Extensible Firmware Interface)に切り替わりました。

このEFIには、EFIが書き込まれているEPPROM内にデータを保存できる領域(EFI NVRAM またはUEFI NVRAM)があります。Apple ではシンプルに「NVRAM」と呼んでいます。

AppleによるとNVRAMには以下のものが保存されるとされています。

NVRAM に記憶される設定情報には、音量、画面解像度、選択されている起動ディスク、時間帯、最近起きたカーネルパニックの情報などが該当します。実際に NVRAM に記憶される設定情報は、お使いの Mac と、Mac で使っているデバイスによって異なります。

Appleより

この他、2009年以降に発売されたMacではインターネットリカバリーに対応していることから、NVRAM上にWi-Fiの接続情報が記録されていたりします。

Macで新しいネットワークに接続したり、音量や起動ディスクを変更されるたびにNVRAMにアクセスをして、データを更新するため、タイミングによっては異常が生じます。

その際にはNVRAMのリセットを行えばよいのですが、今回のように稀ではありますがNVRAMのリセットでは解決できないトラブルに陥ることもあります。

次の章から、実際に修理する方法について見ていきます。

用意するもの

AppleはEFI ROMとSMCファームウェアの提供を行っており、本来ならそれをダウンロードしscapファイルを抽出して…云々が出来そうなところですが、MacBook (13-inch, Late 2009)については提供がありません。その為、どうしても「正常に起動するMacBook Late 2009」またはEFI ROMのダンプが必要です。

修理を開始する

正常に動作するMacBookからEFI ROMを抽出する

EFI ROMを抽出する方法はいくつかありますが、正常に起動するMacの場合には、あのかぼでも度々紹介していますDosDude1さんが開発した「ROM Tool」を利用すると簡単です。

ただし、ROM ToolでEFI ROMのダンプするにはEEPROMの型番を調べておく必要があります。

▼ EFI ROMのダンプをたいので、「Dump System ROM…」というボタンをクリックします。

▼ EFI ROMファイルにつけたい名前を入力し、「Save ROM」をクリックします。

▼ Macのパスワードを求められたら入力し、「OK」ボタンをクリックします。

▼ EEPROMの型番を設定します。プルダウンメニューをクリックすると利用可能な選択肢が表示されます。

▼ この例では「MX25L3205D/MX25L3208D」を選択しましたが、実際に作業される場合には、お持ちのMacのEEPROMの型番を調べて選択しましょう。
(型番はEEPROMの上に印字されています。そうでなくとも小さい字なのに印字が薄くなっている場合もありますので、頑張って解読してください…。)

▼ EEPROMの型番を選択出来たら、「Continue」をクリックします。

▼ するとダンプが始まります。少々時間が掛かりますので作業が終わるまで暫く待ちます。

▼ 「ROM Dumped Successfully」と表示されたら完了です。「OK」ボタンをクリックし、ROM Toolを閉じます。

EFI ROMが破損しているMacBookからEFI ROMを抽出する

EFI ROMが破損しているMacからEFI ROMを抽出するには一度分解する必要があります。

電源を切ったことを確認し、裏蓋にある8本すべてのねじを取ります。
裏蓋は数か所のツメで固定されていますので、スパッジャーでゆっくりと取り外します。

分解ができるとCPUファンの近くにEEPROMがありますので、その上に記載されている型番を控えます。

そして、EEPROMをICテストクリップで接続します。

ちなみに、このCH341Aは以前、iMac 2011のGPUを換装した時にVBIOSを書き込んだ際に使用したものと同様のものです。

▼ 「CH341A Programmer」を利用しました。(ちなみに、下図はVBIOSを書き込んだ際に用意した画像を流用しています。)
新しめのバージョンであれば自動ででEEPROMの型番を調べてくれると思いますが、認識されない場合には「Chip Search」をクリックし、検索しましょう。

EEPROMの型番の指定が出来たら、「Read」をクリックしEFI ROMを抽出します。

読み出しが完了したら、正しく吸出しが行えたかチェックをします。
「Verify」ボタンを押します。ここで、問題がなければ、「Save」ボタンをクリックします。

▼ そして、名前を付けて保存します。
この作業(ROMの吸出し)を2回ほど行っておくと安心かもしれません。

次のステップでEFI ROMを加工していきます。

EFI ROMをマージして書き込むMac向けのEFI ROMを生成する

今までの作業で、必要なファイルは全て揃いました。
あとはWinMergeなどでファイルを比較し、MacのシリアルナンバーとUUID、MACアドレスの3点を元のファイルのものに置き換えていきます。

シリアルナンバーについてはベタ打ちされているので、ファイル内の文字列を検索することで簡単に見つけ出すことができると思います。

ただ、UUIDとMACアドレスについてはエンコードされているため、UEFIToolを使って編集するか、バイナリーエディタで比較した結果を転写しましょう。

MacにEFI ROMを書き込む

それではいよいよ、今用意したEFI ROMをMacに書き込んでいきます。

先ほどと同様にICテストクリップでEEPROMを挟み込み、チップの情報をCH341A Programmerにセットします。

そして「Open」をクリックします。

▼ 作成したEFI ROMを選択します。

▼ 選択が出来たら「Auto」ボタンをクリックし、しばらく待ちます。

▼ 書き込めたら完了です。

書き込まれた情報をチェックする

では、いよいよMacを立ち上げて内容を確認してみましょう。

Macが起動したらAppleメニューをクリックし、「このMacについて」をクリックします。

そして、「システムレポート」をクリックします。

ここで確認すべきは、「シリアル番号 (システム)」と「ハードウェアUUID」、「MACアドレス」です。
「MACアドレス」は左ペインの「ネットワーク」をクリックし、右ペインの上のリストボックスの「Ethernet」を選択、そして、下の表にある「Ethernet」欄の下に表示される「MACアドレス:」を確認してください。

もし修正が必要なら先ほど用意したEFI ROMを編集して、再度Macに書き込みます。
Macが起動するようなら、ROM Toolを使用して書き込んでもいいかもしれません。

その際には、Macを「ファームウェア書き込みモード」で立ち上げる必要があります。
「ファームウェア書き込みモード」で立ち上げるには、Macの電源を切った後、電源ボタンを15秒長押しし、ステータスインジケータランプ(SIL)が高速に点滅を繰り返したことを確認して指を放します。

まとめ

いかがでしたでしょうか?

Macのビープ音が鳴り響き、画面が真っ暗の状態が続くと絶望を覚えたかもしれませんが、バッチリ直すことが出来ました。

MacBook (13-inch, Late 2009)やMacBook (13-inch, Mid 2010)はCPUこそ非力ですが、SSDに換装し、Catalina PatcherでmacOS CatalinaをインストールするかOpenCore Legacy PatcherでmacOS Big Surをインストールしてあげることで、随分とモダンな雰囲気で利用することができます。

EFI ROMをマージして~は随分と端折ってしまいましたがとりあえず、シリアルナンバーとUUID、MACアドレスだけ(は絶対に)書き換えてあげればOKです。

最後までお読みいただきありがとうございました。

それでは、引き続き楽しいMacライフを!

では!