Intel NUC D54250にOpenCoreとBig Surを入れる

昔作った、Haswell世代Core i5-4250U搭載Intel NUCをOpenCoreとBig Sur (Beta 9) にアップデートしました。Ivy Bridge搭載初代NUCの代わりに省電力サーバとして使いたいと考えてます。

Intel NUC D54250

Intel NUCは、ノートPC用CPUを搭載したデスクトップです。低消費電力なので電源を入れっぱなしの家庭用サーバに向いていると思います。今までは、サーバとしてIvy Bridge搭載の初代NUCを使っていました。でもBig Surでサポートされなくなるので、Haswell搭載のD54250に更新することにしました。D54250には、すでにMojaveを入れてあったのですが長らく放置してました。押し入れから引っ張り出して、CloverからOpenCoreに差し替えて、Big Surに備えることにしました。

Intel NUC D54250, 4250U

Intel NUC D54250が搭載するCore i5-4250Uは、MacBookAir6,1, 6,2で使用されているCPUで、macOSとの互換性が高く安定しています。Big Surでもサポートされます。D54250には2種類のケースがあり、末尾がWYKのモデルは薄型筐体で、WYKHは2.5インチドライブを内蔵できる厚型モデルです。古いので探せば安価に入手可能です。WYKHはドスパラで一時期税込3万円未満で売られていましたし、現在は中古店で2万円くらい、オークションでは1万円前後で入手可能なようです。

ハードウェアの構成をまとめると以下です。

  • Intel NUC D54250WYKH (WYKHの他にWYK, WYBがあります。WYKは2.5inchの入らない薄型。WYBは基板だけです。)
  • CPUはIntel(R) Core(TM) i5-4250U CPU @ 1.30GHz
  • グラフィックスはIntel HD Graphics 5000 (稀にアーティファクトが出ます)
  • 無線カードはmini PCIeのBCM94360HMB (AzureWave AW-CB160H) です。WiFiはOOBです。Bluetoothは後で説明するようにkextが必要です。

シリアル番号にこだわる

昔に割り当てたシリアル番号には、今から見るといろいろ疑問なところがあったので、変更しました。まず機種IDは、4250Uが搭載されているMacBookAir6,2にしました。6,1でもほぼ同じなので、どちらでも良いです。OpenCoreの一式に入っているmacserialコマンドで機種を指定すると、シリアル番号とボードシリアル番号の候補が出ます。

 % ./macserial --model MacBookAir6,2
C02L20YVF5V7 | C02328501GUFD47JA
C02NLHYMF5V7 | C02443100J9FD471M
C02NNLZBF5V7 | C02445802GUFD47JA
C02MT0WEF5V7 | C02423500GUFD47AD
C02KGYYNF5V7 | C02312301QXFD471M
C02P3QYNF5V7 | C025022004NFD47FB
C02ND4Y8F5V7 | C02437303QXFD478C
C02M20CTF5V7 | C024011304NFD471H
C02NMFYJF5V7 | C02444501CDFD47UE
C02MNSZ6F5V7 | C02418301J9FD47AD

この中から一つを選べば良いのですが、念のためにその一つの詳細を調べてみます。

% ./macserial --info C02P3QYNF5V7
Country: C02 - China (Quanta Computer)
Year: P - 2015
Week: 3 - 3 (15.01.2015-21.01.2015)
Line: QYN - 2742 (copy 1)
Model: F5V7 - MacBookAir6,2
SystemModel: MacBook Air (13-inch, Mid 2013)
Valid: Possibly

製造週が2015年の第3週になってます。MacBookAir6,1, 6,2は2013年6月から2015年3月まで製造されたのですが、2014年4月に4250Uから4260Uにマイナーアップグレードされています。なので同じMacBookAir6,2用のシリアルでも、できれば2013年6月から2014年4月までの番号にしたいところです。ということで、macserialで製造年を2013、製造週を30に指定し、シリアル生成します。

./macserial --model MacBookAir6,2 --year 2013 --week 30
C02L40WPF5V7 | C02330701QXFD471M
C02L4LYLF5V7 | C023303064NFD471M
C02L4YYTF5V7 | C023309024NFD47FB
C02L4BZFF5V7 | C02330102GUFD47FB
C02L40S8F5V7 | C023303064NFD471M
C02L4XZEF5V7 | C02330101QXFD47UE
C02L4TY0F5V7 | C02330405CDFD47AD
C02L40ENF5V7 | C02330403GUFD471F
C02L4069F5V7 | C02330102GUFD47FB
C02L40FQF5V7 | C023303064NFD471M

