古いMacに、OpenCore Legacy Patcher (OCLP) を使って最新のmacOS Sonomaをインストールします。これで格安中古MacでもHomeKitが使えます。
古いMacに、macOS Sequoia をインストールする方法は、こちらをご覧ください。
古いMacを活用したい
GoogleやAmazonのスマートホームシステムと比較したApple HomeKitの長所の一つが、パソコンから操作できることかと思います。Macで作業しながら家の照明やカーテンを設定できます。さらにはMacをスマートホーム専用機として使っても良いですし、サーバーとして常時稼働させても良いです。macOSプログラムの中からHomeKitを簡単にコントロールする仕組みも用意されていますので、常時稼働のサーバーを使ったコントロールも可能です。もちろんHomebridgeやMQTTブローカー (Mosquitto) も動作します。
スマートホーム専用機やサーバとして使うならば、古いMacや安い中古Macを活用したいところです。古いMacは拡張性が高いので、メモリを増量したり、HDDをSSDに交換するなどが容易で、以下にSandy Bridge以降のMac miniの仕様を示します。昔のMac miniはメモリもSSDも交換できるので、軽い作業なら十分なハードウェア性能が得られます。
Mac mini | 2023 | 2020 | 2018 | 2014 | 2012 | 2011 |
CPU | M2 | M1 | Coffee Lake | Haswell | Ivy Bridge | Sandy Bridge |
最初のOS | Ventura | Big Sir | Mojave | Yosemite | Mountain Lion | Lion |
最後のOS | 最新 | 最新 | Ventura | Monterey | Catalina | High Sierra |
メモリ交換 | – | – | 可能 | – | 可能 | 可能 |
HDD/SSD交換 | – | – | – | 可能(M.2, SATA) | 可能(SATA x2) | 可能(SATA x2) |
現行HomeKit | 動作 | 動作 | 動作 | – | – | – |
(OSリリース年は、Lion (2011), Mountain Lion (2012), Mavericks (2013), Yosemite (2014), El Capitan (2015), Sierra (2016), High Sierra (2017), Mojave (2018), Catalina (2019), Big Sur (2020), Monterey (2021), Ventura (2022), Sonoma (2023)。)
HomeKitが動かない
ただ、Appleがサポート終了した古いMacでは、最新のmacOSが動作しません。そのため、新しいOSで提供されている機能が使えません。特にHomeKitの状況は厳しく、現行のHomeKitは、macOS 13.1 Ventura (2022) 以降のmacOS、つまりVenturaとSonoma (2023) でしか動作しません。
例として、いま手元にある古いMacBook Proを使ってみます。2011年に発売された15インチMacBook Proです。古い製品なので、中古店やフリマサイトで2万円程度で売られてます。メモリ、HDDが貧弱でも交換可能なので、DIYでSSDに強化できます。
このMacBook Proが登場した際には、macOS Snow Leopard (2009) が搭載されていました、その後、macOS High Sierra (2017) までサポートされました。それより後のmacOSは動作しません。久々に電源を入れてみたところ、稼働可能な最新macOSであるHigh Sierraが搭載されていました。
ただApple Homeアプリは搭載されていません。最初のHomeKitは、このHigh Sierraの次年、macOS Mojave (2018) で導入されたからです。
ただ、Mojave (2018) からMonterey (2021) が動作したとしても、前述のように、現行のHomeKitシステムは使えません。以下は、Catalina (2019) でサポート終了したMac mini 2012のホーム.appから、現行のHomeKitシステムにアクセスしようとした結果です。ホームハブと接続できず、すべてのアクセサリが使用不可になっています。
OpenCore Legacy Patcher (OCLP)
古いMacにも最新のmacOSがインストール可能ならば、HomeKitが動かせます。それを実現するオープンソースプロジェクトが、OpenCore Legacy Patcher (OCLP) です。これを使用すると、以下のMacにmacOS Sonomaをインストールできます。
OCLPの解説サイトはこちらです。操作は容易ですし、スクリーンキャプチャ付きで詳しく説明されているので、わかりやすいです。
プログラムの配布ページは以下です。
ここから、OpenCore-Patcherというアプリケーションをダウンロードします。
OCLPは、OpenCoreを使ってLegacyな(古い世代の)Macにパッチを当てて、最新macOSを動作可能にするプログラムです。
OpenCoreは、一般的なIBM PC-AT互換機(Windowsが動作するメーカー品PCや自作PC)でmacOSを起動させるためのブートローダープログラムです。元々は、いわゆるHackintoshを可能にするために開発されました。ただ、Windows PCもMacもどちらも同じブートローダーの仕組み(EFI)を採用してます。Microsoft, Appleを含む多数の会社がブートローダーの標準化を行ったからです。なのでOpenCoreはWindows PCだけでなく、Macでも動作します。ということでOpenCoreを適切に設定して、古いMacにインストールすれば、最新のmacOSを起動させられます。古いMacにOpenCoreをインストールする手法は、かなり昔から行われてきましたが、結構面倒です。OCLPはその手順を簡単に、自動的に実施するツールです。なので簡単に使えます。
OCLPの仕組み
サポート対象を外れた古いMacに、最新のmacOSをインストールするためには、次の2点が障害になります。これをOCLPは解消してくれます。
OpenCoreで起動阻止を回避
macOSに限らず、OSが起動する際には、適切なハードウェアなのかチェックしています。そして対応していないハードウェアでは起動しないよう設定されることがあります。これを回避する機能は、OpenCoreが得意とする部分です。Hackintoshする人たちは、IntelではないAMDのCPUですらmacOSを起動させてます。OCLPの一つの機能は、対象とするMacに合わせたOpenCoreの設定をして、これをインストールすることです。
ちなみに、OpenCoreは、HDDやSSDのEFI System Partition (ESP) という特別なパーティションにインストールされます。ターミナルで、diskutilコマンドを使うとESPを確認できます。前述のMacBook Proに搭載されたHDDの内容は以下でした。
$ diskutil list /dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *500.1 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_APFS Container disk1 499.9 GB disk0s2
このMacBookには、500.1GBのHDDが付いていて、そのうち209.7MBがEFIのESPで、残りの499.9GBがmacOS標準ファイルシステムであるAPFSコンテナーに割り当てられています。
ESPはmacOSのファイルシステムとは別に用意された小さな起動用パーティションです。通常のWindows PCや自作PCでは、ESPをシンプルなFAT32でフォーマットして、この中に起動用のプログラム(EFIプログラム)を入れておきます。コンピュータが起動すると、ファームウェアがESPからEFIプログラムを読み込み、これがメインのOS、例えばWindowsやLinuxを起動します。
通常のMacには、上で確認したようにESPは用意されていますが、使われていません。ただハードウェアはEFIに対応しているので、指示されればESPから起動します。そこで、OCLPは、MacのESPをFAT32でフォーマットして、ここにOpenCoreのファイル一式を書き込みます。Macの起動時に、EFIでの起動を指定すると、OpenCoreの設定が有効になり、macOSの起動を阻止する障害が取り除かれ、サポート外の最新macOSが起動します。
削除ドライバを復活
OpenCoreを適切に設定してESPに書き込んでおけば、macOSは起動するようになります。しかしまだ問題があります。それはハードウェアを動かすソフトウェア(ドライバ)が足りないことです。
古いMacがmacOSの動作対象外となることで、古いMacでのみ使用されるグラフィックスやネットワークチップなどのハードウエアをサポートする必要がなくなります。なので、これらを動かすためのドライバーが、新しいmacOSでは削除されてしまいます。そこで、macOSは起動しても、描画速度が遅い、Wi-Fiに接続できないなどの不具合が発生します。削除されたドライバは、古いmacOSではちゃんと動作していたので、これを新しいmacOSにコピーしてくれば解決します。実際にはOS改変を保護する機構を解除したり、多数のファイルを正しい場所にコピーするなどの複雑な手順が必要です。これもOCLPが自動で実施してくれます。
MBP2011でOCLPを使う
OCLPの使い方については、前述の解説ページに詳しく書かれています。ここでは、先に紹介した、2011年発売MacBook Pro (MBP2011) に、OCLPを使ってSonomaをインストールし、HomeKitを使えるようにします。古いMacなので、中古店やフリマサイトで2万円程度で売られてます。メモリは8GB、HDDは500GBで遅いです。でもねじ止めされた裏蓋を開ければ、メモリは増量可能で、HDDは2.5インチSSDに簡単に交換できます。SSDに交換すれば、今でも十分使えるMacです。
公式にインストール可能な最終macOSは High Sierra (2017) です。このMacBook ProにもHigh Sierraの最終版が入っています。ただHomeKitは動きません。
そこでOCLPを使います。
OSインストール用USBメモリを作る
OCLPで起動すれば、最新macOSのインストーラも動作するのではないかと思ったのですが、そうはいかないようでした。OCLPを設定して、それで起動し、Sonomaのインストーラを立ち上げたところ、機種チェックで動作しませんでした。
macOSのUSBインストーラを使えば、これを回避できるようです。多少チェックが緩くなるのでしょうか。それで、最新macOSのUSBインストーラをまずは作成します。これは単体で起動して、macOSをインストールできるUSBメモリです。macOSがDVDで販売されていた時期の末期には、インストール用USBメモリをAppleが販売していたこともありました。
macOS Sonomaのインストーラをすでにダウンロードしていれば、OCLPを使わなくても作成できます。こちらにApple公式の作成ガイドがあります。
OCLPを使えば、Appleのサイトからのインストーラダウンロード、USBメモリの作成まで自動で行えます。30GB程度のUSBメモリを用意しておきます。OCLPを起動すると、メインメニューのウィンドウが開きます。この左下にある、Create macOS Installerを選択すると、
インストーラの入手方法を聞かれます。未入手でしたら、ダウンロードします。
ダウンロードを選択すると、Appleのサイトに接続してダウンロードしてくれます。macOSのバージョンも選べます。
この後、インストール先のUSBメモリを選択します。USBメモリの作成が終了すると、OpenCoreの設定とインストールに進みます。これはOCLPのメインメニューからも選択できます。次にそれを説明します。
OpenCoreを設定導入
OpenCoreをESPにインストールすることで、最新macOSを起動できるようになります。この作業は、OCLPメインメニューの左上にある、Build and Install OpenCoreで行えます。
すると、現在のMacに合わせてOpenCoreの設定ファイルや必要ファイルが用意されます。次にインストール先のドライブを指定します。以下の例では、インストール先のドライブ候補が2個現れています。一つはMacBook Pro内蔵のHDDで、もう一つは前のステップで作成したUSBメモリです。接続したままにしてあったので、見えています。
ESPは、内蔵HDDにも、USBメモリにも存在しています。OpenCoreもどちらにもインストール可能です。MacBook Pro本体を起動する場合は、内蔵HDDのESPにインストールされていた方が便利ですし、USBにもインストールしてあれば、何か不具合があった場合にUSBから起動できます。ここでは、内蔵HDDにインストールしました。
下は、こうして本体HDDのESPにインストールされたOpenCoreの内容です。ESPは通常はマウントされないので見えませんが、diskutilコマンドで/Volumes以下にマウントしました。Kextsフォルダにある拡張子kextのファイルは、カーネル拡張ファイルです。結構たくさんのファイルが追加されています。config.plistがOpenCoreの設定ファイルです。OCLPは、対象のMacに合わせて、これらを自動選択し、設定ファイルを自動生成してくれます。
OpenCoreで起動
次に、OpenCoreを使ってMacを起動します。最初の起動の時に、すかさずオプションキーを押し続けます。すると、するとMacのファームウェアの機能で、起動可能なディスクの選択肢が現れます。
デフォルトで選択されている左端のHDDアイコンが、内蔵HDDの本体パーティションです。現在は、古いHigh Sierraが入っていて、これを選択すると今まで通りに起動します。
右端は、先の手順で作成したmacOS SonomaのインストーラUSBメモリです。差しっぱなしにしていたので現れています。ここでこれを選択しても起動に失敗します。SonomaはこのMacBook Proではサポートされていないので、起動しません。
中央は、OCLPで作成したESPです。中にOpenCoreが入っています。これを選択するとOpenCoreブートローダーが起動します。まずは、この中央のEFI Bootを選択します。
すると再び起動選択メニューが現れます。このメニューはOpenCoreが表示しているものです。OpenCoreが、最新macOSも起動できるように環境を整えた上で、起動可能な項目を表示しています。左は、本体HDDにある古いmacOS High Sierraです。これを選択すると、今まで通りHigh Sierraが起動します。右は、最新macOS Sonomaのインストール用USBメモリです。
USBメモリを選択すると、Sonomaのインストーラが起動します。それを使って、いつものmacOSインストールの手順で、本体HDDにSonomaを上書きインストールできます。インストール終了すると、OpenCoreのブート画面は以下のようになってます。今まで内蔵HDDのアイコンがHigh Sierraだったところが、Sonomaのアイコンになってます。
また、インストーラの画面でディスクユーティリティを選択すると、本体HDDをフォーマットすることもできます。フォーマットした上で、Sonomaをインストールすれば、全てを消してのクリーンインストールを行えます。
ドライバが足りない
これでHDDからSonomaが起動するようになりました。ただ、画面が少し変でした。
本来ならばSonoma地方の葡萄畑の風景が現れて、手前のメニューやウィンドウからは、その風景が磨りガラスのように見えるはずです。しかし真っ白です。これはCPUに搭載されたIntel HD Graphics 4000のドライバーが、Sonomaでは削除されてしまったので、半透明処理を実行できないためです。
また、Wi-FiもOnにはなってますが、アクセスポイントが表示されていません。これも、この古いMacBook Proに搭載されているBroadcom社のWi-FiチップであるBCM 43xxのドライバが、Sonomaで削除されてしまったからです。
ドライバをインストールする
そこで、再びOCLPを起動して、インストール後作業をします。右上のメニューのPost-Install Root Patchを選びます。
すると、このMacには、Intel Ivy Bridge用のグラフィックスと、モダン無線(Sonomaで無効になった無線機能のことです)のパッチを当てられます、と言うメッセージが出ます。Start Root Patchingを選ぶと、削除されてしまったドライバが復活します。
作業が終了すると、再起動されます。再起動後には、画面が正常に表示され、Wi-Fiも復活しました。葡萄畑が表示され、「このMacについて」のウィンドウから背景が透けて見えてます。またWi-Fiも復活しました。Wi-Fiが動作することで、Universal Clipboard, Handoff, AirDropなどのAppleデバイス連携機能も使用可能になります。
HomeKitを使う
これで最新macOSが、2011年のMacBook Proで動作しました。おかげでHomeKitも動作するようになりました。
iMac2013でOCLPを使う
iMac Late 2013にもOCLPを使ってSonomaをインストールし、HomeKitを使えるようにしました。先のMacBook Pro 2011に比べると新しいのですが、中古価格は2万円以下程度のようです。さらに、ディスプレイを両面テープで貼り付けるタイプです。分解してメモリやSSDを強化する作業は簡単ですが、復旧させるためには専用の両面テープを用意する必要があります。下図のように、最新OSはmacOS Catalina 10.15.7ですが、現行のHomeKitは動きません。
これにも
- OCLPでOpenCoreをインストールする
- 上記で作成したインストール用USBメモリからSonomaをインストールする
- OCLPでポストインストールする
という手順でSonomaをインストールできました。HomeKitも動作します。
Mac mini 2012でOCLPを使う
Mac mini 2013にもOCLPを使ってSonomaをインストールし、HomeKitを使えるようにしました。冒頭で紹介したように、メモリもSSDも自由に交換可能な最後のMac miniです。メモリ交換などは、裏蓋を手で回して開けるだけなので、とても簡単です。これも、最終サポートされるOSはmacOS Catalina 10.15.7ですが、現行のHomeKitは動きません。
これにも同様の手順でSonomaをインストールできました。現行のHomeKitも動作します。
不具合
OCLPは、Appleがサポート終了したマシンに無理やり最新OSをインストールするパッチですので、色々不具合はあります。例えば、SafariからAmazon Primeの動画を閲覧できません。最近のmacOSでは、DRM(著作権保護の仕組み)でApple T2セキュリティチップを使用するので、これが無い古いマシンでは有償動画が見られないのです。ただ、Google Chromeを使用すると見られます。
また、これはiMac 2013だけの問題でしたが、Safariなどでのレンダリングがおかしくなることがたまにあります。iMac 2013ではNvidiaのKeplerグラフィックスを使っているので、その関係だと思います。OCLPのバージョンアップで対応されることを期待してます。
何かのきっかけでたまに発生する症状で、これもGoogle Chromeを使うと問題ありませんでした。
まとめ
古いMacBook Pro 2011にOpenCore Legacy Patcherを使って最新のmacOS Sonomaをインストールしました。またiMac 2013やMac mini 2012にもSonomaをインストールできました。ボタンをクリックするだけで、簡単にパッチが当てられます。快適に使用できているので、サーバー用途や予備のメンテナンス用マシンとして活用していきたいと思います。。
コメント