第9世代CPU用のSMBIOSを書く

iMac Early 2019でようやく第9世代CPUがサポートされました。出回っている機種情報を使ってシリアル生成ソフトを用意して、config.plistのSMBIOSセクションを作りました。実機に近い設定ができたと思います。

iMac E2019の情報

以下で紹介しましたが、新型iMac Early 2019 (27インチのiMac19,1と21.5インチのiMac19,2) が出たおかげで、macOSもようやく最新のデスクトップCPUに対応しました。ただし新型iMacには、最新の10.14.4のビルド番号18E226よりも新しいバージョン (18E2034) が搭載されているようです。第9世代CPUに完璧に対応したmacOSを一般人が入手できるのは次のバージョン (10.14.5もしくはSU) になりそうです。

ここで参考にした情報は、「マックお宝」が公開しているYoutubeのビデオ、Geekbenchのスコアページ、店頭で見てきた情報などです。

シリアル番号

シリアル番号は「このMacについて」を見ればすぐにわかります。現在店頭にあるiMac E2019は、全て中国製で、(当たり前ですが)2019年製造です。なので、シリアル番号の最初4桁は、全てC02Yです。シリアル番号の仕組みはこちらをご覧ください。

次の桁は製造月ですが、店頭にある製品は9週もしくは8週です。9週のものが多かったです。2019年の第9週は2/26から3/4の週で、8週はその前の2/19から2/25の週を表します。

次の3桁は製造ライン番号と言われていて、製品個別の番号です。最後の4桁がモデルコードです。iMac19,1のモデルコードにはJV3Q, JV3P, JV3N, JV40が、iMac19,2のモデルコードにはJWDW, JWDXが発見されました。この他にも多数のコードがあるはずです。みなさんも発見できたら是非ともコメントでおしらせください。他の記事でも紹介していますが、正しいモデルコードならば次のURLのPPPPの場所に指定すると該当マシンの仕様ページが表示されます。

http://support-sp.apple.com/sp/index?page=cpuspec&cc=PPPP

以上のことから、現在店頭にあるシリアル番号は、C02Y9xxxJV3Qなどとなります。

ボードシリアル番号

ボードシリアル番号は、シリアル番号より確認しづらいです。後述のmacserialプログラムでも確認できますが、macOSの標準コマンドでしたらnvramコマンドが使えます。ターミナルから次のコマンドをタイプすれば表示されます。

nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB

現在店頭にあるiMac E2019のボードシリアル番号は、本体と同じく中国製のようです。製造年は、当然ながら2019年で、製造週は、本体より1週間早く、07週もしくは08週でした。ボードシリアル番号の後半には、ボートの種類を示すボードコードがあります。iMac19,1のボードコードにはLNV9, KDP0が、iMac19,2のボードコードにはKGQGが発見されました。なので、現在店頭にある製品のボードシリアル番号は C02908xxxxxLNV9xxなどになります。

その他のID

ボードIDは、iMac19,1がMac-AA95B1DDAB278B95、iMac19,2がMac-63001698E7A34814でした。これはGeekbenchのページでも確認できます。これ以外にはありません。

また、システム情報に出てくる番号として、ブートROMのバージョンがあります。これはどれも220.250.368.0.0でした。

シリアル生成プログラム

シリアル番号の仕組みの記事では、シリアル番号を自動生成してくれるプログラムmacserialをご紹介しました。これをforkさせていただき、上記で得たシリアル番号生成のための情報を付け加えました。これでiMac E2019のシリアル番号を自動生成できます。Intelの8600, 9600K, 9900KをCPUとして使用したHackintoshを作る場合には、iMac19,1のシリアル番号が最適です。8100, 8500, 8700の場合は、Macmini8,1でも良いかもしれませんが、iMac19,2も使えます。コンパイルしたバージョンのmacserialをこちらに置いておきました。

./macserialとして起動すると現在のマシンのIDを表示します。./macserial -hでヘルプが出ます。iMac19,1のシリアル番号を生成したいのでしたら、./macserial –model iMac19,1とタイプすると、シリアル番号、ボードシリアル番号の一覧を出してくれます。

./macserial --model iMac19,1
 C02YC017JV3Q | C02909207GULNV9AD
 C02Z7JYAJV3Q | C02933102GULNV9JA
 C02YNYZNJV3Q | C02918200GULNV91F
 C02ZP0XSJV3Q | C02946802QXLNV91H
 C02YRAYQJV3Q | C02921200GULNV9A8
 C02YN3ZGJV3Q | C02918403GULNV9CB
 C02YM085JV3Q | C02917403CDLNV9AD
 C02ZC0AFJV3Q | C02936303GULNV91F
 C02Y800NJV3Q | C029078024NLNV9FB
 C02ZP2YPJV3Q | C029467004NLNV91M

