09月22日
NVRAM/PRAM/SMCってどういう関係?なにがリセットされるのか?
NVRAM/PRAM/SMCってどういう関係?なにがリセットされるのか?ということが疑問になり、調査しました。
PRAM リセット、NVRAMリセットは、以下操作方法でリセットすることができます。
ここで2つの疑問が浮かびます。PRAM/NVRAMは同じ操作でクリアされます。違いがあるんでしょうか?またPRAM/NVRAMはなにが記録されているんでしょうか?
PRAM リセット、 NVRAMリセットとは?なにが違うの?
PRAM リセット、NVRAMリセットは、以下操作方法でリセットすることができます。
- macをシャットダウンする
- macを起動する
- Option キー、Command(⌘)キー、P キー、R キーの4つのキーを押し続ける
「ジャーン」のあとにもう一回「ジャーン」となるまで4つのキーを押し続ける
2回なったらリセット完了です。4つのキーを離して良いです。
PRAM/NVRAMがクリアされます。
ここで2つの疑問が浮かびます。PRAM/NVRAMは同じ操作でクリアされます。違いがあるんでしょうか?またPRAM/NVRAMはなにが記録されているんでしょうか?
PRAM/NVRAMってちがうものなの?
Macのモデルによって呼び名が異なるだけで、PRAM/NVRAM共に「コンピュータの少容量のメモリ」で同一です。
PRAM とは、Parameter Random Access Memory、パラメーターが格納されたRAM、
NVRAMとは、Non-Volatile RAM、不揮発性RAMと呼ばれます。
PowerPCを搭載しいた頃のMacは、PRAMと呼ばれ、Intelチップ(現行)を搭載したMacは、NVRAMと呼ばれているようです。(wikiより)
NVRAM/PRAMに記録されているものは、Macのモデルによって違いがあります。
NVRAMに記録されている項目は、nvramコマンドで確認することができます。
ターミナルからnvram -p で調べることができます。
こちらは、MacBook Pro Retina Late2012 OSX Mavericksで実行したデータです。
同じLate2012ですが、macOS Sierra だと以下のように変わっています。
macOS High Sierraは、以下のようになっています。
同じmacOS SierraのMid2015もやっぱり結果が異なります。
分かっている範囲のパラメータ名からある程度想像がつくものと、つかないものがありますが、NVRAMリセットでクリアされる項目はそれほど多くありません。
システムボリューム、バックライトの明るさ設定以外は、
efi-***がEFIボリュームに存在するFirmwareの位置などの情報、
boot-***がブートに関連するパラメータ等ではないかと推測できます。
nvramコマンドは、値の表示の他、値の設定、項目の削除や全削除が実行可能です。
nvramの設定を削除しても、即座に反映されません。
保存するタイミングは、シャットダウンです。
(Changes to NVRAM variables are only saved by clean restart or shutdown.)
nvramは、ファームウェアよりの記憶領域ということがわかりました。
SMC(システム管理コントローラ)は、以下操作方法でリセットすることができます。
そのままmacosが立ち上がるNVRAM/PRAMのリセットと異なり、SMCリセットはリセットだけ行います。
なんだか随分と物々しい感じです。
これは、NVRAM・PRAMはファームウェアよりの情報(起動時に必要な情報の管理)で、SMCの方はシステム全般的なハードウェアよりの情報を管理しているためだと推測できます。
「SMC のリセットが必要だと思われる場合の兆候」からSMCが何を管理しているのかがわかります。
ハードウェア周りですが、Wi-Fiなどの項目はありません、すべてのハードではないように見えますね!
温度(ファン)、電源管理、バッテリ管理、ビデオカードの選択、LEDなどハードウェアをマネージメントしているのがSMCってことになります。
ここは推測&想像の域ですが・・
サポート情報では、バッテリーが取り外せるmacbookやデスクトップ機は、バッテリーを取り外すことでSMCリセットが可能と記載されています。
裏を返すと通電中(スリープ中を含めて)は消えない特徴があるってことです。
macのファンが回りっぱなしになって困るという情報を見かけることがあります。
解決方法は、SMCリセットです。
SMCにはファンの回転数が記録されている
SMCは、ある瞬間のハードウェアイベントを記録しているように感じます。
ファンの回転数そのものが記録されているのではなく、きっかけになったCPUレベル、指示した値などを記録していのではないか?と推測しています。
SMCの内容を表示するコマンド(非標準)があります。
SMCはIOKitと密接な関係があって、
ioregっていうコマンドで表示できる内容の一部がSMCの活動記録的な位置付けだと思っています。
SMCは、ハードウェアイベントをモニタリング、記録、状況に応じて指示を出す役割がありそうです。
SMCのバージョンは、「このMacについて」>システムレポート...で初期表示される内容で知ることができます。
SMCのリセットは、部分的な記憶領域のリセットではなく、SMCバージョン(システム)の再インストールではないか?と推測しています。
参考:
Apple公式:OS X Mavericks: コンピュータの PRAM をリセットする
http://support.apple.com/kb/PH14222?viewlocale=ja_JP
Intel-based Macs:SMC (システム管理コントローラ) のリセット
https://support.apple.com/kb/HT3964?viewlocale=ja_JP
MacBook Pro Retina Late2012、MacBook Pro Retina Mid2015を使っています。
SMCリセットが実際に役立った場面は、以下1つだけです。
mid2015に接続したいたUSBハードディスクが、いきなり認識しなくなりました。再認識させようと抜いて、差し込んでみますが、ボリュームがマウントされません。(通電でハードディスクの回転音がしています)
このような症状に出会ってしまったら、SMCリセットが役に立つはずです。
SMCリセット後、マウント出来る様になります。mac野郎なのかの場合、ハードディスク自体が壊れ始めていることが、真の原因でした。リードオンリーモードでマウントされたものを急いでコピーしました。
「SMCが管理しているもの」で説明していない症状に役立っています。SMCには、macに接続したハードウェアの情報と異常状態を記憶する役割がありそうです。
いかがでしたでしょうか、ここまで、
・PRAM/NVRAMってちがうものなの?
・NVRAM/PRAMリセットでリセットされる項目はなに?
・SMCはなにを管理しているの?
・SMCリセットとは、実際なにをしている?
をご紹介してきました。
NVRAMはファームウェアのリセット、SMCはハードウェアの情報をリセットするものという違いがわかってきました。
NVRAMリセット、SMCリセットでも状況が改善しないっていう場合、経験則ですが、
後からインストールしているアプリのカーネル拡張機能が悪さをしていることがあります。
macosをアップデートして、不調になる場合が多いと感じています。
アップデートする前に、カーネル拡張機能を使っているアプリを削除することで回避することができます。
こちらのコマンドで動いているカーネル拡張機能を表示できるので、名前からアプリを特定できます。
% kextstat
com.appleで始まるものは、apple製なので気にしてはいけません。
PRAM とは、Parameter Random Access Memory、パラメーターが格納されたRAM、
NVRAMとは、Non-Volatile RAM、不揮発性RAMと呼ばれます。
PowerPCを搭載しいた頃のMacは、PRAMと呼ばれ、Intelチップ(現行)を搭載したMacは、NVRAMと呼ばれているようです。(wikiより)
NVRAM/PRAMリセットでリセットされる項目はなに?
NVRAM/PRAMに記録されているものは、Macのモデルによって違いがあります。
NVRAM (不揮発性ランダムアクセスメモリ) は、Mac がすばやくアクセスできるように所定の設定情報を記憶しておく小容量のメモリです。NVRAM に記憶される設定情報には、音量、画面解像度、選択されている起動ディスク、時間帯、最近起きたカーネルパニックの情報などが該当します。
support.apple.com
NVRAMに記録されている項目は、nvramコマンドで確認することができます。
ターミナルからnvram -p で調べることができます。
% nvram -p
bluetoothActiveControllerInfo
boot-gamma
boot-image
SystemAudioVolume
backlight-level
SmcFlasherResult
prev-lang
SystemAudioVolumeDB
efi-apple-recovery
ThorUpdateResult
fmm-computer-name
tbt-options
efi-apple-payload0
efi-boot-device-data
LocationServicesEnabled
こちらは、MacBook Pro Retina Late2012 OSX Mavericksで実行したデータです。
同じLate2012ですが、macOS Sierra だと以下のように変わっています。
% nvram -p
efi-apple-recovery
fmm-computer-name
fmm-mobileme-token-FMM
boot-gamma
bluetoothActiveControllerInfo
bluetoothInternalControllerInfo
backlight-level
SystemAudioVolumeDB
SystemAudioVolume
macOS High Sierraは、以下のようになっています。
% nvram -p
bluetoothInternalControllerInfo
fmm-computer-name mymac
efi-boot-device
SystemAudioVolumeDB
bluetoothActiveControllerInfo
SystemAudioVolume
backlight-level
efi-boot-device-dat
同じmacOS SierraのMid2015もやっぱり結果が異なります。
% nvram -p
backlight-level
BootCampProcessorPstates
fmm-mobileme-token-FMM
bluetoothInternalControllerInfo
SystemAudioVolumeDB
efi-apple-recovery
efi-boot-device
bluetoothActiveControllerInfo
fmm-computer-name
efi-boot-device-data
ALS_Data
SystemAudioVolume
分かっている範囲のパラメータ名からある程度想像がつくものと、つかないものがありますが、NVRAMリセットでクリアされる項目はそれほど多くありません。
システムボリューム、バックライトの明るさ設定以外は、
efi-***がEFIボリュームに存在するFirmwareの位置などの情報、
boot-***がブートに関連するパラメータ等ではないかと推測できます。
nvramコマンドは、値の表示の他、値の設定、項目の削除や全削除が実行可能です。
- nvram -p =>nvramに記録されている設定値の一覧表示
- nvram -d name =>指定nameの削除
- nvram -c => nvramに記録されている設定値の全削除
- 起動時パラーメータの指定 nvram my-variable="String One%00String Two%00%00"
ブート時のパラメータを指定することができます。
nvramの設定を削除しても、即座に反映されません。
保存するタイミングは、シャットダウンです。
(Changes to NVRAM variables are only saved by clean restart or shutdown.)
nvramは、ファームウェアよりの記憶領域ということがわかりました。
SMC(システム管理コントローラ) のリセットとは?
SMC(システム管理コントローラ)は、以下操作方法でリセットすることができます。
- macをシャットダウンします
- MagSafe 電源アダプタまたは USB-C 電源アダプタをコンピュータから外します。
- 内蔵キーボードの左側にあるShiftキー、コントロールキー、オプションキー3つのボタンを押しながら電源ボタン、計4つのボタンを10秒間押し続けます。
- すべてのキーを放します。
- MagSafe 電源アダプタまたは USB-C 電源アダプタをコンピュータに接続して、電源ボタンを押して起動します。
そのままmacosが立ち上がるNVRAM/PRAMのリセットと異なり、SMCリセットはリセットだけ行います。
なんだか随分と物々しい感じです。
これは、NVRAM・PRAMはファームウェアよりの情報(起動時に必要な情報の管理)で、SMCの方はシステム全般的なハードウェアよりの情報を管理しているためだと推測できます。
「SMC のリセットが必要だと思われる場合の兆候」からSMCが何を管理しているのかがわかります。
SMCはなにを管理しているの?
- 電源ボタンを押したときの応答
- ポータブル Mac のディスプレイの蓋を開いたり閉じたりしたときの応答
- 電源(バッテリー)管理
- 熱管理
- SMS (緊急モーションセンサー)
- 環境光センサー機能
- キーボードのバックライト機能
- ステータスランプ (SIL) 管理
- バッテリー残量のインジケータランプ
- 特定の iMac のディスプレイに対して (内部の代わりに) 外部ビデオソースを選択する
ハードウェア周りですが、Wi-Fiなどの項目はありません、すべてのハードではないように見えますね!
温度(ファン)、電源管理、バッテリ管理、ビデオカードの選択、LEDなどハードウェアをマネージメントしているのがSMCってことになります。
SMCリセットとは、実際なにをしている?
ここは推測&想像の域ですが・・
サポート情報では、バッテリーが取り外せるmacbookやデスクトップ機は、バッテリーを取り外すことでSMCリセットが可能と記載されています。
裏を返すと通電中(スリープ中を含めて)は消えない特徴があるってことです。
macのファンが回りっぱなしになって困るという情報を見かけることがあります。
解決方法は、SMCリセットです。
SMCにはファンの回転数が記録されている
SMCは、ある瞬間のハードウェアイベントを記録しているように感じます。
ファンの回転数そのものが記録されているのではなく、きっかけになったCPUレベル、指示した値などを記録していのではないか?と推測しています。
SMCの内容を表示するコマンド(非標準)があります。
- beltex/SMCKit
温度、ファンの回転数などがわかります。 - lavoiesl/osx-cpu-temp
Core毎の温度、Memoryの温度、Heatpipeの温度などがわかります。
SMCはIOKitと密接な関係があって、
ioregっていうコマンドで表示できる内容の一部がSMCの活動記録的な位置付けだと思っています。
SMCは、ハードウェアイベントをモニタリング、記録、状況に応じて指示を出す役割がありそうです。
SMCのバージョンは、「このMacについて」>システムレポート...で初期表示される内容で知ることができます。
SMCのリセットは、部分的な記憶領域のリセットではなく、SMCバージョン(システム)の再インストールではないか?と推測しています。
参考:
Apple公式:OS X Mavericks: コンピュータの PRAM をリセットする
http://support.apple.com/kb/PH14222?viewlocale=ja_JP
Intel-based Macs:SMC (システム管理コントローラ) のリセット
https://support.apple.com/kb/HT3964?viewlocale=ja_JP
SMCリセットが実際に役立った場面とは?
MacBook Pro Retina Late2012、MacBook Pro Retina Mid2015を使っています。
SMCリセットが実際に役立った場面は、以下1つだけです。
- USB機器が認識しなくなった、SMCリセットしたら認識するようになった
mid2015に接続したいたUSBハードディスクが、いきなり認識しなくなりました。再認識させようと抜いて、差し込んでみますが、ボリュームがマウントされません。(通電でハードディスクの回転音がしています)
このような症状に出会ってしまったら、SMCリセットが役に立つはずです。
SMCリセット後、マウント出来る様になります。mac野郎なのかの場合、ハードディスク自体が壊れ始めていることが、真の原因でした。リードオンリーモードでマウントされたものを急いでコピーしました。
「SMCが管理しているもの」で説明していない症状に役立っています。SMCには、macに接続したハードウェアの情報と異常状態を記憶する役割がありそうです。
まとめ
いかがでしたでしょうか、ここまで、
・PRAM/NVRAMってちがうものなの?
・NVRAM/PRAMリセットでリセットされる項目はなに?
・SMCはなにを管理しているの?
・SMCリセットとは、実際なにをしている?
をご紹介してきました。
NVRAMはファームウェアのリセット、SMCはハードウェアの情報をリセットするものという違いがわかってきました。
NVRAMリセット、SMCリセットでも状況が改善しないっていう場合、経験則ですが、
後からインストールしているアプリのカーネル拡張機能が悪さをしていることがあります。
macosをアップデートして、不調になる場合が多いと感じています。
アップデートする前に、カーネル拡張機能を使っているアプリを削除することで回避することができます。
こちらのコマンドで動いているカーネル拡張機能を表示できるので、名前からアプリを特定できます。
% kextstat
com.appleで始まるものは、apple製なので気にしてはいけません。
タグ:ふとした疑問
コメントシステムを利用したくない方はお問い合わせからお願いします。
2013.8.19 DISQUS(外部コメントサービス)の利用を開始しました。
Facebook, google, Twitter等のアカウントで投稿可能です。