我可以使用哪些命令在终端中加载i / o套件驱动程序?

时间:2012-03-19 11:20:42

标签: macos sdk iokit kernel-extension

我是新的内核编程。我一直在尝试加载这个驱动程序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没有指定内核文件;

使用正在运行的内核进行链接。

/System/Library/Extensions/Driver.kext无效;无法解决依赖关系。

/System/Library/Extensions/Driver.kext无效;无法解决依赖关系。

/System/Library/Extensions/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 个答案:

答案 0 :(得分:1)

线索在这里:

“信息字典缺少必需的属性/值:IOKitPersonalities.Driver.IOClass”

这意味着您的Info.plist不正确,因为您的驱动程序的个性描述缺少类规范。

您是否参与过Apple的Creating a Device Driver with Xcode教程? Edit the Information Property List部分涵盖了您需要了解的最低限度。 Driver and Device Matching上的文档更详细。

<强>更新

您的info.plist格式完全错误。从我上面链接的教程中查看this screenshot以获取所需的层次结构。 I / O Kit驱动程序的XCode项目模板为info.plist生成一个明智的起点 - 删除它给你的内容,只需扩展它。

我强烈建议您仔细阅读Apple的文档,其中一些示例代码,并获取recently released book by Halvorsen及其sample code (source code/downloads tab)。 (披露:我是这本书的评论者之一;我没有收到版税或任何其他推荐它的奖励 - 这是关于这个主题的唯一最新书)

内核编程绝非易事,因此了解正在发生的事情非常重要。