Search code examples
macosiokitusbserialkernel-extensiondriverkit

Porting KEXT to DEXT unable to create ACM Serial TTY Entry


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

Solution

  • 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?