4

このリンクに基づいてデバイスドライバーアプリケーションを実装しましたhttp://developer.apple.com/library/mac/#documentation/Darwin/Conceptual/KEXTConcept/KEXTConceptIOKit/iokit_tutorial.html

ターミナル($ sudo cp -R MyDriver.kext / tmp)にデバイスを読み込もうとすると、次のエラーが発生します。

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    

私の疑問は次のとおりです:1)カーネルファイルが指定されていないエラー(アプリケーションで何を見逃したか)とは何ですか?2)MyDriver.kextとは何ですか。依存関係を解決できませんか?3)私のバンドル識別子は次のとおりです:
CFBundleIdentifiercom.MyCompany.driver。${PRODUCT_NAME:maanu}

          what is Info dictionary property value is of illegal type: 

          IOKitPersonalities->MyDriver->IOKitDebug?

          (MyDriver My application Name.)

返信ありがとうございます。

                Muhammed Musthafa
4

1 に答える 1

3

最初のカーネルの依存関係。
これは、ドライバーのinfo.plistで指定されています。ここで、info.plistへのパスは /Users/Rasheed/Library/Developer/Xcode/DerivedData/MyDriver-gdmnlqdybpdwzyanoeludcalqwba/Build/Products/Debug/MyDriver.kext/Contents/Info.plistのようです。

以下は、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 )。

2回目の認証の失敗:
Uは、次の手順でドライバーを展開することにより、この問題を解決できます。
1.MyDriver.kextをデスクトップに配置します。
2.ターミナルアプリを開き、以下のコマンドリストを入力します。
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 。/System/ Library /Extensions/にタッチします

3番目のCFBundleIdentifier警告。
ここでどのタイプの問題が発生するかわかりません。この警告により、ドライバーが実行できなくなる可能性があります。
ただし、ドライバーのinfo.plistを確認し、ドライバーにCFBundleIdentifierキーと関連する値があるかどうかを確認する必要があります。
また、ドライバーのプロジェクト設定も確認する必要があります。

これがあなたに役立つことを願っています、良い一日を!

于 2011-10-19T18:23:18.543 に答える