
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
