Question

I have implemented a Device Driver Application based on this link http://developer.apple.com/library/mac/#documentation/Darwin/Conceptual/KEXTConcept/KEXTConceptIOKit/iokit_tutorial.html

If I try to load Device on Terminal($ sudo cp -R MyDriver.kext /tmp) I get the error:

No kernel file specified; using running kernel for linking.
MyDriver.kext is invalid; can't resolve dependencies.
MyDriver.kext is invalid; can't resolve dependencies.
MyDriver.kext is invalid; can't resolve dependencies.
MyDriver.kext has problems:
Validation Failures: 
    Info dictionary property value is of illegal type: 
        IOKitPersonalities->MyDriver->IOKitDebug

Authentication Failures:             File owner/permissions are incorrect (must be root:wheel, nonwritable by group/other): 
        /Users/Rasheed/Library/Developer/Xcode/DerivedData/MyDriver-gdmnlqdybpdwzyanoeludcalqwba/Build/Products/Debug/MyDriver.kext
        /Users/Rasheed/Library/Developer/Xcode/DerivedData/MyDriver-gdmnlqdybpdwzyanoeludcalqwba/Build/Products/Debug/MyDriver.kext/Contents
        /Users/Rasheed/Library/Developer/Xcode/DerivedData/MyDriver-gdmnlqdybpdwzyanoeludcalqwba/Build/Products/Debug/MyDriver.kext/Contents/Info.plist
        /Users/Rasheed/Library/Developer/Xcode/DerivedData/MyDriver-gdmnlqdybpdwzyanoeludcalqwba/Build/Products/Debug/MyDriver.kext/Contents/MacOS
        /Users/Rasheed/Library/Developer/Xcode/DerivedData/MyDriver-gdmnlqdybpdwzyanoeludcalqwba/Build/Products/Debug/MyDriver.kext/Contents/MacOS/MyDriver
        /Users/Rasheed/Library/Developer/Xcode/DerivedData/MyDriver-gdmnlqdybpdwzyanoeludcalqwba/Build/Products/Debug/MyDriver.kext/Contents/Resources
        /Users/Rasheed/Library/Developer/Xcode/DerivedData/MyDriver-gdmnlqdybpdwzyanoeludcalqwba/Build/Products/Debug/MyDriver.kext/Contents/Resources/en.lproj
        /Users/Rasheed/Library/Developer/Xcode/DerivedData/MyDriver-gdmnlqdybpdwzyanoeludcalqwba/Build/Products/Debug/MyDriver.kext/Contents/Resources/en.lproj/InfoPlist.strings        
Warnings: 
    Personality has no CFBundleIdentifier; the kext's identifier will be inserted when sending to the IOCatalogue: 
        MyDriver    

My Doubts are: 1) What is No Kernel file specified Error(what have I missed on my application)? 2) What is MyDriver.kext is invalid; can't resolve dependencies? 3) My Bundle Identifier is:
CFBundleIdentifier com.MyCompany.driver.${PRODUCT_NAME:maanu}

          what is Info dictionary property value is of illegal type: 

          IOKitPersonalities->MyDriver->IOKitDebug?

          (MyDriver My application Name.)

Thanks so much for your replies.

                Muhammed Musthafa
Était-ce utile?

La solution

First kernel dependencies.
This is specified in the info.plist of your driver. Here the path to info.plist seems to be /Users/Rasheed/Library/Developer/Xcode/DerivedData/MyDriver-gdmnlqdybpdwzyanoeludcalqwba/Build/Products/Debug/MyDriver.kext/Contents/Info.plist

The following is the kernel dependencies of AppleHIDKeyboard.kext in the info.plist
(key)OSBundleLibraries<(/key)
(dict)
(key)com.apple.iokit.IOHIDFamily(/key)
(string)1.4(/string)
(key)com.apple.kpi.iokit(/key)
(string)10.0.0d2(/string)
(key)com.apple.kpi.libkern(/key)
(string)10.0.0d2(/string)
(/dict)

Second Authentication Failures:
U can solve this issue by the following procedure to deployment your driver.
1.place MyDriver.kext in your Desktop.
2.open the Terminal app and type commands list below.
3.sudo chown -R root:wheel ~/Desktop/MyDriver.kext
4.sudo chmod -R 755 ~/Desktop/MyDriver.kext
5.mv -f ~/Desktop/MyDriver.kext /System/Library/Extensions/
6.touch /System/Library/Extenstions/

Third CFBundleIdentifier warning.
I am not sure what type of issue here, this warning may make your driver unexecutable.
However, u should check your driver's info.plist, confirm whether your driver has the CFBundleIdentifier key and the associate value.
Besides, u should also check the driver's project settings.

Hope this is helpful to u, have a good day!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top