サイトアイコン Boot macOS

100シリーズチップセットで本物のNVRAMを使う

SSDT-PMC.amlをEFI/CLOVER/ACPI/patchedに入れると、Intel 100シリーズチップセットでもNVRAMの値が保存されるようです。Q170搭載のHP社小型デスクトップPC、HP EliteDesk 800 G2 DMで試した結果を報告します。

これも、「HP社の小型デスクトップPC、HP EliteDesk 800 G2 DM にmacOSを入れる」シリーズの記事ですが、小ネタです。

HP社の小型デスクトップPC、HP EliteDesk 800 G2 DM (Core i3-6100T)にmacOSをインストールしました。まずはiGPUとLANが動きました。第5~6世代のメーカー製中古デスクトップPCは1万円前後で入手できます。この値段ですぐに動くmacOSマシンが手に入るのでお得です。追記:その後、スリープ復帰後にiGPUの信号が出ないブラックスクリーン状態が発生していることに気づきました。最近のmacOSで発生しているようで解決策は無いようです。スリープさせない設定にしても長時間放置するとブラックスクリーンになることもありました。画面共有...
HPの小型デスクトップEliteDesk (1: macOS導入) - Boot macOS

300チップセットでNVRAMを使う

NVRAMを使うために、従来は、EmuVariableUefi.efiドライバを入れていました。でも300シリーズチップセットではNVRAMの内容が正しく保存されない問題がありました。しかし、最近OpenCoreの成果で作られたSSDT-PM.amlを使えば、300シリーズチップセットでもNVRAMが正しく使えます。という記事を、以下に書きました。

現行の300シリーズチップセットマザーボードでは、macOSがNVRAMにアクセスできない問題があります。NVRAMが使えないと設定が保存されないだけでなく、シャットダウンやスリープの動作にも支障が出ます。そのためにEmuVariableUefi.efiを使って、NVRAMをソフトウェアエミュレーションする必要がありました。NVRAM問題を、エミュレーションを使わずに、根本的に解決するSSDTがRedditで紹介されていました。このSSDT-PMC.amlをEFI/CLOVER/ACPI/patchedに入れてみました。その結果、ASUS ROG MAXIMUS XI HERO (Z390)マザーボードのNVRAMが...
300シリーズマザーボードでも本物のNVRAMを使いたい - Boot macOS

100チップセットでもNVRAMを使う

最近、HP EliteDesk 800 G2 DMのスリープ対策で色々試していたところ、このマシンでもEmuVariableUefi.efiではNVRAMに書き込めないことに気づきました。公開されている仕様書によると、HP EliteDesk 800 G2 DMはQ170チップセットを使っています。100シリーズチップセットでも300シリーズチップセットと同様な問題があるようです。

そこでSSDT-PM.amlを使ってみたところ、なんと正しくNVRAMが動きました。ということで、SSDT-PM.amlは、300シリーズに限らず、おそらく100シリーズでも有効なようです。以下に、EmuVariableUefi.efiを使った場合と、SSDT-PM.amlを使った場合の比較を書いておきます。

EmuVariableUefi.efiを使う

まずは、EmuVariableUefi.efiを

EFI/CLOVER/drivers/UEFI/EmuVariableUefi.efi

の場所に入れて起動した場合です。ターミナルからnvramコマンドで、意味のないhogeという名前の変数にtestという文字を登録します。nvram -pコマンドで確認できるので、そこからhogeだけ取り出して表示します。この一連の作業を行った結果を以下に示します。

% sudo nvram hoge=test
Password:
% nvram -p | grep hoge
hoge	test

ここで再起動します。再起動後に、nvram -pコマンドを試すと以下になりました。

% nvram -p | grep hoge

再起動前に設定した変数が消えています。

SSDT-PMC.amlを使う

次にSSDT-PMC.aml

EFI/CLOVER/ACPI/patched/SSDT-PMC.aml

に入れて起動します。この状態で、ターミナルからnvramコマンドで、同様に変数hogeにtestという文字を登録して、nvram -pコマンドで確認します。

% sudo nvram hoge=test
Password:
% nvram -p | grep hoge
hoge	test

ここで再起動します。再起動後に、nvram -pコマンドを試すと以下になりました。

% nvram -p | grep hoge
hoge	test

SSDT-PMC.amlを入れておけば、Q170チップセットでもNVRAMに値を入れて、再起動後も読み込めるようです。ちなみにSSDT-PM.amlを入れた状態で設定した変数は、これを外してEmuVariableUefi.efiを入れた状態でも読み込めました。EmuVariableUefi.efiを使うと、再起動前に変更したり書き込んだ結果が消えてしまうものの、正しく書き込まれているNVRAM値は読めるようです。

まとめ

SSDT-PMC.amlは300シリーズチップセットだけでなく、他のチップセットでも有効なようです。300シリーズ以外のユーザの皆さんも、ぜひお試しください。その結果をコメント欄で報告いただければありがたいです。ちなみに設定してしまった意味のない変数は、

% sudo nvram hoge=

とすれば消せます。

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