MacPro 5.1 で 32GB DDR3 ECC RAMをOSXで「無理矢理」使う。

2019年7月14日

はじめに

このハックはあなたのMacProを使用不可能するリスクがあります。あくまでも当方の検証記事であり、同様の作業をした場合の動作・安全を保証するものではありません。
私はこのリスクの一切の責任を負うことが出来ません。この点をご理解いただきこの記事をお読み下さい。

MacPro5.1モデルではこれまで6コアモデルで64GB、12コア(2CPU)モデルでは128GBのRAMが最大容量と言われてきました。
以前海外のフォーラムを見ていて、12コアモデルで160GBのRAMを認識している(Yosemiteで)のを見て、eBayでSamsungのM393B4G70BM0-YH9を4本購入しました。

しかし当時使っていたX5690が2機載ったMacPro2009(5.1化済)マシンでは、32GB×4 + 16GB×4 でEFIブート画面までは出るもののHighSierraやMojaveではリンゴマークが出た後はブートが進まずRAM 192GBの夢は達成出来ませんでした。
ただ別パーテーションのWindowsは普通に起動しRAMも192GB認識していたのでこれはOS側の制限なんだろうなぁ〜という事でそのままRAMもお蔵入りしていました。

その後、Z300系の自作機でHackintoshと言われるMacOSを入れる夢を見ていたのですが、32GB DDR4対応を機に入手したRAMがやはりmacOSでは起動せず散々苦労していた所、海外のどこかのページで見かけた情報で試してみた所、見事に認識
こんな感じで情報提供もさせてもらいました。

そこでふと… 今回散々苦労した時に止まっていた部分とMacProで止まっていた部分って同じじゃね?と気づきやってみた所、うまくいっちゃいました。
折角なので手順を公開しますが、「完全な検証」が出来ている訳ではありません。私は普段は使っていない予備機で検証しています。
 

現在の問題点

スリープから正常に画面が復帰しない。(ハード的には起動するんですが画面が出ません。ですのでスリープを常用出来ません。結構問題… 恐らくconfig.plistでうまくパッチが当てられれば解決出来そうですが、現在は安全性を最重視しておりすべてのパッチを外してあります。)
システム情報→PCI情報の表示がおかしい(現在私はGTX780カードのみ装着してあり、NVidiaのWebDriverでのPCI情報は正確に表示されます。表示のみの問題と思われます。)
※重要
Cloverを使うとMacのファームウェアを破壊する場合がある
(今の所は大丈夫そうですが、ネットで検索するとMacBookなどでの事例があります。Cloverのconfig.plistではメモリー部分の表記とシリアル以外の項目はほぼすべて削除してあります。MacProですと過去にも非対応OSを起動する為にCloverを使うハックもあるので大丈夫かな?と思いますが、リスクはある事を認識して下さい。)
 

検証環境

MacPro 2009(5.1化済) X5690 6コア シングルCPUモデル
EFIブート画面が拝める純正もしくは改造グラフィックカードである事(必須です)
macOS 10.13.6 (High Sierra)
 

準備するもの

USBメモリ(必要容量は10M程度なので小さな容量のものでもOK)
Clover EFI bootloader (最新版をダウンロード)
Clover Configurator (最新版をダウンロード)
32GB RAM 4本( M393B4G70BM0-YH9 を使用。まだ装着はしない。)
設定用の config.plist ファイル(32GB RAM 4本としての設定済)
 

事前に確認しておく事

「左上リンゴマーク」→「このMacについて」→「システムレポート」で表示される「ハードウェア」の欄で表示される情報のうち、
「シリアル番号(システム)」「シリアル番号(プロセッサトレイ)」の2点

導入[1] USBメモリーの準備

ディスクユーティリティーを使用して、準備したUSBメモリーをフォーマット(消去)します。名前は自分がわかりやすい名前であれば何でも構いません。
 

導入[2] Clover EFI Bootloaderインストール

ダウンロードしてある Clover EFI Bootloader のZIPファイルを解凍するとインストーラー(pkgファイル)が出てきますのでこれをクリックしてインストールを開始します。

「続ける」で進みます。

この画面まで進んだら「インストール先を変更」をクリックします。

先ほどフォーマットをしたUSBメモリーを選択し「続ける」で進みます。

インストール先が間違い無い事を確認したら、「カスタマイズ」に進みます。

チェックを入れるのは2箇所だけです。それ以外のチェックはすべて外して下さい。確認をしたら「インストール」でインストールを行います。
これでブートローダーのインストールは完了です。
 

導入[4] 設定ファイル編集

それではUSBメモリをファインダーで見てみましょう。

「EFI」→「CLOVER」と辿っていくと「config.plist」という設定ファイルがありますのでこのファイルをダウンロードしてあるファイルに入れ替えて下さい。

今度はやはりダウンロードしておいた、Clover Configurator を起動します。
画面左下のマークをクリックするとファイル選択画面が出ますので、USBメモリーに入っている先ほどの「config.plist」を選択します。

ファイルを開いたら「 SMBIOS 」セクションを開きます。
「事前に確認しておく事」の欄で控えている

「シリアル番号(システム)」→ Serial Number(左下赤枠)の欄に入力
「シリアル番号(プロセッサトレイ)」→ Board Serial Number(右中段赤枠)の欄に入力

して下さい。この数値は絶対に間違えないようにして下さい。その他の欄はすべて空白で大丈夫です。
(シリアル番号は入力しない場合、Clover Bootloader が自動生成してくれるのですが、そうすると実際のMacPro本来のシリアル番号ではなくなってしまいます。ソフトウェアの認証などにシリアル番号を使用している場合などに問題が出ると思いますので、必ずMacProの実際のシリアル番号を記載して下さい。)

