NVIDIA GeForce KeplerをMontereyで動かす

NVIDIAのKeplerアーキテクチャは、macOSで長らくサポートされていましたが、とうとうMontereyからサポートされなくなりました。でもBig Sur以前のドライバをインストールすれば動きます。

Keplerが動かない

久しぶりに古いKeplerアーキテクチャのグラボ、GTX 770を使ってみたところ、macOSで動かなくなってました。低解像度で表示はされますが、グラフィックス加速が効いてなくて、動きがギクシャクします。試したのは、ASRock Z690 + Intel 12700K + macOS Monterey 12.0.1の構成です。調べたところMontereyからKeplerのサポートが終了しているようです。ちなみにこれまでmacOSで動くとされていたKeplerのグラボは、以下です。Montereyから、これらが動かなくなったようです。(正確にはMonterey beta 6まではドライバがあったらしいです)

  • GTX Titan (GK 110 Maxwell core)
  • GTX Titan Black (GK 110 Maxwell core)
  • GTX Titan Z
  • GTX 780/Ti
  • GTX 770
  • GTX 760/Ti
  • GT 740
  • GT 730 (GK208 variant)
  • GT 720
  • GT 710
  • GTX 690
  • GTX 680
  • GTX 670
  • GTX 660Ti
  • GTX 660(MUST BE RUNNING A GK 104 core, NOT GK 106)
  • GTX 650(GK 107 core)
  • GT 640(Kepler edition, GK 107/208 core)
  • GT 630(Kepler edition, GK 107/208 core)
  • Quadro 410
  • Quadro K420
  • Quadro K600
  • Quadro K2000/D
  • Quadro K4000/D
  • Quadro K4200
  • Quadro K5000
  • Quadro K5200
  • Quadro K6000

ちなみに、NVIDIA自体も2021年10月の最新ドライバでKeplerのサポートを終了したそうです。なのでmacOSのKeplerサポート終了は、仕方のないことでしょう。

kextが無い

なのでMontreyにはKeplerをサポートする拡張ファイルが無くなりました。Keplerは、macOSでサポートされていたNVIDIA唯一のアーキテクチャだったので、これでNVIDIA製品が完全にサポートされなくなりました。

kextが無くなったことを確認するために、macOS 11.2.1 Big Sur (20D74)の/S/L/Eの中身を調べてみました。NVDAで始まるファイルとして、以下が見つかります。

  • /System/Library/Extensions/NVDAGF100Hal.kext
  • /System/Library/Extensions/NVDAGK100Hal.kext
  • /System/Library/Extensions/NVDAResman.kext
  • /System/Library/Extensions/NVDAStartup.kext

同様にGeForceで始まるファイルとして以下がありました。

  • /System/Library/Extensions/GeForce.kext
  • /System/Library/Extensions/GeForceAIRPlugin.bundle
  • /System/Library/Extensions/GeForceGLDriver.bundle
  • /System/Library/Extensions/GeForceMTLDriver.bundle
  • /System/Library/Extensions/GeForceVADriver.bundle

一方で、macOS 12.0.1 Monterey (21A559)にはこれらが存在していません。

古いKextを使う

Kextが無くなってしまったのなら、古いmacOSから持って来れば良いです。ただ、システムに必須のディレクトリは保護されていて、手作業でkextを持ってくるのは面倒です。なので、それを自動化してくれるツールがありました。

前述の9個のkextとbundleをインストールしてくれます。

ただし、システムファイル用のディレクトリに手を加えるのでSIP (System Integrity Protection) を無効にする必要があります。通常は、

csrutil status

で確認できるように、SIPが有効になってます。Macの実機だと、リカバリーモードで起動してcsrutilコマンドでSIPを解除するのですが、hackintoshならconfig.plistで変更できます。NVRAM/Add/7C436110-AB2A-4BBB-A880-FE41995C9F82/csr-active-configの値(大抵は00000000のはずです)をEF0F0000に変更します。この数値はGeforce Kepler patcherで指示されます。

Runボタンを押すと、インストールが開始されます。インストール先のボリュームを指定して、その中のDATAになっているAPFSのボリュームを指定するステップを経て、インストール終了です。

csr-active-configの値は、kext類をインストールした後もそのままにしておく必要があるようです。SIPを有効に戻してしまうと、起動しなくなりました。また起動ボリュームの名前が、Monterey-DISKに変更されます。

動きました

再起動すると、高解像度の画面で表示されていました。macOSで認識されているようです。Geekbench 5も動くようになりました。でもOpenCLのテストはなぜか途中で中断します。Metalのテストは最後まで動きます。スコアは以下のようでした。

古いGPUですからこんなものでしょうか。M1 Maxの1/10くらいです。

まとめ

NVIDIA GeForce KeplerはMontereyからサポート外になってました。古いmacOSのkextをインストールすることで使えるようになります。古いカードですのでそれなりの性能でした。

