Вопрос

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
Это было полезно?

Решение

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!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top