Intelの第12世代CPUになるAlder Lake-Sシリーズが発売されました。今までになく高性能になったと評判です。macOSではサポートされていないCPUですが、Montereyで安定して稼働しました。Radeon RX 6600XTと組み合わせると、M1 Maxをちょっとだけ超える性能が得られます。
Table of Contents
ASRock Z690 Steel Legend WiFi 6E
Z690マザーボードにはASRock Z690 Steel Legend WiFi 6Eを選びました。WiFiの付いていないASRock Z690 Steel Legendも同様に使用できます。違いはE key M.2に802.11ax Wi-Fi 6E モジュールIntel AX210NGWが搭載されているかどうか、アンテナ端子とアンテナ配線がされているかどうかだけです。現時点の価格.comでの両者の価格差は550円程度ですので、WiFiモデルを買うのが得策だと思います。AX210NGWを置き換える場合でもアンテナ配線が不要なので楽です。
このマザボを選んだいちばんの理由は、PCIeスロット数が多いことです。5本あります。これだけの拡張性は、実機では高価なMac Proでしか得られないので貴重です。Z590に引き続き、端正な見た目のASRock Z690 Extremeにしたかったのですが、ExtremeはZ690になってPCIeが1本減ってしまいました。Steel Legendは、Z590バージョンと同じスロット数を確保してます。Steel Legendの見た目のデザインは、ゴテゴテしてて好みでは無いのですが、機能重視で選びました。グラボの邪魔にならないバックパネル側に、PCIe x 1スロットがあるのも良いです。SSD用ヒートシンクの角を削って、多少見た目が悪くなっても、ここにPCIeを1本確保しようという設計者の機能性重視な心意気が気に入りました。
E keyのM.2ソケットが、マザーボード上のアクセスしやすい場所にあります。多くの歴代ASRockモデルと同様に、これもCNVi専用ソケットではありません。なのでmacOSと互換性が高く、OOBで稼働するBCM94360NGを取り付けることができました。PCIe用のWiFiアダプタを使用しなくて済むので、PCIeスロットの節約にもなります。
メモリはDDR4です。DDR5を試したかったのですが、メモリーが入手不可能な状態なので現状ではDDR4対応マザーボードしか選択肢がありません。
Alder Lake-S 12700K
今回発売されたAlder Lake-S CPUは、12900, 12700, 12600のKとKFモデルです。どれを使用してもmacOSは稼働するようです。macOSで動作させた場合の12900Kと12700Kの性能を、Geekbench Browserの結果で比較すると、12900Kの方が、12700Kより数%程度高性能です。
とはいえ、後述するようにmacOSでは実質的にEコアが使えないので、Pコア数の同じ両者に大きな性能差は出ません。価格差は大きいので、12700Kの方がコスパは高いです。今回は、「M1 Maxにギリギリ勝てる」構成を目指して12700Kにします。(追記:OpenCore 0.7.7からは全コア全スレッドが使用できるようになり、12900Kの優位性が向上します)
macOSではAlder Lake-SのiGPUは使えませんし、今後使えるようになる見込みもありません。そもそもmacOSがサポートしている第10世代CPUのiGPUも、自作マシンではなかなか安定せず使いにくかったです。なのでiGPUが搭載されていないKFモデルを選んでも良いと思います。
BIOSを設定する
BIOSの設定で重要な箇所を以下に列挙しました。大半がデフォルト値のままで良いです。デフォルト値から変更した部分(3箇所だけです)を太字で示します。
- OC Tweaker > DRAM Configuration > Load XMP Setting > XMP 2.0 Profile 1
- Advanced > CPU Configuration > Intel Hyper Threading Technology > Enabled (default)
- Advanced > CPU Configuration > Active Process P-Cores > All (default)
- Advanced > CPU Configuration > Active Process E-Cores > 0
- Advanced > CPU Configuration > CFG Lock > Disabled (default)
- Advanced > Chipset Configuration > Above 4G Decoding > Enabled (default)
- Advanced > Chipset Configuration > VT-d > Enabled (default)
- Advanced > Chipset Configuration > IGPU Multi-Monitor > Disabled (default)
- Advanced > USB Configuration > XHCI Hand-off > Enabled
Eコアを無効にする設定は、macOSを動かす上でとても重要です。これを行わないとカーネルパニックになります。一方で、Hyper Threading (HT)を無効にすれば、Eコアを有効にすることができます。ただし、性能は少しだけ低下します。それで、HTを有効にしてEコアを無効にする設定にしました。(追記:OpenCore 0.7.7からは全コア全スレッドが使用できるようになるので、その場合は、BIOSで全て有効に設定します。)
Above 4G Decodingはデフォルト値の「有効」のままにしておく必要があります。DisabledにするとmacOSの起動途中で止まってしまいます。
なおBIOSはできる限り最新にした方が良いようです。GIGABYTEのマザーボードでは、macOS起動の問題がBIOSアップデートで解決したという報告が多数見つかります。ASRockはマザーボードの発売が遅かったことも関係するのか、最初のBIOSでも問題ありませんでした。でも発売直後のマザーボードはBIOSにバグがあることが多いのでアップデートがあったら実施しておいた方が良いと思います。このマザーボードの現在のBIOSは2.10です。
EFIを設定する
以下のガイド(Gigabyte Z690 Aero G用)を参考にして設定しました。OpenCore 0.7.6を使っています。macOSは12.0.1と12.1 betaで動作確認しました。
EFI folder v. 0.6The generic EFI folders have been amended to OpenCore 0.7.6. Acidanthera's SSDT-PLUG-ALT replaces SSDT-CPUR-Z690.As with the previous release, there are two EFIs. Pick a sample.plist, fill in serial numbers, check configuration and rename to config.plist.DEBUG is intended... Z690 Chipset and Alder Lake CPUs - tonymacx86.com |
使用しているSSDTは以下です。これをACPIフォルダに入れました。
- SSDT-AWAC.aml
- SSDT-EC-USBX.aml
- SSDT-SBUS.aml
- SSDT-PLUG-ALT.aml
下の方でリンクしたEFIファイル一式には他のSSDTも入っていますが、config.plitで無効にしてあります。
使用しているkext類は以下です。これをKextsフォルダに入れました。USBPorts.kextは、後述のようにHackintool.appを使って作りました。
- Lilu.kext
- VirtualSMC.kext
- WhateverGreen.kext
- SMCProcessor.kext
- SMCSuperIO.kext
- AppleALC.kext (layout-idは12)
- LucyRTL8125Ethernet.kext
- NVMeFix.kext
- USBPorts.kext
今回公開するEFIファイル一式には他のkextも入っていますが、config.plistで無効にしてあります。
config.plistは、前述のガイドのページで配布されているものを参考に、機種IDなどを設定しました。機種IDはiMacPro1,1にしました。好みでMacPro7,1にしても良いです。ただ、iMacPro1,1の方が設定が簡単です。MacPro7,1の場合は、CPUFriend.kextとそれに付随するkextを使って、動作周波数を最適化しないと、十分な性能が出ません。
12世代CPUはmacOSで採用されていないので、CPU IDをi9-10850KなどのID である000A0655に偽装しています。config.plistのKernel/Emulateの中に以下のように記述します。
オンボードのオーディオは、AppleALC.kextの1.6.7からサポートされています。layout-idは12で動きました。config.plistのDevicePropertiesに追記します。
ボード上のEthernet LANはRealtekのRTL8125BGです。これはLucyRTL8125Ethernet.kextで動きました。
EFIファイルの一式をここに置いておきます。シリアル番号などは削除してありますので、使用される場合は設定してください。
USBポートを設定する
Hackintoolなどでポート番号を調べると、バックパネルのUSBポートは以下のようにアサインされていました。合計で12本です。
マザーボード上の内部コネクタについても少し調査しました。その結果、
- マザーボード上のM.2 E keyソケットに接続されたUSBはHS14でした。
- また、マザーボード上のUSB Type-Cコネクタは、HS01とSS01でした。
以上の合計がmacOS上限の15本になるので、これらを有効にするようにHackintoolを使ってUSBPorts.kextを作りました。マザーボード上の他の従来型内部コネクタ(USB 2.0と3のピンヘッダ)を使用する場合は、このリストを差し替える必要があります。
スリープ
上記のUSBコネクタ設定は、実際のコネクタの状況を反映した結果ですが、このままだとスリープで問題が発生しました。バックパネルのType-Aコネクタに、キーボードやUSBメモリなどが接続されていると、スリープに入っても1分ほどで復帰してしまいます。その一方で、Type-Aに何も接続されていなければ、正しくスリープします。Bluetoothキーボードなどから復帰することも可能でした。
この問題は、USBPorts.kextでType-AコネクタをInternalに設定することで解決しました。Hackintool.appでしたら、以下のように設定します。
システム環境設定・省エネルギーでは、ネットワークアクセスによるスリープ解除を無効にすると良いかも知れません。Power Napは有効でも問題ありません。1時間に1回くらい起動します。それが気になるようでしたら無効にすると良いです。
ただ、Type-Aに直接接続した一部のキーボードなどから目覚めさせることができないようです。こちらで紹介した格安キーボードではスリープ復帰できませんでした。また、こちらで教えてもらった情報によると、スリープ復帰するマウスとしないマウスがあるようです。一方で、Magic KeyboardをUSB接続した状態だと、これからスリープ復帰できました。いずれにしてもBluetooth入力デバイスをメインに使うならば問題ないです。
この設定で残った問題は、Type-Aに接続したキーボードからスリープ復帰できない点です。Bluetooth接続のApple純正キーボード、トラックパッドを使う場合は問題ありません。
ベンチマークで性能評価
Geekbench 5でベンチマークしました。シングルコア性能ではM1 Maxを上回りました。マルチコア性能では互角でした。
以前にGeekbench 5のサイトで確認したM1 Maxのスコアと比較すると以下のようになります。
これにRadeon RX 6600XTを組み合わせれば、M1 Maxより少しだけ性能の良いマシンが作れます。先の記事のGeekbench 5スコア比較を再掲します。
動いていること
- ここ2-3日電源を入れっぱなしですが、問題なく安定して動作してます。このままメインマシンにしても良いと考えているくらいです。
- システム終了、再起動
- 有線LAN (ボード上の2.5GbE, Realtek RTL8125BG)
- M.2 無線LAN/BT (Broadcom BCM94360NGに交換)
- オンボードのオーディオ(ALC897, layout-idを12に設定)
- クイックルック、プレビュー
- メッセージ、FaceTime, iCloud, App Store, Apple TV
- ユニバーサルクリップボード
- コンティニュイティ
- AirPlayレシーバー(DRMコンテンツの表示も可能)
- SafariでのDRMコンテンツ表示(Prime Videoなど)
- スリープを開始すると画面が暗くなり、CPUファンが停止します。電源スイッチまたは、Bluetoothキーボード類(Magic Keyboard, Magic Trackpad, 他社のBTマウス)の操作で復帰します。
動いていないこと
- Sidecar(自作機にはT2チップが無いので仕方ないです)
- Type-A接続の一部のUSBキーボード・マウスからのスリープ復帰(USB接続したMagic Keyboardは復帰可能。BT入力デバイスを使えば問題ありません)
コア数とHTの設定
現在では、Alder Lakeの全てのPコア、ハイパースレッド(HT)、EコアをmacOSで有効にすることができません。(追記:OpenCore 0.7.7から可能になります)上で配布しているEFIは、
- BIOSでEコアを無効にしてPコア+HTを使う(無難で性能が出るのでお勧め)
設定になっています。このほかに、以下の選択肢が可能です。詳しくは上記のetorixさんの投稿をご覧ください。
- BIOSでHTを無効にしてPコア+Eコアを使う(少し性能が落ちる)
- BIOSで全コア+HTを有効にしてSSDTでEコアを無効にする(Windows起動時に性能を出せる)
この場合、SSDT-PLUG-ALT.amlを無効にしてSSDT-PLUG-ALT-12.aml (12600用) もしくはSSDT-PLUG-ALT-12.aml (12900, 12700用) を使う。また、Kernel>Quirk>ProvideCurrentCpuInfoを有効にする。これでmacOSからEコアが見えなくなる。ただしAVX-512が無効になる。 - BIOSで全コア+HTを有効にして、Pコア全部+Eコアの半分を有効にする。(性能は最大)
この場合、 CpuTopologySync.kextを有効にして、SMCProcessor.kextは無効にして、カーネルのパッチを当てる。パッチは上記のEFIの中のconfig.plistに既に書いてあります。 - (追記)OpenCore 0.7.7からBIOSで全コア+HTを有効にしても動くようになります。Windowsで実行する場合と同程度の性能が出ます。
OpenCore 0.7.6を使う場合は、「BIOSでEコアを無効にしてPコア+HTを使う」方法が、無難で性能が出るので、Windowsをあまり使わない場合はおすすめだと思います。