【问题标题】:Porting KEXT to DEXT unable to create ACM Serial TTY Entry将 KEXT 移植到 DEXT 无法创建 ACM 串行 TTY 条目
【发布时间】:2020-09-22 23:44:06
【问题描述】:

目前我们正在根据苹果 WWDC19 公告将内核 USB 串行驱动程序移植到用户串行驱动程序(Dext),当目标设备连接到运行 catalina(15.4)的 MAC OS 时,dext 已移植并能够加载,但 dext 驱动程序无法创建 /应用程序进行通信的 dev/tty 条目。以下是 dext 驱动程序使用的权利和可疑的 plist 条目。请帮助我为什么 /dev 条目没有创建?

权利详情:

com.apple.developer.driverkit
com.apple.developer.driverkit.family.networking
com.apple.developer.driverkit.family.serial
com.apple.developer.driverkit.transport.usb

列表详情:

IOClass = IOUserService
CFBundleIdentifierKernel = com.apple.iokit.IOUSBFamily

【问题讨论】:

  • 我无法真正理解这个问题,我不清楚你在问什么。您能否更新您的问题以更详细地解释:1.您期望的结果是什么(您的 kext 做了什么?) 2.您在 dext 中正在做什么以尝试完成此操作(大概使用代码)3.什么你得到的实际结果是什么?
  • @pmdj 实际上它的 kext usb 串行驱动程序我们正在移植 dext usb 串行,/dev 目录 cu.* 和 tty.* 在 dext 加载后无法创建。现在它的工作我们已经在 dext 驱动程序的 plist 中更改了 IOClass = IOUserSerial 和 CFBundleIdentifierKernel = com.apple.driver.driverkit.serial 。现在为串行 dext 驱动程序 IOSerialBSDClient 创建。还有您建议更改以下链接的 transport.usb stackoverflow.com/questions/61634176/…
  • @pmdj 之前 IOClass = IOUserService 我已经给出了。还有我没有添加的 CFBundleIdentifierKernel ..
  • 那么您的问题现在解决了吗?如果是这样,请清理问题以明确问题所在,然后提供您找到的解决方案作为答案。或者,您可以删除我认为的问题。
  • 也许我会重新构建它可能会帮助其他人

标签: macos iokit usbserial kernel-extension driverkit


【解决方案1】:

driverkit 框架能够为我们的 USB 串行 dext 端口创建 IOSerialBSDClient。随着 plist 和权利的以下变化。

IOClass = IOUserSerial
CFBundleIdentifierKernel = com.apple.driver.driverkit.serial

现在在 /dev 目录下创建用于通信的 cu.usbserial* 和 tty.usbserial*。

并在传输 USB 授权中添加了 iproduct 和 ivendor 以解决格式错误的错误。 How to set com.apple.developer.driverkit.transport.usb entitlement?

【讨论】:

    猜你喜欢
    • 2020-11-22
    • 2021-09-15
    • 2020-10-08
    • 2020-08-21
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    相关资源
    最近更新 更多