какие команды можно использовать для загрузки драйвера терминала ввода / вывода в терминал? - PullRequest
0 голосов
/ 19 марта 2012

Я новое программирование ядра. Я пытался загрузить эту программу драйвера в течение 3 дней.

я использовал так много команд для загрузки этого файла kext.но каждый раз, когда проблема

терминал. Пожалуйста, помогите мне.

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 Не указан файл ядра;

использование работающего ядра для компоновки.

/ Система / Библиотека / Расширения / Driver.kext недействителен; не может разрешить зависимости.

/ Система / Библиотека / Расширения / Driver.kext недействителен; не может разрешить зависимости.

/ Система / Библиотека / Расширения / Driver.kext недействителен; не может разрешить зависимости.

Диагностика для /System/Library/Extensions/Driver.kext:

Сбои валидации:

Info dictionary missing required property/value: 

    IOKitPersonalities.Driver.IOClass

Предупреждения:

Personality has no CFBundleIdentifier; the kext's identifier will be inserted when 

отправка в IOCatalogue:

    Driver

как решить вышеуказанную программу

Обновление: 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>

1 Ответ

1 голос
/ 19 марта 2012

Ключ здесь:

"В словаре информации отсутствует обязательное свойство / значение: IOKitPersonalities.Driver.IOClass"

Это означает, что ваш Info.plist неверен, поскольку в описании личности вашего водителя отсутствует спецификация класса.

Работали ли вы с Apple Создание драйвера устройства с Xcode учебник? Раздел Редактирование списка свойств информации охватывает минимум, который вам нужно знать об этом. Документация по Соответствие драйверов и устройств более подробно описана.

Обновление:

Ваш info.plist имеет совершенно неправильный формат. Взгляните на этот снимок экрана из учебника, на который я ссылался выше, для определения необходимой иерархии. Шаблон проекта XCode для драйвера I / O Kit генерирует разумную отправную точку для info.plist - не удаляет то, что дает, просто расширяет его.

Я настоятельно рекомендую вам внимательно прочитать документацию Apple, некоторые из их примеров кода и получить недавно выпущенную книгу от Halvorsen вместе с примером кода (вкладка "Исходный код / ​​загрузки") . (раскрытие: я был одним из рецензентов книги; я не получаю лицензионных отчислений или каких-либо других стимулов за ее рекомендацию - это единственная современная книга по этому вопросу)

Программирование ядра совсем не просто, поэтому важно, чтобы вы понимали, что происходит.

...