./macserial –info <serial>とすると、そのシリアルの情報を表示します。例えば、上の例の最初の候補の場合、

./macserial --info C02YC017JV3Q
        Country:  C02 - China (Quanta Computer)
           Year:    Y - 2019
           Week:    C - 10 (05.03.2019-11.03.2019)
           Line:  017 - 41 (copy 1)
          Model: JV3Q - iMac19,1
          Valid: Possibly

と表示されます。2019年第10週の製造です。最初の製品の2週間後の製造なので、ちょうど良いくらいかと思います。数か月後くらいの多少の未来の番号でもおそらく大丈夫だと思います。しかし、最初の製品が第8週製造なので、これよりも以前の2019年1~7週の番号は避けた方が良いと思います。

シリアル番号を既に決めているのであれば、./macserial –mlb <serial>で、同じ国で、前の週に製造されたロジックボードのシリアルを生成してくれます。

./macserial --mlb C02YC017JV3Q
 C02909108GULNV9AD

SMBIOSを書く

それではiMac19,1に限りなく近い設定のSMBIOSセクションを書いてみましょう。上記の例のシリアル番号・ボードシリアル番号を使う場合、以下のようになるかと思います。(皆さんのご自分の番号を使ってください)SmUUIDも、ターミナルのuuidgenコマンドで適当に生成して記入してください。

<key>SMBIOS</key>
	<dict>
		<key>Board-ID</key>
		<string>Mac-AA95B1DDAB278B95</string>
		<key>BoardSerialNumber</key>
		<string>C02909108GULNV9AD</string>
		<key>EfiVersion</key>
		<string>220.250.368.0.0</string>
		<key>ProductName</key>
		<string>iMacm19,1</string>
		<key>SerialNumber</key>
		<string>C02YC017JV3Q</string>
		<key>SmUUID</key>
		<string>XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</string>
	</dict>

Board-IDはiMac19,1に使用されているロジックボードIDを入れました。EfiVersionは、ここに書いておけば、本物のiMac E2019と同様に、「システム情報」のブートROMのバージョンの項目に表示されます。これ以外のSMBIOSの項目はCLOVERが自動生成してくれます。もしかしたら現バージョンのCloverはiMac19,1に対応していないかもしれませんが、将来のバージョンでは対応するはずです。

このSMBIOSを使ってみた

このSMBIOSを9900K搭載のHackintoshに設定し、App Storeで配布されている通常のmacOS Mojave 10.14.4 (18E226)で使ってみたところ、残念なことに起動しませんでした。こんな画面になってしまいました。

一般配布されている10.14.4は、iMac19,1に搭載されているビルド番号18E2034と異なっていて、ボードIDがサポートされていないようです。10.14.5まで待てば解決されるかと思います。それまでの間は、config.plistのBootオプションに、

<key>Boot</key>
   <dict>
     <key>Arguments</key>
     <string>-no_compat_check</string>

と記載して、互換性チェックをしないように指定しておくことにしました。

iMac E2019対応の10.14.4を入手する

と、思っていたところ、iMac E2019対応の10.14.4 (18E2034)を入手する方法をコメント欄で教えてもらいました。おかげさまで、-no_compat_checkのブートオプションを付けなくても起動するようになりました。この10.14.4を入手する方法は簡単で、iMac19,1 または19,2に設定したマシンでApp Storeを起動して、Mojaveを検索してダウンロードするだけです。これをインストールすると、iMacに搭載されているビルドと同じ18E2034になります。それでも、プロセッサは「不明」と表示されてしまいます。これはちょっと謎です。

Clover ConfiguratorがiMac19,xに対応

macserialをforkしてiMac19,1, 19,2に対応させた後、オリジナルのmacserialのacidantheraさんにPull requestsしておきました。そうしたらすぐに承認されて、macserialのソースコードに反映されました。コミュニティへの本当に些細な寄与ですが、初めてなので嬉しいです。その結果、かどうかわかりませんが、Clover ConfiguratorもiMac19,xに対応してくれたようです。これでSMBIOSが簡単に作れるようになりました。

シリアル番号をいくつか発生させてみたところ、上で紹介したモデルコードとボードコードを使ったシリアルが現れます。今回調べた情報を使ってくれているようです。

