[macOS General] ‎macOS Big Sur で不要なカーネル拡張(kext)を削除する方法

macOS Big Sur 11.1 へのアップグレードに伴い、不要なカーネル拡張(kext)を削除します。

カーネル拡張(kext)は廃止予定となっており、不要なファイルが残っていると場合によってはシステムが不安定になる恐れがありそうです。
現在利用している Mac は、OS アップグレードを繰り返しており、実害と思われる事象もあるので見直すことにしました。

> macOS 10.15 Catalinaはカーネル拡張(.kext)をフルサポートする最後のmacOSで、将来のmacOSではkextがロードされず、開発者は代わりにDriverKitを利用してデバイスドライバを開発できると発表し、
>
> [Apple、将来のmacOSでカーネル拡張(kext)を廃止しSystem Extensions/DriverKitへ移行するのに伴い、macOS 10.15.4 Catalinaでは非推奨のKPIがアプリで使用されるとユーザーに通知すると発表。 | AAPL Ch.](https://applech2.com/archives/20200207-apple-start-deprecated-macos-kext-in-macos-10154-catalina.html)

なお以下の環境で実施しています。

– MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)
– macOS 11.1

## 対象を調べる

カーネル拡張の削除については、こちらの記事を参考にします。

> KEXT(Kernel EXTension)は、文字通りカーネルを拡張するローダブルモジュールの一種。必要に応じてメモリーにロードされ、各種ハードウェアやファイルシステムにアクセスする機能を提供する。その多くはデバイスドライバーであり、アップルが開発したシステム標準装備のものから、周辺機器に添付されていたサードパーティー製まで、基本的に/System/Library/Extensionsディレクトリー以下へインストールされる。
>
> [ASCII.jp:不要なドライバーをスッキリ整理、KEXT関連コマンドを知る (1/2)](https://ascii.jp/elem/000/000/544/544198/)

まず `/System/Applications/Utilities/System Information.app`(システム情報.app)で確認を行います。
「ソフトウェア > 機能拡張」を選択。「取得元」でソートします。

以下の条件に当てはまるカーネル拡張が対象となりそうです。

– 「開発元」が Apple 以外。
– 「認証済み」ではない。
– 「読み込み済み」ではない。

“`prettyprinted
ArcMSR:

バージョン: 1.4.2
最終変更日: 2020/01/01 17:00
バンドルID: com.Areca.ArcMSR
認証済み: いいえ
読み込み済み: いいえ
情報ウインドウのテキスト: Areca RAID Driver 1.4.2
取得元: 確認済みの開発元
種類: Intel
アーキテクチャ: x86_64
64ビット(Intel): はい
場所: /System/Library/Extensions/ArcMSR.kext
Kextのバージョン: 1.4.2
読み込み可能: はい
依存関係: 適合
署名者: Developer ID Application: Areca Technology Corporation (34JN824YNC), Developer ID Certification Authority, Apple Root CA

DuetDisplay:

バージョン: 2.0.0
最終変更日: 2016/09/12 10:18
バンドルID: com.kairos.driver.DuetDisplay
認証済み: いいえ
読み込み済み: いいえ
情報ウインドウのテキスト: DuetDisplay
取得元: 確認済みの開発元
種類: Intel
アーキテクチャ: x86_64
64ビット(Intel): はい
場所: /Library/Extensions/DuetDisplay.kext
Kextのバージョン: 2
読み込み可能: はい
依存関係: 適合
署名者: Developer ID Application: Rahul Dewan (J6L96W8A86), Developer ID Certification Authority, Apple Root CA

intelhaxm:

バージョン: 6.2.1
最終変更日: 2017/08/21 17:02
バンドルID: com.intel.kext.intelhaxm
認証済み: いいえ
読み込み済み: いいえ
取得元: 確認済みの開発元
種類: Intel
アーキテクチャ: x86_64
64ビット(Intel): はい
場所: /Library/Extensions/intelhaxm.kext
Kextのバージョン: 6.2.1
読み込み可能: はい
依存関係: 適合
署名者: Developer ID Application: Intel Corporation Apps (Z3L495V9L4), Developer ID Certification Authority, Apple Root CA

WD1394_64_109HPDriver:

バージョン: 1.0.1
最終変更日: 2013/09/08 5:17
バンドルID: com.wdc.driver.1394.64.10.9
認証済み: いいえ
読み込み済み: いいえ
情報ウインドウのテキスト: 1.0.1 Copyright Western Digital Corp
取得元: 確認済みの開発元
種類: Intel
アーキテクチャ: x86_64
64ビット(Intel): はい
場所: /Library/Extensions/WD1394_64_109HPDriver.kext
Kextのバージョン: 1.0.1
読み込み可能: はい
依存関係: 適合
署名者: Developer ID Application: Western Digital Corporation Branded Products Group (WND4K977K3), Developer ID Certification Authority, Apple Root CA

WDUSB_64_109HPDriver:

バージョン: 1.0.1
最終変更日: 2013/09/08 5:17
バンドルID: com.wdc.driver.USB.64.10.9
認証済み: いいえ
読み込み済み: いいえ
情報ウインドウのテキスト: 1.0.1 © 2013 Western Digital Technologies, Inc. All rights reserved.
取得元: 確認済みの開発元
種類: Intel
アーキテクチャ: x86_64
64ビット(Intel): はい
場所: /Library/Extensions/WDUSB_64_109HPDriver.kext
Kextのバージョン: 1.0.1
読み込み可能: はい
依存関係: 未完了
依存エラー:
Dependency Resolution Failures:
No kexts found for these libraries: com.apple.iokit.IOUSBMassStorageClass
署名者: Developer ID Application: Western Digital Corporation Branded Products Group (WND4K977K3), Developer ID Certification Authority, Apple Root CA

JMicronATA:

バージョン: 1.1.6
最終変更日: 2012/05/23 0:19
バンドルID: com.jmicron.JMicronATA
認証済み: 不明
読み込み済み: いいえ
情報ウインドウのテキスト: 1.1.6, Copyright JMicron Technology Corporation
取得元: 未署名
種類: Intel
アーキテクチャ: x86_64
64ビット(Intel): はい
場所: /Library/Extensions/JMicronATA.kext
Kextのバージョン: 1.1.6
読み込み可能: いいえ
署名検証エラー: 未署名
依存関係: 適合
署名者: 未署名
“`

## ファイルを移動する

対象を調査し、不要なものは該当ディレクトリから移動する。

### ArcMSR

最終変更日が新しく、クリーンインストールで存在しているとの情報があったため移動しない。

> Catalinaをクリーンインストールした場合、/Library/Extensions以下は
>
> [Catalinaにアップグレード後の「ログイン画面常時フリーズ」「内臓カメラ認識しない」問題 – Qiita](https://qiita.com/sakymark/items/5221e55fee9f968d337d)

### DuetDisplay

旧バージョンのカーネル拡張。
現行バージョンのアンインストーラーで削除されなかったので移動させた。
ちなみに Rahul Dewan は開発者の名前で、「システム環境設定 > セキュリティとプライバシー」に表示されることがある。

> [Duet Display](https://ja.duetdisplay.com/)

“`prettyprinted
% sudo mv /Library/Extensions/DuetDisplay.kext /Library/Extensions/DuetDisplay.bkup
“`

### intelhaxm

Android Studio でエミュレーターを動かした際にインストールしたものと記憶。
手順にあるアンインストーラーで削除した。

> [Android Emulator のハードウェア アクセラレーションを設定する  |  Android デベロッパー](https://developer.android.com/studio/run/emulator-acceleration?hl=ja#vm-mac)
> [Installation Instructions on macOS · intel/haxm Wiki · GitHub](https://github.com/intel/haxm/wiki/Installation-Instructions-on-macOS#removing-intel-haxm)

“`prettyprinted
% sudo /Library/Extensions/intelhaxm.kext/Contents/Resources/uninstall.sh
“`

### WD1394_64_109HPDriver / WDUSB_64_109HPDriver

旧ドライバの残骸と思われる。
現行ドライバのインストールにも問題が起きているので移動した。

> [“Attach a Supported Drive” Message in WD Software – WD External Drives / External Drives for Mac – WD Community](https://community.wd.com/t/attach-a-supported-drive-message-in-wd-software/232301)

“`prettyprinted
% sudo mv /Library/Extensions/WDUSB_64_109HPDriver.kext /Library/Extensions/WDUSB_64_109HPDriver.bkup
% sudo mv /Library/Extensions/WD1394_64_109HPDriver.kext /Library/Extensions/WD1394_64_109HPDriver.bkup
“`

### JMicronATA

PC には ATA/SATA デバイスは接続されて居らず、未署名かつ読み込みも出来ないため不要と判断し移動した。

> [macos – Is JMicronATA.kext part of Yosemite? And others – Ask Different](https://apple.stackexchange.com/questions/176162/is-jmicronata-kext-part-of-yosemite-and-others)

“`prettyprinted
% sudo mv /Library/Extensions/JMicronATA.kext /Library/Extensions/JMicronATA.bkup
“`

再起動を行い作業を完了。