10件のコメント

  1. おつかれ様です。
     Chrisはこういうことはとっても気用ですよね。
     一度私と、Cloverのインストールログをどこに置くかで、Sliceにモデレートしてもらったんですが、私がノーサイド宣言をしてから、私の失敗もフォローしてくれます。
     CloverThemeも結構作るし、見せる技術に関しては結構好きみたいです。
    ありがたいです。
     あと5T33Z0さんは、物書きはマメですね~・・・
    https://github.com/5T33Z0/Clover-Crate
    今のCloverでここまで書くのは、なかなか暇がないです・・・なにしてるひとなんでしょ?
    ^^;

  2. ここに書いて良いものか判断付きかねましたが、Geforce-Kepler-patcher関連の事なので書かせていただきます。

    私のGeforce-Kepler-patcherを適用した状態のMonterey 12.0.1を12.1にアップデートしてみました。SIPは無効(csr-active-config値EF0F0000)のままでアップデートは完了しましたが、アップデート後はパッチが無効になったので再度Geforce-Kepler-patcherを実行する必要がありました。

    ただし、アップデート時にダウンロードするデータが11.2GBと表示され、実際に非常に時間がかかりました。通常12.0.1から12.1へのアップデートの場合アップデートデータは2.6GB程度であるようなので、おそらくパッチされた環境では差分適用ではなく12.1のシステム領域を再インストールしたものと推測します。
    回線が細いのでバージョンアップの度にこれだといささか厳しいです。
    パッチをアンインストールすることが出来れば差分で済むのかもしれませんが、アンインストール方法も不明でした。もしアンインストール方法をご存じでしたらご教授ください。

    1. この後、アンインストールしようとして、kext類を消しました。ボリューム名も元に戻しました。それでアンインストールできたと思ってたのですが、どうでしょうか。今は、ディスクもフォーマットして12.1をクリーンインストールしてしまったので確認できないです。すみません。

      1. ご回答ありがとうございます。恥ずかしながらkext類の消し方が分からないのです。
        以前はsudo mount -uw / で書き込み可能で再マウントできたと思うのですが
        big sur以降はできないようですし、リカバリーモードで起動してターミナルからmount -uw /Volumes/Monterey-DISK としてrm -r /Volumes/Monterey-DISK/System/Library/Extentions/NVDA*.* rm -r /Volumes/Monterey-DISK/System/Library/Extentions/Geforce*.* とかやってみたのですが再起動するとファイルは復活しています。
        どうやって削除するのかご教授願えませんでしょうか?

    2. こちらも消したつもりだったけど消えていなかったのかも知れないです。クリーンインストールしてしまったので確認できないです。すみません

      1. ども、お疲れさまです。
        >NVIDIAのKeplerアーキテクチャは、macOSで長らくサポートされていましたが、
        >とうとうMontereyからサポートされなくなりました。
        Monterey Beta6までは、あるにはありましたねぇ。。。

        Chrisさん曰く、This will create a Snapshot disk then installっておっしゃてるんで、
        Snapshotで戻す?のがよろしいかもですね。。。
        Snapshot戻し方とかは調べないとわかりませんけど。。。
        Femi系のChrisさんのインストールパッケージとか昔に利用したことあるんですけど、
        Uninstallerとか実装されてなくて、kextをdeleteして、再起動したら、二度起動できなるくらい崩壊して笑ったことあります。スクリプトかなんか見たら、何やらFrameworkちょめちょめやらも色々インストールされてて、アンインストールなんてできないからヤメとけな仕様ぽかったです。www
        Keplerのももしかしたらそんな流れがまだつづいてるのかもしれないですね?。
        ChrisさんおGitubにはスナップショッこしらえるから後はよろしく、それ以上の言及ないので、わかる人はスナップショットの戻しの義をやりなさいってことかもですねぇ。。。

        >NVIDIA自体も2021年10月の最新ドライバでKeplerのサポートを終了したそうです。
        Femiだったかの?NVIDIAのWindowsドライバのサポート無慈悲切り捨てと同じタイミングでMacOSも切り捨てられたような記憶がありますね。。。なんかSyncしてるっぽいですね。

        1. なんかMotereyだとDiskUtilityからスナップショットが見えるっぽいですけど、
          kextだけ削除じゃなくって、Terminalからペシペシキーボード叩いてとかで?スナップショットを戻すとかGUIでDiskUtilityから戻すとかで、OSUpdateの時は毎回Keplerのドライバ群をインスコするような感じなんですかね?

          Disk Utility in macOS 12 Monterey Manages APFS Snapshots
          https://tidbits.com/2021/11/11/disk-utility-in-macos-12-monterey-manages-apfs-snapshots/

      2. beta 6まではサポートされていたらしいことを追記しておきました。有難うございます。

  3. まっくぷろ様の情報に基づいてSnapShotの削除に挑戦してみたのですが失敗しました
    リカバリーモードで起動してターミナルからmount -uw /Volumes/Monterey-DISK
    を実施後、diskutil apfs listsnapshots /Volumes/Monterey-DISKでuuidを確認
    diskutil apfs deletesnapshot /Volumes/Monterey-DISK -uuid
    を実行したのですが、Error: -69863: Insufficient privileges が表示され削除できませんでした

    アンインストールは素人には無理なようです。情報をありがとうございました。

    1. ども、お疲れさまです。

      >リカバリーモードで起動してターミナルからmount -uw /
      Montereyからだったか?Authenticated-rootができちゃって、Sealされてるからかなんかめんどくさくなりましたから、シスボへごにょごにょするのすら億劫になりますよね。
      私もそんなこんなで、Terminal叩くのをめんどくさいたちですしあんまし調べてないですけど、
      リカバリで起動してAuthenticated-rootをOFFてから、さらに通常起動してごにょごにょするみたいなパターン?があった気もします。InsanelyMacのMonterey BetaのスレッドとかでStepを解説してくれてる常連のオージーの方とかのを良く読まないと、Authenticated-root外して-uw /マウントしてkextを入れるって、決まりキンチョンな手順がいまいち理解できてないんですすよね。。。w

      ボムビッチさんのCCCは6.0.4?からMonterey対応だったと思うので、ChrisさんのパッケージでKepler使い続けるなら、CCCは6.0.4以降でFullバックアップ取ってっからKepler入れるっていう手で運用するつもりではいますね。。。Chirsさんは気が向けば?アンインストールなりスナップショットで戻す方法をGithubに書いてくれる可能性もあるかも?ただ、GefoceのFemi系以前のドライバパッケージのやつは、アンインストールなってすんな!みたいなことを書いてあった気もします。。。

返信を残す

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