Intelの12900K CPUを搭載したメインマシンはとても安定しているのですが、「このMacについて」を表示するとプロセッサが不明だと表示されます。弊害はないのですが、見た目が悪いので、それっぽく表示されるように直しました。
Table of Contents
プロセッサ表示なんて飾りです
「このMacについて」のプロセッサの表示は単なる飾りで、不明と表示されても何の問題もないらしいです。不明と表示されていてもsysctlコマンドで調べると、以下のように
% sysctl machdep.cpu.brand_string machdep.cpu.brand_string: 12th Gen Intel(R) Core(TM) i9-12900K
搭載CPUが正確に認識されていることがわかります。とはいえ、「不明」と表示されるのはみっともないので、それっぽい表示が出るように直すことにしました。対象のマシン構成は以下です。
- ASRock Z690 Steel Legend
- 12900K
- Radeon RX 6600 KT
- macOS Monterey 12.4
- OpenCore 0.8.1
デフォルトは自動検出
表示を直す方法はいくつかあるようですが、今回は、OpenCoreのconfig.plistの中の、PlatformInfo / Generic / ProcessorTypeの値を変更します。設定可能な値は、AppleのSMBIOSヘッダ定義ファイルを見てくださいとのことです。ProcessorTypeのデフォルトは0で、その場合、最もそれらしい値を自動的に提示するようです。大抵の場合は、デフォルトの自動設定で問題ありませんでした。
現在のマシンでも、自動設定でIntel Core i9プロセッサであると正しく自動認識されていると考えられます。それでも「不明」と表示されてしまうのは、Appleの想定外のコア数で使用していることが原因のようです。12900はPコアが8、そのHTが8、Eコアが8ありますが、OpenCoreの機能でこれらを24コアと認識させて使ってます。
24コアのCore i9プロセッサは実存しないので、不明と表示されるようです。
コアを減らしてみる
このことを確認するために、BIOS設定でコア数を減らしてみます。Appleの想定内のコア数ならば、正しく表示されるはずです。そこで下のようにEコアを無効にして起動させます。
するとPコアだけになるので、コア数が8、スレッド数が16になりました。
コア数が8のCore i9プロセッサは実存するので、「このMacについて」のプロセッサ表示が正しく行われるようになりました。
Xeonだと思わせる
飾りでしかない「このMacについて」表示のためにEコアを諦めるのは本末転倒ですので、BIOSでEコアを復活させて、24コア設定に戻します。これで「不明」の表示に戻ってしまいました。そこで今度は、CPU種別自動判定を停止して、24コアでも問題の無いプロセッサに手動で設定することにします。
AppleのSMBIOSヘッダ定義ファイルを見ると、0以外に使用できるProcessor Typeの値がわかります。今回、関係しそうな値は以下のようになってます。コメントの説明によると、Core i9は6/8/10コアが存在することになっていて、当然ですが24コアはありません。その代わりXeon Wならば24コアの構成があり得ることになってます。iMac Proに搭載されているCPUです。
// 155// Apple Processor Type Information - Processor Types. 156// 157 enum { ... 138// <0F01> 08 cores Intel Xeon W Intel Xeon W 139// <0F01> 10 cores Intel Xeon W Intel Xeon W 140// <0F01> 12 cores Intel Xeon W Intel Xeon W (10.15+) 141// <0F01> 14 cores Intel Xeon W Intel Xeon W 142// <0F01> 16 cores Intel Xeon W Intel Xeon W (10.15+) 143// <0F01> 18 cores Intel Xeon W Intel Xeon W 144// <0F01> 24 cores Intel Xeon W Intel Xeon W (10.15+) 145// <0F01> 28 cores Intel Xeon W Intel Xeon W (10.15+) 146// <1001> 06 cores Intel Core i9 Intel Core i9 147// <1001> 08 cores Intel Core i9 Intel Core i9 (10.15+) 148// <1001> 10 cores Intel Core i9 Intel Core i9 (10.15+) ... 215 AppleProcessorTypeXeonW = 0x0F01, // iMacPro1,1 216 217 AppleProcessorTypeCorei9Type1 = 0x1001, // may not be used 218 AppleProcessorTypeCorei9Type5 = 0x1005, // SKL-X i9, most likely to be invalid! 219 AppleProcessorTypeCorei9Type9 = 0x1009 // ideal value for Coffee Lake i9, need confirmation 220 }; 221
今回のマシンは、PlatformInfo / GenericでiMac Proとして設定しています。なのでそれに搭載されているCPUであると偽装するのも自然かと思いました。そこで、PlatformInfo / Generic / ProcessorTypeの値を明示的にXeon Wの値、すなわち0x0F01、10進数で3841に設定することにしました。
この結果、「このMacについて」のプロセッサ表示がXeon Wになりました。コア数は24と表示されました。
「このMacについて」のCPU表示をXeon Wに変更しても、sysctlコマンドは引き続きCPU種類を正しく認識していました。
% sysctl machdep.cpu.brand_string machdep.cpu.brand_string: 12th Gen Intel(R) Core(TM) i9-12900K