このうちの一つを–infoオプションで調べてみると、2013年の30週(2013年7月23日から2013年7月29日)でした。発売されて1ヶ月後くらいなので妥当な製造日だと思います。

シリアル番号の特定の4桁部分、上の例では、F5V7とFD47は機種特有の番号です。macserialのソースコードを見ると、他にも多数の選択肢があるのですが、オプションで指定しないとこの番号しか生成されません。このF5V7が4250U搭載の2013年版MacBookAirなのかどうかは、すぐに調べる方法がなさそうでした。ただ、Appleのサイトでシリアル番号が有効かどうかを調べたところ、たまたま実機と同じシリアル番号が見つかりました。(実機と合致する番号は使ってはいけないです)

これから、F5V7はMid 2013の4250U搭載モデルの番号と考えて良いと思いました。

BIOSをアップデートする

このNUCでは起動時に時々「CMOSのチェックサムがおかしい」というメッセージがBIOS起動画面に出ました。ボタン電池を外して放置しても出てくるので、BIOSが壊れかけている疑惑もありました。なので、この際、アップデートすることにしました。現在のBIOSは、昔メンテナンスした時にアップデートしたWYLPT10H-86A.0045というバージョンでした。

インテルのサイトで調べたところ、2019年9月2日に最新のBIOSが出ていて、それは、WYLPT10H-86A.0054でした。早速ダウンロードして、USBメモリーに入れて、BIOS起動画面からアップデートしました。

NUCのBIOSアップデートにはちょっとした注意点があります。アップデートが一段落すると、画面に、「正常にアップデートされました」という表示が出て、そのまま動かなくなります。Ivy BridgeモデルのNUC BIOSをアップデートした時に、しばらく放置しても何の変化もなかったので、ここでリセットすれば良いのかと思い電源を切ったことがありました。すると2度と起動しなくなりました。(このNUCをしばらく放置していたら起動するようになってました。理由は不明ですが、バックアップされていた設定が消えて起動できるようになったのかもしれません。)なので重要なことは、「正常にアップデートされました」という表示が出ても、自動的に再起動されるまで辛抱強く待つということです。2〜3分くらい待たされる感じがします。

OpenCore 0.6.2を入れる

シリアル番号をより正しいものに変更し、BIOSを最新にアップデートした後、入っているCloverも最近のもの (5122) に入れ替え、macOSも最新の10.15.7 (19H2) にアップデートしました。問題なく稼働しているのですが、Big Surへの移行準備のために、ブートローダをOpenCoreに入れ替えることにしました。

まずはダウンロードしたOpenCore 0.6.2のX64フォルダにあるEFIフォルダを、ESPにコピーします。次に以下のガイドに従って、設定を進めます。

ACPIフォルダの中には、以下の二点が必要です。

  • SSDT-PLUG.aml
  • SSDT-EC-DESKTOP.aml

CPU毎に必要なamlのリストは以下でまとめられています。

ここで必要とされているデスクトップ用SSDT-EC.amlはこちらのサイトからダウンロードしました。そこでのファイル名がSSDT-EC-DESKTOP.amlとなってましたので、名前をそのまま使うことにしました。

Kextフォルダの中は、今回は以下にしました。

  • WhateverGreen.kext
  • VirtualSMC.kext
  • SMCSuperIO.kext
  • SMCProcessor.kext
  • Lilu.kext
  • IntelMausi.kext
  • AppleALC.kext

SMC….kextはハードウェアモニター用なのでなくても良いです。

config.plistの内容は、上記のガイドのページに従って設定しました。説明を読めば、どれが必要か判断できると思います。DevicePropertiesの箇所には、

<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
  <dict>
    <key>AAPL,ig-platform-id</key>
    <data>AwAiDQ==</data>
  </dict>

を加えました。Intel HD Graphics 5000を表示用に使用する設定です。また、

<key>PciRoot(0x0)/Pci(0x1b,0x0)</key>
  <dict>
    <key>layout-id</key>
    <data>AQAAAA==</data>
  </dict>

