On Mac Big Sur beta7, I have disabled SIP to allow my kernel extension to load. But it didn't work, here are my steps:
disable SIP.
copy my MyDriverxxx.kext to /Library/Extensions/.
sudo touch /Library/DriverExtensions. At this time, the system preference prompt does not appear.
Manually load the driver.
sudo kextutil /Library/Extensions/MyDriverxxx.kext
or
sudo kextload /Library/Extensions/MyDriverxxx.kext
The following error occurred:
kextutil /Library/Extensions/MyDriverxxx.kext
Executing: /usr/bin/kmutil load --bundle-path /Library/Extensions/MyDriverxxx.kext
Error: Error Domain=KMErrorDomain Code=1 "Error occurred while building cache: in '/Library/Application Support/Websense Endpoint/DLP/WebsenseEndpointDLP.kext/Contents/PlugIns/WebsenseEndpointProcessKpi.kext/WebsenseEndpointProcessKpi' missing TEXT segment" UserInfo={NSLocalizedDescription=Error occurred while building cache: in '/Library/Application Support/Websense Endpoint/DLP/WebsenseEndpointDLP.kext/Contents/PlugIns/WebsenseEndpointProcessKpi.kext/WebsenseEndpointProcessKpi' missing TEXT segment}
Post
Replies
Boosts
Views
Activity
How to set the power state of the usb device based on DriverKit?
I am developing a USB NCM network card driver based on DriverKit, and now I want to modify the power state of the device in response to the PC power change. I saw that DriverKit has two functions: SetPowerState and ChangePowerState.
I overried them separately. However, it seems that "ChangePowerState" can only be executed through display calls. The system will freeze and restart after 20s, regardless of whether SetPowerState is successful or not.
Error log:
MyDriverClass: setPower State(Oxffffff80507dba4
0: OXffffff7f9f1b218a, 1-> 4)timed out after 231852
ms"@/ BuildRoot/Library/Caches/com. apple xbs/Sources/
xnu/xnu-61531126/iokit/Kernel/IOService PM. cpp: 5382
I'm developing a modem driver based on DriverKit framework for a USB Ethernet adapater.
The current situation is that I can open the modem port in the /dev/ directory and send/receive data normally, but can't create Modem in the network preferences.
I found IOModemSerialStreamSync can be used to create modem in IOKit, but now how to create modem using DriverKit.
When testing my dext driver, the "unsatisfied entitlement:com.developer.driverkit.transport.usb"error is in console log. I. My request entitlements to use DriverKit was approved. And I have beed signed and notarized my dext driver.
Here are my steps:
1. “USB Transport-VendorID” capability has been enabled when creating my dext’s App ID.
2. Generate the new provisioning profile for my App ID and import it into Xcode. However I found "com.developer.driverkit.transport.usb" is not included listed on "additional entitlements" item.
3. Edit my project’s entitlements file contain the following for USB Transport:
<key>com.apple.developer.driverkit.transport.usb</key>
<array>
<dict>
<key>idProduct</key>
<integer>MyPid</integer>
<key>idVendor</key>
<integer>MyVid</integer>
</dict>
<array>
4. Sign and notarized.
5. Test my dext driver, the console log shows "unsatisfied entitlement:com.developer.driverkit.transport.usb"error.
Is it a problem with my steps or entitlements.
Can I add multiple DriverKit Extensions target to my macOS app? How to use OSSystemExtensionRequest to achieve it.
As I understand, for Network packet transmission, IOKit use the following methods: 1. IOOutputQueue calls the outputPacket() method of network driver to send packets to the device. 2. IOGateOutputQueue dequeue packets on network driver's workloop (send packets to the network driver). And now, how does it implement using the DriverKit/NetworkingDriverKit framework? I have seen Networking has 4 packet queues: IOUserNetworkingRxSubmissionQueue, IOUserNetworkingRxCompletionQueue, IOUserNetworkingTxSubmissionQueue, IOUserNetworkingTxCompletionQueue; How to use them with IODispatchQueue? or IODataQueueDispatchSource?
have submitted Driverkit Entilement many days ago, but just get the following response:Follow-up: 730774366Thank you for requesting the DriverKit framework capability. You will be contacted once your request has been evaluated.Regards,Apple Developer RelationsHow can I see the progress of Follow-up: 730774366?
I have submitted Driverkit Entilement many days ago, but just get the following response:Follow-up: 730774366Thank you for requesting the DriverKit framework capability. You will be contacted once your request has been evaluated.Regards,Apple Developer RelationsHow can I see the progress of Follow-up: 730774366?
WWDC 2019 said "Deprecating Kernel Extensions---In the Future", what does it mean? Is my USB device loaded with kext currently will be unavailable on macOS 10.16? Or when kext and dext both exist ,the kext will not be loaded?
Is any sample code for USB driverkit?
Can the old IOKit driver be transformed into a driverkit driver?