SonomaでBroadcomのWi-Fiを使えるようにしました。iPhoneとのコピペ(ユニバーサルクリップボード)やAirDropが再び使えるようになりました。
Table of Contents
SonomaでWi-Fiが使えない
Sonomaでは、マザーボードのM.2ソケットに取り付けたBroadcom Wi-Fiカード BCM94360NG
が動作しませんでした。Bluetooth部分は動作します。これらのBroadcom Wi-Fiを搭載しているMacが全て、Sonomaのサポート対象から外れたためです。Venturaまででは動作し、Sonomaで動作しなくなったチップは以下です。
- BCM94350 (BCM94352を含む)
- BCM94360
- BCM43602
- BCM94331
- BCM943224
Wi-Fiが使えなくなったマシンは、デスクトップ(Z690マザーボード、13900K、Radeon RX 6600)なので、有線LANがあれば一般的なネット利用には支障ありません。しかしWi-Fiが機能しないと、iPhoneとの連携機能(ユニバーサルクリップボードやHandoffなど)やAirDropが使えないので、なんとかしたいところです。
OCLPで対応する
OpenCore Legacy Patcher(以下ではOCLP)を使用して、Broadcomチップを有効にする方法が以下で説明されていました。
This PR is primarily for tracking development of patch sets and changes implemented in code base. Please note that these builds are highly unstable and will require frequent re-installs throughout ... Preliminary support for macOS Sonoma by khronokernel · Pull Request #1077 · d... - GitHub |
OCLPは、新しいmacOSを、サポート対象外の古いMacにインストールするツールです。OpenCoreを利用しています。Macの機種を選択すると自動的に設定してくれるので便利です。Sonomaでサポート外になったBroadcomのWi-Fiを有効にするOCLPが、Nightly Build版で用意されています。公式版は10月2日とのことです。
このSonoma対応の最新版OCLPをHackintoshで使います。上記のページの「Hackintosh Note」という項目に説明があります。本来の使い方ではないので、OpenCoreの設定準備が多少必要です。ちなみにOpenCoreも最新版にすると良いとのことなので、Nightly Build 0.9.6にしました。
OCLPを使ってみる
まずは上記のページからOCLPのNightly Buildを入手しました。直接リンクを公開しないようにと書いてありますので、このページから探してください。Nightly.link: OpenCore-Patcher.app (Sonoma Development)と書いてあるリンクをクリックすると、OpenCore-Pacherのアプリがダウンロードされます。10月2日には公開版が出るそうなので、それまで待っても良いと思います。
実はOCLPを使うのは今回が初めてです。それで、とりあえずダウンロードしたアプリを起動してみました。開いたメインメニューに、いろいろなツールがあって便利そうです。Sonomaのダウンロードも、これを使えばきっと簡単でした。
この中の「Post-Install Root Patch」という項目で、Wi-Fiのパッチが当てられます。「Post-Install Root Patch」をクリックすると、以下のメッセージが現れました。
要するに、
- あなたのマシンに対してできることはModern Wirelessのパッチです
- でもセキュリティ設定がキツいのでパッチ当てられません
ということです。状況をとても的確に把握してくれているようです。Modern Wirelessというのは、今回のSonomaで使えなくなったBroadcomのチップです。OCLPのプロジェクトでは、Montereyで切り捨てられた古いWi-FiチップをLegacy Wirelessと呼んでいたので、それに対してSonomaで切り捨てられたチップをModernと呼んでいるようです。
OpenCoreの調整
そこで、まずはOpenCoreの設定を整えて、OCLPが動作するようにします。Hackintoshに対して行う先ほどの手順を参考にしました。ちなみに、古いMacに対して行う手順がこちらに説明されています。これも参考にしました。これらに従ってconfigとEFIを調整します。
1. Kextの追加
まずはkextを追加します。必要なkextは、以下の3個です。うち1個は、他のkext/Contents/PlugInsの中に含まれてますので、入手するkextは2個です。
- IOSkywalkFamily.kext
- IO80211FamilyLegacy.kext
- AirPortBrcmNIC.kext (IO80211FamilyLegacyに含まれてます)
ちなみに古いMac向けのガイドのほうには、このほかにも3個のkextを入れるように書かれてました。それを試みるとカーネルパニックになったり、暗黒画面になりました。上記の3個だけで良いようです。
2. config.plistの変更
次に、config.plistを変更します。まずは、上記の3個のkextが動作するように、Kernel/Addに以下を追加します。Xplistアプリで編集している様子です。
次に、macOSにあるIOSkywalk.kextを停止させます。このために、以下の項目をKernel/Blockに追加します。
さらに、Misc/Securityで、SecureBootModelを無効にします。
また、NVRAM/Addで、boot-argsにamfi=0x80 を追加し、csr-active-configを03080000に設定します。
NVRAM/Deleteに、csr-active-configを追加します。
config.plistの変更は以上です。csr関係の設定は、パッチ作業後は元に戻しても良いのかもしれません。詳しくはこちらの説明をみてください。
OCLPを起動
これでOCLPが使えるようになりました。メインメニューからPost-Install Root Patchを選ぶと、先ほどと違って、以下のように表示されます。
いよいよパッチが当てられるようになったようです。Start Root Patchingを選択すると、rootとして作業するかどうかの確認と、パスワードを求められます。
パスワードを入力すると、パッチ作業が開始されます。
パッチが終了したら、再起動です。
Wi-Fi動作を確認する
再起動したところ、無事、Wi-Fiが動作するようになりました。
Wi-Fiを接続したところ、iPhoneとのユニバーサルクリップボード、Handsoff、AirDropなどが動作するようになりました。
まとめ
Sonomaになって使えなくなっていたWi-Fiが、OCLPによって復活しました。その結果iPhoneや他のMacとの連携が再び使えるようになりました。macOSのバージョンアップの時にはいろいろ試練がありますが、それを克服しているコミュニティの皆さんの努力に感謝です。
今回は、M.2 Wi-Fiカード BCM94360NGを使いましたが、PCIe拡張スロット用Wi-Fiカードも同じ手順で復活するはずです。