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を入れる」シリーズの記事ですが、小ネタです。

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

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

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=

とすれば消せます。

2件のコメント

  1. >EmuVariableUefi.efiを使うと、再起動前に変更したり書き込んだ結果が消えてしまうものの、
    >正しく書き込まれているNVRAM値は読めるようです。
    そういえば、CloverのPreferesPaneをインストすると、NVRam変数タブにの持病?の対策がありますものねぇ。。。
    EFIフォルダのルートにNVRAM.plistが出現する、NVRAMをコンテンツディスクに保存するってやつですね?
    https://imgur.com/a/Xok0uMu

    私のZ97X 9シリーズ、Thinkpad X230の7シリーズ QM77 LPC Controllerでも、SSDT-PM.amlを使用することで非EmuVariableUefi.efi環境としてNVRAMが動作してます。

  2. 情報ありがとうございます。7シリーズでも効くのですね。
    (ログイン忘れてました。bootmacosです。)

返信を残す

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