サイトアイコン Boot macOS

VirtualSMC: もう1つのFakeSMC

SMCとは何か?

SMC (System Management Controller) はIntel版Macに搭載されたサブシステムです。小さなコンピュータチップですね。Intel版になる前にもこのようなサブシステムは存在していて、SMU (System Management Unit)とかPMU (Power Management Unit)などと呼ばれていたようです。SMCは、メインのIntel CPUとは独立して動いて、次のような仕事を担当しています。

ちなみに最近のMacに搭載されているApple T2セキュリティチップは、SMCも内蔵しているらしいです。

SMCのふりをするFakeSMC.kext

一般的なATXマザーボードにはSMCは搭載されていません。SMCは独立したサブシステムですが、OSからアクセスすることもあるので、SMCが無いとmacOSが起動しません。FakeSMX.kextは、名前の通り、SMCがあるかのように振舞ってくれるkextです。macOSを起動するために唯一必須のkextなのです。

また上述のように、SMCには温度をセンシングして冷却コントロールする機能もあります。FakeSMCはこれらの機能も提供するので、連携するアプリケーションを使用することで、コンピュータの温度やファン回転数を知ることもできます。

新登場のVirtualSMC

FakeSMCと同じ機能を実現するために、最近VirtualSMCというkextが登場しているようです。最初のリリースは今年(2018)の9月12日です。出たばかりです。

SMC emulator layer. Contribute to acidanthera/VirtualSMC development by creating an account on GitHub.
GitHub - acidanthera/VirtualSMC: SMC emulator layer - GitHub

githubのページには、特徴として以下のことが書かれています。

だそうです。redditでも紹介されて、FakeSMCとVirtualSMCの比較が書かれていました。

38 votes and 30 comments so far on Reddit
r/hackintosh - FakeSMC vs VirtualSMC - reddit

redditの達人達の評価によると、

ということです。安定性を求めるなら定評のあるFakeSMCを使い続けて、新しいものに興味があるならVirtualSMCを使ったら良いのではということでした。ChameleonがCloverに置き換わった時も、こんな感じの評判でしたので、将来はVirtualSMCに置き換わっていくと思われます。

VirtualSMCを使ってみた

そこで早速使ってみました。githubからダウンロードしてmakeするのは面倒なので、コンパイル済みを探します。そこで、最近お世話になっているKext Updater.appを使いました。

Kext Updater 古いバージョンの記事です。新しいバージョンに関しては以下をご覧ください。 Hacki…
ワンクリックで最新kextに〜Kext Updater.app (Ver. 2) - Boot macOS

ここで、Load Single Kextを選ぶと、VirtualSMCをダウンロードできます。

こうして入手したVirtualSMC.kextをFakeSMC.kextと置き換えてみました。

入れた場所は、ESPの中です。ドキドキしながら再起動したところ、無事、ブートできました。最初の起動には少し時間がかかった気がしましたが、2回目以降の起動はFakeSMCの時よりも早くなったような気がしました。ただし気のせいかもしれません。FakeSMCと同じく、問題なく動く様子ですので、新しい物好きとしてはVirtualSMCを使っていきたいと思います。

ダウンロードしたファイルには、VirtualSMC.kext本体の他に、センサー関係のkextらしきものがいくつか入っています。

今回は、一つもインストールしませんでしたが、そのうち調査したいと思います。

蛇足:両方使うとどうなる?

試しているうちに、うっかりFakeSMCとVirtualSMCを両方使ってしまった期間がありました。気づかず使っていたのですが、手元の環境では、macOSを終了しても電源が切れずにまた起動するようです。気づいて片方のみにしたら、正常に戻りました。両方使う意味はないですし他にも副作用が出ると思いますのでご注意ください。

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