Драйвер устройства, созданный с помощью Xcode, не загружается

Я реализовал приложение драйвера устройства на основе этой ссылки 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) Мой идентификатор пакета:
CFBundleIdentifier com.MyCompany.driver.${PRODUCT_NAME:maanu}

          what is Info dictionary property value is of illegal type: 

          IOKitPersonalities->MyDriver->IOKitDebug?

          (MyDriver My application Name.)

Большое спасибо за ваши ответы.

                Muhammed Musthafa

person Musthafa P P    schedule 17.10.2011    source источник


Ответы (1)


Первые зависимости ядра.
Это указано в info.plist вашего драйвера. Здесь путь к info.plist выглядит следующим образом: /Users/Rasheed/Library/Developer/Xcode/DerivedData/MyDriver-gdmnlqdybpdwzyanoeludcalqwba/Build/Products/Debug/MyDriver.kext/Contents/Info.plist

Ниже приведены зависимости ядра AppleHIDKeyboard.kext в файле 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 )

Вторая ошибка аутентификации.
Вы можете решить эту проблему, выполнив следующую процедуру развертывания драйвера.
1. Поместите MyDriver.kext на рабочий стол.
2. откройте приложение Terminal и введите приведенный ниже список команд.
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.нажмите /Система/Библиотека/Расширения/

Третье предупреждение CFBundleIdentifier.
Я не уверен, что это за проблема, это предупреждение может сделать ваш драйвер неисполняемым.
Однако вам следует проверить info.plist вашего драйвера. подтвердите, есть ли у вашего драйвера ключ CFBundleIdentifier и ассоциированное значение.
Кроме того, вам также следует проверить настройки проекта драйвера.

Надеюсь, это будет полезно для вас, хорошего дня!

person Ivan    schedule 19.10.2011
comment
если вы не возражаете, могу ли я задать одно сомнение. Мой USB-это HID-устройство. Как вы заметили, я сделал все. ЕСЛИ я проверил на терминале Newtok:Desktop Rasheed$ kextutil -n -t SampleKextDriver.kext Не указан файл ядра; использование работающего ядра для компоновки. SampleKextDriver.kext кажется загружаемым (включая привязку для библиотек на диске). Я получил эту ошибку. ‹key›OSBundleLibraries‹/key›‹dict›key›com.apple.iokit.IOHIDFamily‹/key›‹string›1.4‹/string›‹key›com.apple.kpi.iokit‹/key›‹string›10.7 ‹/string›‹key›com.apple.kpi.libkern‹/key›‹string›10.7‹/string›‹/dict› Что не так - person Musthafa P P; 20.10.2011