Reputation: 453
i am new kernel programming.i have been trying to load this driver program for 3 days.
i used so many commands for load this kext file.but every time the problem is
terminal.please any one help me .
ensiss-Mac-mini:~ ensis$ sudo su
sh-3.2# chown -R root:wheel /System/Library/Extensions/Driver.kext
sh-3.2# kextutil -n -t /System/Library/Extensions/Driver.kext No kernel file specified;
using running kernel for linking.
/System/Library/Extensions/Driver.kext is invalid; can't resolve dependencies.
/System/Library/Extensions/Driver.kext is invalid; can't resolve dependencies.
/System/Library/Extensions/Driver.kext is invalid; can't resolve dependencies.
Diagnostics for /System/Library/Extensions/Driver.kext:
Validation Failures:
Info dictionary missing required property/value:
IOKitPersonalities.Driver.IOClass
Warnings:
Personality has no CFBundleIdentifier; the kext's identifier will be inserted when
sending to the IOCatalogue:
Driver
how to resolve the above program
Update: Info.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "apple.com/DTDs/PropertyList-1.0.dtd">;
<plist version="1.0">
<dict>
<key>Driver</key>
<dict>
<key>CFBundleIdentifier </key>
<string>com.Driver.${PRODUCT_NAME:rfc1034identifier}</string>
<key>IOClass </key>
<string>com_osxkernel_driver_Driver</string>
<key>IOMatchCategory </key>
<string>com_osxkernel_driver_Driver</string>
<key>IOProviderClass</key>
<string>IOResources</string>
<key>IOResourceMatch </key>
<string>IOKit</string>
</dict>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "apple.com/DTDs/PropertyList-1.0.dtd">;
<plist version="1.0">
<dict>
<key>com.apple.kpi.iokit </key>
<string>11.3.0</string>
<key>com.apple.kpi.libkern </key>
<string>11.3.0</string>
</dict>
</plist>
Upvotes: 0
Views: 935
Reputation: 23428
The clue is here:
"Info dictionary missing required property/value: IOKitPersonalities.Driver.IOClass"
This means your Info.plist is incorrect as your driver's personality description is missing a class specification.
Have you worked through Apple's Creating a Device Driver with Xcode tutorial? The section Edit the Information Property List covers the minimum you need to know about this. The documentation on Driver and Device Matching goes into more detail.
Update:
Your info.plist has completely the wrong format. Take a look at this screenshot from the tutorial I linked above for the required hierarchy. The XCode project template for the I/O Kit Driver generates a sensible starting point for an info.plist - don't delete what it gives you, just extend it.
I strongly suggest you thoroughly read the documentation from Apple, some of their sample code, and get the recently released book by Halvorsen along with its sample code (source code/downloads tab). (disclosure: I was one of the reviewers of the book; I do not receive royalties or any other incentive for recommending it - it's the only up-to-date book on the subject)
Kernel programming is anything but easy, so it's important you understand what's going on.
Upvotes: 1