1

Currently we are porting kernel usb serial drivers to user serial drivers(Dext) as per apple WWDC19 announcement, dext ported and able to load when target device connected to MAC OS running catalina (15.4), but dext driver unable to create /dev/tty entries for application to communicate. following are the entitlements and suspected plist entries dext driver using. kindly help me why /dev entry not creating?

Entitlement Details:

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

plist details:

IOClass = IOUserService
CFBundleIdentifierKernel = com.apple.iokit.IOUSBFamily
david
  • 413
  • 5
  • 20
  • I can't really make sense of this question, it's not clear to me what you are asking. Can you please update your question to explain in more detail: 1. exactly what result you are expecting (what your kext does?) 2. what you are doing in your dext to try to accomplish this (with code, presumably) 3. what actual result you are getting? – pmdj Jun 04 '20 at 08:29
  • @pmdj Actually its kext usb serial driver we are porting dext usb serial , /dev directory cu.* and tty.* not able to create after dext is loading. Now its working we have changed IOClass = IOUserSerial and CFBundleIdentifierKernel = com.apple.driver.driverkit.serial in plist of dext driver. Now for serial dext driver IOSerialBSDClient is created. And also your suggested change in following link for transport.usb https://stackoverflow.com/questions/61634176/how-to-set-com-apple-developer-driverkit-transport-usb-entitlement – david Jun 04 '20 at 10:05
  • @pmdj previously IOClass = IOUserService I have given. And also CFBundleIdentifierKernel i didnt add.. – david Jun 04 '20 at 10:07
  • 1
    So is your problem solved now? If so, please either clean up the question to make it clear what the problem was and then supply the solution you found as an answer. Alternatively, you could just delete the question I suppose. – pmdj Jun 04 '20 at 10:08
  • may be i will reframe it may help others – david Jun 04 '20 at 10:13

1 Answers1

1

driverkit framework able to create IOSerialBSDClient for our usb serial dext ported. with following changes in plist and entitlement.

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

Now under /dev directory cu.usbserial* and tty.usbserial* created for communicating.

And added iproduct and ivendor in transport usb entitlement for malformed errors. How to set com.apple.developer.driverkit.transport.usb entitlement?

david
  • 413
  • 5
  • 20