Catalina と不具合の Mojave 用 kext を使えるようにしてみる

macOS Mojave のため構築された一部の Kext ドライバー(カーネル機能拡張ドライバー)は古い KPI で構築され、macOS Catalina とそれ以降の macOS と互換性の問題が生じてしまう:Kext を(kextload 経由)システムに再登録不能。特に「移行アシスタント」で macOS をバックアップから回復・あるいは新しい mac パソコンに移行するたびに、Kext の再登録が必要とされ、故に上記の互換性問題が生じてしまうことになる。

臨時対応方法

支障のある Kext がそれぞれの開発元に(Catalina 向けの)更新を行われるまで、根本的な解決策は有りませんが、パソコンずつ設定して使えることができます。

【ステップ1】Kext のそれぞれのチーム ID をメモしておく

Mac のシステム情報について』により:

システム情報を直接開くには、「option」キーを押しながら Apple メニュー  >「システム情報」の順に選択します。

あるいは Spotlight で System Information.app を実行。

その後、「システム情報」のウィンドウに「ソフトウェア」→「機能拡張」の画面を見て、作動不能な Kext の情報を見て、下記のような項目に注目して、「チーム ID」をメモしておくこと:

Developer ID Application: 開発元の名前 (チーム ID), Developer ID Certification Authority, Apple Root CA

そして、「システム情報」のウィンドウに「ソフトウェア」→「使用停止されたソフトウェア」の画面を見て、ここでのあらゆるすべての項目のタイトルの冒頭には「チーム ID」が記されているから、メモしておくこと。

(ここまでのメモに重複された「チーム ID」は後で一回だけ使って十分。)

【ステップ2】macOS 復元モードでパソコンを再起動

macOS 復元について』によって、ステップ4まで行ってください。とりあえず、ユーティリティウインドウが表示されたまで。

その後、メニューバーの「ユーティリティ」メニューで、ターミナルを起動して、下記のコマンドを実行すること。

1
spctl kext-consent add 「チーム ID」

例えば Matt Ingalls 氏に署名とアップル公証された Soundflower の Kext を使いたい場合、下記のターミナル指令を実行すると、このチーム ID に関する全ての Kext は使えるようになります(Apple に個別ブロックされた Kext は例外):

1
spctl kext-consent add 3G47DU9NXM

複数の「チーム ID」をメモした場合、一つずつを使って上記のターミナル指令を個別実行してください。

全部実行完了したあと、普通のようにパソコンを再起動すること。

【ステップ3】Kext を分別登録

普通のように macOS にログインしたあとの話。

【注意】上記の手順を実行しなければ、利用者(ユーザー)側だけでブロックされた Kext を使うのはほぼ不可能です。上記の手順を実行完了すると、すぐ使えることでなく、「利用者(ユーザー)側でだけでブロックされた Kext を使うことができる」ことです。面倒くさいと思えば、別の方法もあります:『Mac で NVRAM または PRAM をリセットする』に記された手順で NVRAM をリセットして済むことです。

既にシステムにインストールされた Kext ファイルは下記のターミナル指令で使えるようになるはず(例えば Soundflower):

1
sudo kextload /Library/Extension/Soundflower.kext

あるいは Kext を再インストールしてみること。
そのときに、『Macの「セキュリティとプライバシー」の「一般」環境設定を変更する』に記された「ブロックされたシステムソフトウェア」の部分の説明によって、Kext を個別「使えるように設定する」ことです。

参考した資料

macOS High Sierra のカーネル機能拡張の変更点について準備を進める』の「MDM を使わない場合の User Approved Kernel Extension Loading」その部分。

$ EOF.

コメント