macOSは「32GBのメモリーが4枚刺さってますよ〜」と伝えるとメモリーチェックの所でOS起動が停止しOSが起動しません。そこで Clover Bootloaderを通じてmacOSに「16GBのメモリーが8枚刺さってますよ〜」と偽りの情報を伝える事で起動時のメモリチェックを無事に通過して起動する事が出来るようになります。
この点が今回の32GBメモリーが使えるようになる突破口となりました。

今回の場合は各メモリーの容量を16GB(16384)、スロット数(SlotCount)を8に設定してありますがここはそれぞれメモリーの本数に応じて変更をして下さい。
例えば32GBのRAMが3本で試す場合は、スロット数は「6」、各メモリーは0〜5までの6本分の記載をします。(減らす場合はマイナスマークで、増やす場合はプラスマークで欄を増やして項目を入力します。slot番号は必ず0から順番に初めて下さい。)
チャンネルの部分は空白でOKです。
メモリーの部分は最低限「Slot」「Size」「Frequency」「Vendor」「Type」を記入する必要があります。「Part」「Serial」は空欄で大丈夫ですがここを記入しておくと、「システムレポート」の「メモリ」部分で「パーツ番号」「シリアル番号」も表示されます。

最後に間違いが無いか確認したら、左下2番目の部分をクリックし「Save」を選んでファイルをセーブして下さい。ただ画面を閉じるだけだとセーブされませんので注意して下さい。

これで下準備は完了ですので電源を落として下さい。
 

さぁ32GB RAMを装着しましょう

メモリスロットに 32GB RAM を装着します。
USBメモリーもきちんと刺さっているか確認して下さい。
 

起動の仕方

メモリを交換したら最初にNVRAM(PRAM)リセットを行いましょう。
2回目の「ジャーン」が鳴った瞬間に一度キーを離し「option」キーを押しっぱなしにします。

際どいタイミングでうまくいかずにいきなりリンゴマークが出てしまいフリーズしてしまったら、一度電源を落として下さい。
その後電源ボタンを押したら「option」キーを押しっぱなしにして下さい。

うまくいった場合は起動ディスク選択画面になります。

「HighSierra」が今回動作させるmacOSですがまずは「EFI Boot」を選択します。

Clover Bootloaderが起動しますので、起動するディスクが HighSierra で間違い無い事を確認して選択・リターンキーを押します。

無事にプログレスバーが表示されれば、ほぼ任務完了です。
さぁ、ログインしてチェックしてみましょう♪

シングルCPUですが、見事に128GB RAM搭載で macOS 起動に成功しました。
現時点ではプログラムの動作などにも特に不具合は感じません。もしかして世界初?ついに目的達成です♪
 

考察(config.plistの設定と実際のメモリー量)

今回検証には 6コア シングルCPU モデルを使用しました。可能性の話ではありますが、12コア デュアルCPU モデルを使えば 256GB RAM で起動する可能性もあります。最大のネックは 256GB で一番最初のEFIブートセレクタ画面が出るか?という点です。ここさえクリアできれば起動の可能性は高いです。
(昔当方が、デュアルCPUモデルを持っていた時には192GBまでであればブート画面までは辿りつけたので可能性は高いかもしれません。ただ現在はテストマシンを持っていないので…)

実はこの clover boot loader でのメモリーの設定(config.plist)ですが実際のメモリ構成と違う情報を書き込んでもOSは起動し、メモリ情報の表示が可能です。

今回、config.plist でスロット数を16本、各メモリーを16GBに設定してみました。(実際のメモリーは32GB×4本の状態です。)すると、、

このように、256GBのメモリーが装着されてるよと表示されるではありませんか… つまり明示してやればメモリーの表示は変えられるという事になります。
そうなるとOSとしてメモリー認識がおかしくなってしまい、存在しないメモリアドレスを使おうとしてOSが落ちてしまうのではないかと不安になりひとつテストをしてみました。

テストには Rember を使用します。こちらはmacOS上で空きメモリーのメモリテストを行ってくれます。

■テスト1 config.plistで16GB×8(128GB)の設定にし、実メモリも32GB×4(128GB)の場合

■テスト2 config.plistで16GB×8(128GB)の設定にし、実メモリは8GB×4(32GB)の場合

これなら心配ありませんね。config.plistに明示しているメモリーはあくまでもOS情報などで表示するメモリー量になりますが、実際に認識しているメモリー量はきちんとハードウェア・ソフトウェア共に問題無く管理されているようです。

もちろんメモリーテストも両方の設定で問題無くクリアしました。(当然32GBの方はテストのスピードも調査アドレスが少ない分、早く終わります。)
 

不確定要素

■4コア・8コアモデルでの動作
現時点ではテスト環境が無く不明です。
■RAM容量を混在させた時の設定
今回は4スロットとも32GB RAMを装着しましたが、例えば32GB RAMを2スロット・16GB RAMを2スロットとした時はどう設定するのか?
■NVMeストレージからの起動
こちらは現在テスト環境がありません。恐らくCloverBootLoaderインストール時にNVMeドライバを合わせて導入すれば動きそうな気がしています。

この点は人柱になってくれた方から是非コメントいただきたいです。

長々とした記事を最後までお読みいただきありがとうございました。
是非良いマックライフをお楽しみ下さい。

Leave a Comment

CAPTCHA