我想知道是否有人可以帮助我解决这个问题。
我的 MacBook(Snow Leopard)上设置了一些 VPN,我知道它们可以正常工作,但是今天当我尝试使用它们时,在所有情况下都出现以下错误:
找不到 PPP 内核扩展
我已经有一段时间不需要使用任何 VPN 了,但它们过去一直有效,而且我想不出我在这台机器上做了什么改变。
我查看了 System/Library/Extensions,其中有 PPP.kext,这是我认为它要查找的文件吗?
任何帮助将不胜感激。
答案1
一些值得尝试的想法...
查看
/var/log/ppp.log
、/var/log/kernel.log
和/var/log/system.log
以寻找线索。特别注意上次启动时以及上次尝试启动 VPN 连接时的消息。在“系统偏好设置”>“网络”>“VPN”>“高级”>“选项”>“高级”>“使用详细日志记录”中启用 VPN 接口的详细调试,然后尝试启动新的 PPP 连接。然后
/var/log/ppp.log
再次检查。这也可能是修复权限确实有用的少数情况之一;出于安全原因,权限设置错误的 kext 不会被加载。因此,您可能需要运行磁盘实用程序并修复启动卷的权限,然后可能重新启动。
Mac OS X 会缓存内核扩展以加快启动时间。您可以通过更改 Extensions 文件夹的修改时间来触发 Mac OS X 重建其 kext 缓存:
sudo touch /系统/库/扩展
...然后重新启动。
- 我还会查看 的内容
PPP.kext
,并将其与另一台安装了完全相同版本的 Mac OS X 的机器上的已知良好副本进行比较。 A.kext
实际上是一个捆绑目录,与 非常相似.app
。真正的二进制文件位于 中Contents/MacOS/
。最好通过比较 PPP.kext 二进制文件的 MD5 校验和与完全相同版本的 Mac OS X 上的已知工作副本的 MD5 校验和来检查 PPP.kext 二进制文件是否损坏。
值得一提的是,我在这台机器上运行的是 Mac OS X v10.6.3 (10D573),这是我的 PPP kext 内部二进制文件的 MD5:
$ md5 /System/Library/Extensions/PPP.kext/Contents/MacOS/PPP
MD5 (/System/Library/Extensions/PPP.kext/Contents/MacOS/PPP) = fae84adab5b1c5e63b34541f45735ae8
如果给定的 kext 加载失败,您可以通过使用 kextload 手动加载并指定 -v 选项来获取更详细的调试信息:
sudo kextload -v /System/Library/Extensions/PPP.kext
答案2
重启后,在 OS X El Capitan (10.11) 上也遇到了同样的问题。除了上面提到的错误和其他人谈论的 PPP 在内核中不可用等之外,控制台中没有看到任何与之相关的明显内容。
尝试按照@Spiff 的回答中提到的那样执行修复磁盘权限,但这在 OS X 10.11 中不再是一种选择,因此我只是再次重新启动了系统,无论出于什么原因,问题都消失了。