Macos 我的USB功能驱动程序没有';如果在启动时连接了加密狗,则无法加载

Macos 我的USB功能驱动程序没有';如果在启动时连接了加密狗,则无法加载,macos,usb,driver,iokit,xnu,Macos,Usb,Driver,Iokit,Xnu,就在今天,这是新的。它已经好一阵子了 正常运行时,驱动程序将与USB设备的 然后将加载并运行产品和供应商ID 这是一个USB视频适配器,所以在正常操作下,可以看到模糊的图像 直到登录桌面的图像,然后您会看到第二个屏幕 可以正确使用显示首选项 但就在今天,如果加密狗在启动时连接,驱动程序就不会连接 加载,USB连接的显示器不显示图像 如果我拔掉加密狗的插头,然后再插回去,它就可以工作了 如果在引导期间未连接加密狗,则在引导后插入 到达桌面,它就工作了 如果在引导过程中连接了加密狗,我以后会使用ke

就在今天,这是新的。它已经好一阵子了

正常运行时,驱动程序将与USB设备的 然后将加载并运行产品和供应商ID

这是一个USB视频适配器,所以在正常操作下,可以看到模糊的图像 直到登录桌面的图像,然后您会看到第二个屏幕 可以正确使用显示首选项

但就在今天,如果加密狗在启动时连接,驱动程序就不会连接 加载,USB连接的显示器不显示图像

如果我拔掉加密狗的插头,然后再插回去,它就可以工作了

如果在引导期间未连接加密狗,则在引导后插入 到达桌面,它就工作了

如果在引导过程中连接了加密狗,我以后会使用kextutil 加载它,kextutil报告成功,但它不加载

我推测这是一个匹配的问题,但不明白是什么 可能出了问题

它是一个签名驱动程序,现在位于
/Library/Extensions
;以前它在
/System/Library/Extensions
中未签名,禁用了系统完整性保护


产品中还有另外两个驱动程序不是USB功能驱动程序。它们装载得很好。这三个驱动程序共同创建一个虚拟帧缓冲区,然后显示它。

这可能是由一系列不同的事情造成的。一些建议:

  • 您是否验证了在您的驱动程序类上没有调用
    ::probe()
    ::start()
    ?如果它们返回
    NULL
    /
    false
    ,则会导致上述行为
  • 当您的驱动程序无法加载冷插拔设备时,IORegistry中会出现什么情况?匹配的nub是否有任何客户端对象
  • 您是否排除了kext缓存问题?(例如,当操作系统重新生成kext缓存和预链接内核时,是否存在任何错误?)

  • 发布您的
    Info.plist
    可能也会有所帮助-问题可能就在那里。

    谢谢。我在家里做别的事情,我的狗在工作。我明天会看看你的建议。