macOS删除无用的MSMVideoDevice.kext内核扩展

问题

最近经常遇到一些莫名其妙的机器崩溃重启问题,还有就是外接显示器有时候会绿屏或者不识别。另外就是某端时间之后,总是发现WindowServer进程CPU占用总是偏高,平时基本在30%~40%,一旦有任务会拉高到更高。这究竟是为什么呢?

分析

通过查询机器崩溃的报告,得到一个结论,就是需要检查一下内核扩展是否存在可能的问题。那如何查看已经加载的内核扩展呢? 可以通过这款工具kextviewr来查看。安装这款工具可以使用brew

然后可以运行这款工具,取消Show OS kexts的勾选,就能看到安装的第三方内核扩展了。

这里发现了MSMVideoDevice.kextMSMVideoBuffer.kext两个扩展。经过查找,是之前安装iDisplay后来删除后遗留的。另外还有一个Zoom的音频扩展,也一并处理掉。运行以下命令

然后重启即可。重启后观察到WindowServer这个进程的CPU占用在平时降低到5%甚至以下了。看来这和无用的iDisplay内核扩展确实有关系。

后记

以后删除macOS的应用的时候还是要注意,不仅仅是把app拖到垃圾桶就行了。如果有安装其他东西,特别是内核扩展,一定要记得删除。不然性能会受到影响。