【发布时间】:2026-02-07 19:00:01
【问题描述】:
我正在使用 OS X 中的安装程序来为 USB 设备安装 IOKit 驱动程序,并且我正在尝试让它不需要在最后重新启动。安装程序正确安装驱动程序并重建kext缓存,运行后,如果我拔下USB设备并重新插入,它会正确加载新驱动程序,一切正常。
但是,我不想要求用户在物理上拔下设备以加载新驱动程序。必须有一种方法可以让 OS X 以编程方式加载新驱动程序 - 实际上模拟设备被拔出并重新插入,或类似的东西。我该怎么做呢?到目前为止,谷歌搜索数小时没有任何结果,因此我们将不胜感激!
【问题讨论】:
-
我会尝试查看弹出 USB 大容量存储设备时运行的代码 — 我不确定是否存在相应的 USB 流量,或者它是否只是告诉 USB 子系统忽略端口直到物理拔掉。在前一种情况下(“USB 弹出”消息),除了电源循环或 USB 重置之外,可能没有简单的“取消弹出”方法,这两种方法都可能对其他 USB 设备造成问题。但希望这是开始寻找的地方。
-
我读到了一个名为
pmount的东西,它可以卸载更多任意 USB 设备,但我不知道这是否包括您的设备。唯一的大缺点是它默认不附带 OS X。 -
我很确定您不能直接从用户空间执行此操作。但是,在内核中,您可以尝试在占用设备的现有客户端上调用 terminate()。
标签: macos installation usb driver iokit