も加えました。オーディオのレイアウトIDを1番に設定する記述です。Pci(0x1b,0x0)のPci番号は、Hackintoolを使って、そのPciタブからPCIデバイス一覧を見て、このIOReg NameにHDEFとある行を探して、HDオーディオデバイスを特定しました。

レイアウト番号はとりあえず1番からテストしようとしたら、1番で正解でした。前面のヘッドフォン端子から音が出ることを確認しました。

Sample.plistの初期設定でKext Updater.appを起動すると、「Misc, Security, ExposeSensitiveDataの1, 2ビットをonにする」ように指示が出ます。デフォルトではExposeSensitiveDataが6だったので7にしました。

このNUCには、前面にUSB 2.0端子が2個、背面にUSB 3.0端子が2個あります。また内部のmini PCIeソケットには、USB 2.0が1個あります。さらに、ケースに配線の余裕が無いので使うことはないですが、基板上にUSBコネクタがいくつかあります。ただ、それらを全部加えても15個のようです。なのでconfig.plistのXhciPortLimitで15個制限を外したり、15個制限に対応するkextを作ったりする必要は無いです。

Big Sur beta 9を入れる

Big Surベータ9を入れました。MacBook6,1と6,2は、Big Surが動く最古のMacです。また4250UはBig Surが公式対応する最弱のCPUと言えます。ギリギリのスペックでしたが、インストールは、インストーラを起動するだけで簡単でした。インストール途中の再起動では、macOS Installerというドライブが現れて選択されていました。インストール後の動作も問題ありませんでした。ベータ9は安定していて充分にキビキビ動くので、完成度は高いと思います。

Geekbenchをしてみたところシングル600, マルチ1200台程度でした。遅いですね。Apple Silicon搭載Mac miniが800/2900くらいなので、完全に負けてます。

ちなみに同じ4250U搭載のMacBook Air Mid 2013のスコアも大体同程度です。妥当な結果のようです。

Bluetoothを使う

NUCのmini PCIeソケットに、無線カードBCM94360HMB (AzureWave AW-CB160H)を挿しています。WiFiとBluetoothの機能のあるカードです。このうちWiFiはOOBで設定不要で動きます。Bluetoothを動かすためには以下のkextが必要でした。

  • BrcmPatchRAM3.kext
  • BrcmFirmwareData.kext
  • BrcmBluetoothInjector.kext

これらはKext-Updater.appからダウンロードしました。メイン画面のKextmanagerボタンをクリックして、次の画面でBrcmPatchRamを選びます。

すると8個のkextがダウンロードされます。このうち太字の3個を使ったわけです。

  • BrcmBluetoothInjector.kext
  • BrcmFirmwareData.kext
  • BrcmFirmwareRepo.kext
  • BrcmNonPatchRAM.kext
  • BrcmNonPatchRAM2.kext
  • BrcmPatchRAM.kext
  • BrcmPatchRAM2.kext
  • BrcmPatchRAM3.kext

無線カードのファームウェアにパッチを当てるもののようです。初期の頃は、このうちBrcmFirmwareData.kextとBrcmPatchRAM.kextを使用するのが一般的だったようです。ファームウェアのデータkextとパッチしてくれるkextという組み合わせかと思います。その後Catalinaの頃のガイドでは、BrcmPatchRAM2.kextとBrcmFirmwareData.kextに加えて、BrcmBluetoothInjector.kextも必要になったと書かれていました。今回ダウンロードしたら、さらにBrcmPatchRAM3.kextという新そうな名前のkextがありました。ということで、上記の3個のkextを使うことにしました。この結果、システム環境設定からBluetoothが見えて、アップル純正キーボード・トラックパッドでの動作を確認しました。

2件のコメント

  1. お疲れさまです。
    省電力サーバとしてはいい機体ですね。
    そして気づいたのは、オーディオのPCIデバイスアドレスがちがうのもあるんですね。前にBootmacosさんが行ってたとおり、つなぎ方次第なんでしょうねぇ。
    (手広く機体が持てるようなので、うらやましいです。トーチャンのこづかいは少ないのです(つД`)ww)

  2. アドレスはいろいろですね。マザボの配線次第なのかなと思ってます。

返信を残す

メールアドレスが公開されることはありません。