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を入れる」シリーズの記事ですが、小ネタです。
Table of Contents
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=
とすれば消せます。
>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が動作してます。
情報ありがとうございます。7シリーズでも効くのですね。
(ログイン忘れてました。bootmacosです。)