Mac Pro 5.1にNVMe M.2 SSDをブートドライブとして使う方法

Mac Pro 2009,2010,2012をファームウェアアップデートで機種ID Mac Pro 4.1→5.1にしていることが前提になる。(機種ID Mac Pro 5.1へのやり方はこちらを参照
Mac Pro 2009-2010 Firmware Toolをダウンロードしてやる場合は、こちらから。(Github)
もとはフォーラムの投稿にあったのだけど、Githubにあがりなおしたみたいだ。

表題のNVMe SSDをブートドライブ(起動ディスク)として使用する場合、上記の機種IDに加えてシステムファームウェアのバージョンが重要になる。

林檎マーク→このMacについて→システムレポートの画面

システムファームウェアは、以下のインストール時に更新される。

macOSBoot ROM動作状況
10.13.xMP51.008x.B00NVMe 認識, 起動不可
10.14138.0.0.0.0NVMe 認識, 起動不可
10.14.1140.0.0.0.0NVMe 認識, 起動可
10.14.4141.0.0.0.0NVMe 認識, 起動可
10.13.x High Sierra / 10.14 Mojave

つまり、Mojaveリリース直後だと138.0.0.0.0のため起動不可となっているし、High Sierra以降にOpen coreを使ったインストールをしている場合、MP51.008x.B00で止まっている可能性がある。
このファームウェアアップデートはMojaveの対象インストーラー(140.0.0.0.0は10.14.1〜14,3、141.0.0.0.0は10.14.4〜14.6)を使用しない限りアップデートされない。MojaveをインストールしていないとファームウェアはMP51.008x.B00のままだと考えていい。

もし、PCIe経由でNVMeを装着し、インストーラー時点では認識するのにブートメニューで表示されない場合は、ほぼ間違いなくシステムファームウェアのバージョンが138.0.0.0.0以前になっている。(その場合、ボクの環境ではNVMeは外部ディスクとなっていた)

ちなみにOpen Coreで起動しているMacOSだとここがバグって999.999.999.999.999になっていることがあるけど、気長に再起動すると稀に正常表示がある模様。

解決策

gibMacOSを使ってMojave 10.14.4を入手し、ファームウェアアップデートを行う

あまりないと思うが、Mojaveのインストールには、Metal対応のグラフィックスカードが必要。しかしファームウェアアップデートにはMacOSに対応したEFIグラフィックスカードが必要。
なので、もしATIのEFI対応していないグラフィックスカードを使用している場合は、以下の手順となる。

  1. Metal対応のグラフィックスカードを指した状態で、Mojaveインストーラーを起動。(Metal対応チェックが入るため)
  2. インストーラーを進めると、ファームウェアの更新が必要なため、電源が切れたあとに、電源ボタンを長押し(白い電源LEDが高速点滅するまで)せよという表示がでるので、画面を進める。
  3. 電源が切れる
  4. グラフィックカードをEFI対応(元々標準でついていたものとか)を取り付ける。
  5. 電源ボタンを長押しし、白い電源LEDが高速点滅したら指を離す。
  6. ビープ音がなり、一度電源が自動的に落ち再起動がかかる。
  7. ここで電源を手動で長押しして落とし、グラフィックカードをMetal対応に付け替える。
  8. OS起動後に、Mojaveインストーラーを起動しインストーラーが進めば成功しているし、システムレポートでもファームウェアが更新されていれば成功。

手順としては以上となる。
ちなみにMojaveはOSをインストールする必要はなく、ファームウェアだけ更新すればいいので、どのOSでも事前に可能とのこと。
クリーンインストールしよーっとと何も考えずにNVMeを装着したらブート起動で選択できず、Mojaveを入れるためにHigh Sierraをインストールしたボクのような人がでないことになれば幸いだ。

まさか新しいOSから古いOSのインストーラーが起動するなんて思いもしなかった……。
余談だが、ブートディスク可能状態だとディスクユーティリティでちゃんと内蔵ドライブとして認識される。ファームウェアが起動可能 / 不可能、どっち側なのか指標になると思われる。

DiskSpeedTestを念のためはしらせてみたら、 Read 1,506MB/s Write 1,231.6MB/sとまずまずの数値。実際起動も早いので費用対効果は高め。

M.2 NVMeブート起動でFaltal Error

M.2 NVMe稀に起動中に下記エラーが発生する。

panic(cpu 4 caller *********): nvme: "Fatal error occurred ....

どうもAppleのドライバーバグの模様。
しかし元々AppleはM.2を交換するとか、下駄履かせてM.2を使うを想定していないので起こりえずして起こっているバグのようなものらしい。
主に電源投入後の起動時にエラーが出るが、だいたいエラー発生後勝手に行われる再起動でそのまま起動する。運が悪いとひっかかる踏切みたいなバグだ。

SSDが安いと起こりやすいとか、下駄が高いと起こりにくいとか諸説ある。そもそもこの辺の情報をBlogで書く人が現在は希少種なので真偽は闇の中。

無難にエラーがでないのはSATA接続なのは間違いない。
そこまでM.2と値段も変わらないしね……。

2023/04/02追記
Faltal ErrorはOpenCoreのバージョンで回避できるという情報があったのでバージョンアップしてみたが、0.5.2では自動的に再起動がかかっていたのに、0.6.1では自動で再起動がかからず起動時のプログレッシブバーが止まってしまう。
もっとも職場のMacは電源が死にかけているので、もしかしたら電源不足で起動に失敗している可能性が捨てきれない……。

Mac Pro 2009にOpen Core Legacy Patcherを使ってMacOS Monterey 13.6を PCIe / NVMe M.2 SSDにインストールした

やったことを書くと一行なのに、途方もなく苦労したので同じような苦労をしている方向けに記録を残すことにした。
一応検索エンジン向けに大きくハマった、以下2項目は別記事にして探しやすいようにする。

心底苦労した。とくにMetalが有効にならないのせいで20回近く再インストールするはめになった。
Open Core Legacy Patcherは便利で手軽だが、特定環境では心底厄介なことになる。
結局9月の3連休はそれで丸つぶれだ……とほほ。

インストール環境
・Mac Pro Ealry 2009 / 機種ID Mac Pro 5.1
・Intel Xeon X5680 Single
・AMD RTX580 / 4GB
・RAM 48GB
・NVMe M.2 SSD 1TB

余談だが、NVMeはMacOSに潜在的な不具合があるらしく起動時に結構な頻度でカーネルパニックを引き起こす。(nvme: “Fatal error occurred. CSTS=0xffffffff”みたいなやつ)
何度か再起動すれば問題なく使えるし、NVMeの当たり外れみたいなものみたいなので、気になる人はちょっとお高めのNVMeをご購入したほうがいいかもしれない。
ボクはお試しということもあって、1TB 8,500円で購入した。
貧しさがすべての原因。

NVMe M.2のPCIe変換カードは昔は玄人志向が最安値だったけど3,000円近かったので見向きもしていなかったけど、流石に1,000円以下で買えるようになったのなら!と今回決行。
DiskSpeedTestを念のためはしらせてみたら、 Read 1,506MB/s Write 1,231.6MB/sとまずまずの数値。実際起動も早いので費用対効果は高め。(起動すれば)

システムディスクとして認識されている

test

仕事で予約投稿の時間で0:00が指定できなくて、嘘だろ。なんでやねん。とサーバの違いかと思って自分のBlogでやっても指定できないか試した投稿がきっちり投稿されてるの忘れてました。失礼しました。

WordPressの予約投稿で0時指定ができない

ちなみにWordpressのこれほんとゴミカスだと思うけど、予約投稿の時間指定のフィールドは数字の0入力不可能で1~12しか入力できない
だからもし日付変更と同時に投稿したい場合は、AM12:00を指定するらしい。
でもそれだと正午の時はPM12時になるんだろうか。

昔の日付をすべて入力するやつならできるけど、gutenbergだとできないとか劣化もいいとこ。

Mac Pro 2010にMacOS Monterey 12.1をインストールした

big surを使っているとシステム更新でMontereyにアップデートしろという通知がきになったのと、最近土日をずーっと部屋で過ごしているだけだったこともありOSをアップデートすることにした。

もちろんナチュラルにインストールに失敗した。

わかりきっていたので驚くこともなかったが色々ハマりにハマって、今こうして無事インストールを終えることができた。
以下はハマった要項。

USBインストール後にMacOSがファームウェアアップデートを試みて進まない(OpenCoreのバージョンが古い場合に発生 v0.6.7)

USBにOpenCore Legacy Patcher をインストール(GUI版でインストール先をUSB設定)し、Optionキー押しながら起動のBootmenuより、OpenCore Legacy Patcherのアイコンがついた「EFI Boot」を選択して起動。
そのあとはOpenCoreの画面となるので、MacOS Montereyのインストーラーを選択する。
(USBメモリをMacOS Montereyのインストールメディアとして作成し、そこにLegacy patcherもインストールしている場合はUSBメモリ入れ替えずにインストール可能)

このやり方でインストールすると、先程ひっかかったファームウェアアップデートは発生せずにインストールがすんなりと完了した。

インストールしたあとは、もとの古いOpenCore 0.6.7でも起動可能となった。
単純にインストール時のファームウェアチェックでひっかかった模様。
なんかの機会に新しくしようと思う。

MacOS Montereyがバカ重い(Geforce 6xx、7xxを使っている場合)

最初はインストール後の処理問題かと思ったけど、クリーンインストールして設定画面がバカみたいに重くてマウスカーソルが吹っ飛んでいった。
その後、一度デスクトップにしても重いままだったので、流石になにかおかしいと調べると、Montereyやbig surを完全にクリーンインストールして起動した場合は、古いOSからnVidiaのドライバーをもってこれないらしく用意する必要があるとのことだった。

これはgitHubにpatcherがあるけど、やり方がややわかりづらいのでYoutubeの動画で説明があったので掲載。

geforce keeper patcher v2 | github

60%でうんともすんともいわなくなるけど、動画のようにいつかは終わるので気長に待つ。
ドライバーがインストール後は再起動で動作が軽快となる。
Happy ending.

困っている人のお役に立てば幸い。

swiper.jsでサンプルサイトのソースコードをコピペしても戻る・進む(prev/next)ボタンが動作しないとき

知識を提供してくれるblogサイトに感謝を。

CDNswipe.jsを読み込んだときに、「このコードで動作します」というコードをコピーペーストしても何故か進む・戻るだけが動作しなくて頭をひねった。
もっともswipe.jsのドキュメントを読めば話は終わりなのだが、時間がないの!助けて!というときはドツボにハマってそんなことにすらたどり着けない。
今日のボクです。

そんなわけでオチとしては、戻る・進むボタンに指定する方法がswipe.jsのバージョンで異なる。

最新のcdn読み込みswipe.js用の指定方法(2021.09.15現在 v7.0.5)

// CDN
<script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/7.0.5/swiper-bundle.min.js"></script>

<script>
// 最新のcdn読み込みswipe.js用(2021.09.15現在 v7.0.5)
  var mySwiper = new Swiper ('.swiper-container', {
    navigation: {
      nextEl: '.swiper-button-next',
      prevEl: '.swiper-button-prev',
    },
  })
</script>

旧versionのswipe.js用の指定方法

<script>
// 旧バージョンのswipe.js(サンプルサイトのコードによくある記述)
   var swiper = new Swiper ('.swiper-container', {
     nextButton: '.swiper-button-next',
     prevButton: '.swiper-button-prev',
   });
</script>

お困りの方のお役に立てば幸い。

Mac Pro Mid 2010 / Mac OS 11.5.1 update

4日ほど前に11.5.1が配布されていたようだが、何度かアップデート残り5分で止まっていたのでやり直しては放置していた。
先程無事ダウンロードできたようで再起動が数回かかってアップデートした。

M1でアップデート失敗みたいな投稿をいくつか散見したが、アップデートファイルを完全にダウンロードできてしまえば失敗はしないようだった。
3回再起動して無事起動。