16件のコメント

  1. いつも素晴らしい情報を有難うございます。
    9900kでZ390の構成で10.14.4(18E2034)に19,1のSMBIOSを使ってみましたが、
    CPUは不明でした。今回のiMacに搭載されている9900kは市販のものとは違うものか、
    もしくは何かCPUの認識判断が変わったのかもしれません。取り急ぎご報告まで。

    1. 18E2034はiMac Early 2019搭載のmacOSですよね。もしかしてiMacからインストールされた?

      1. いえ、iMacからではありません。それが不思議なことに18.3のHackintoshでアップデートリリース後に10.14.4のフルインストーラーをダウンロードしたのですが、
        そのインストーラー自体のバージョンは10.14.8でした。
        https://itunes.apple.com/us/app/macos-mojave/id1398502828?mt=12
        このリンクがTonymacsx86にあったのでダウンロードしてみたら、バージョンが10.14.10でした。10.14.10は18E2034になります。
        こちらに別のダウンロードの仕方も記載されてますが、その流れで上記のリンクの
        ダウンロード方法も記載されております。
        https://www.tonymacx86.com/threads/imac-pro-x99-live-the-future-now-with-macos-10-14-mojave-successful-build-extended-guide.255117/page-67

        1. 情報ありがとうございます。その不思議な状況が手元でも再現しました。どうやら「macOS Mojaveインストール.app」をApp Storeからダウンロードするときに、iMac19でダウンロードするとバージョン14.4.10のインストーラが入手できて、それ以外のマシンでダウンロードするとバージョン14.4.08がダウンロードされるようです。なのでiMac19,1の設定をしたHackintoshでも14.4.10が手に入るようです。おかげさまで手元のマシンも18E2034になりました。CPUはこちらでも不明のままです。

          1. シリアル生成で作ったSMBIOSでしたが、作成時は登録がなかったのですが最近シリアルをチェックしたら実機がありそうで変更しました。Cloverがシリアル生成してくれるようになったのでそちらでしましたが、実機と被ることあるんですね。今まで経験がなかったのでびっくりしました。もしかして発売間もないから売れ行き次第で被る可能性が高い?定期的にチェックするべきなんでしょうか?

            1. シリアル生成プログラムによっては現在に近い製造日や、未来の製造日のシリアル番号も出る可能性がありますので、その場合は、後から実機が出てくる可能性はあると思います。十分古い製造日のシリアルなら、一度チェックすれば大丈夫だと思います。

  2. Mac Observerによると
    https://www.macobserver.com/analysis/intel-cpus-in-apples-2019-imacs-chart/

    新iMacの第9世代プロセッサは、9900KF, 9600KFであるという指摘がありますね。KFはUHD630が無効化された
    ものですから、この指摘が本当であれば同じ世代のiMacでiGPU有無の違いがあり、その違いに応じたMojaveの
    挙動の違いがある(のでチェックが厳しい?)のかもしれません。
    KFを使ったとすれば調達やコストの理由だと思いますが、T2チップ不採用といい、
    HDDモデル、FusionDriveモデル存続といい、新iMacにおけるAppleの姿勢には?な部分が多いですね。

    1. Mac Observerの記事はKFと判断した根拠を書いてないので謎です。
      Geekbench BrowserとかYoutubeのCinebench画面とか店頭で試したsysctlコマンドでは、全てKモデルとして表示されているので、少なくともOSレベルではKなのではないかと思います。誰かが分解して刻印を確認するまで確定できませんが。

      1. sysctl machdep.cpu.brand_string で調べてKモデルなら間違い無いですね。

        1. そうですね。多分間違いないと思います。今回色々探して、レビュー記事でも、開封動画でも誰もCPUを特定しようとしていないので、普通のMacユーザーはCPUが何なのか気にしないのかなと思いました。

  3. i9 9900K
    ROG STRIX Z390
    Sapphire NITRO+ RX 580
    BCM94360CD
    で組んで、10.14.4で使っていますが最近Bluetoothの途切れがひどいです。トラックパッドが途切れとぎれになり、AirPodsはまともに聴けず。

    同じような方いますか?また何か解決策があればお願いします…。

      1. PCをキーボード、トラックパッドのすぐ横においているんですよね…30cmほどの開きしかないです。
        どうもグラボの冷却不足な気がしてならないです。bootmacosさんはケースファンを何個つけていますか?

        1. 最近はUSBが高速になったのでシールドが甘いと2.4GHz帯に干渉するらしいです。マザーボードは高周波ノイズの塊ですしバックパネルにも近いので、30cmであってもアンテナ延長の効果はあると思います。他にノイズ源がある場合でも、自由な場所にアンテナを置けるようになるので、回避できる可能性も高くなると思います。あとは、BCM94360CDからBluetoothアンテナ端子までの接続が緩んでいる可能性もあるかもです。でもグラボの冷却はあまり関係がないのではと思います。

    1. ソフトの問題でなくハードの問題だと思います。
      チェック項目としては
      1 wifi, BTのアンテナがきちんと繋がってるか、緩くなってないか
      2 PCIeアダプタにBCM9436CDを刺すアダプタだと思いますが多分PCIeだけでなく内部USBからも電力供給してると思いますがきちんと繋がってるか
      3 延長アンテナで改善するか
      だと思います。

      それ以外だと
      1 PCIeアダプタを別のものに変えてみる
      2 BTだけUSBアダプタなどにしてみる
      くらいが対応策でしょうか

匿名 へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です