サイトアイコン Boot macOS

「このMacについて」表示でCPUが不明なことへの対処

Intelの12900K CPUを搭載したメインマシンはとても安定しているのですが、「このMacについて」を表示するとプロセッサが不明だと表示されます。弊害はないのですが、見た目が悪いので、それっぽく表示されるように直しました。

プロセッサ表示なんて飾りです

「このMacについて」のプロセッサの表示は単なる飾りで、不明と表示されても何の問題もないらしいです。不明と表示されていてもsysctlコマンドで調べると、以下のように

% sysctl machdep.cpu.brand_string 
machdep.cpu.brand_string: 12th Gen Intel(R) Core(TM) i9-12900K

搭載CPUが正確に認識されていることがわかります。とはいえ、「不明」と表示されるのはみっともないので、それっぽい表示が出るように直すことにしました。対象のマシン構成は以下です。

デフォルトは自動検出

表示を直す方法はいくつかあるようですが、今回は、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

モバイルバージョンを終了