0

我是新内核编程。我已经尝试加载此驱动程序 3 天。

我使用了很多命令来加载这个 kext 文件。但每次问题都是

终端。请任何人帮助我。

ensis-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 

发送到 IO 目录:

    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>
4

1 回答 1

1

线索在这里:

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

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

您是否完成过 Apple 的使用 Xcode 创建设备驱动程序教程?编辑信息属性列表部分涵盖了您需要了解的最低限度。驱动程序和设备匹配的文档更详细。

更新:

您的 info.plist 格式完全错误。看看我上面链接的教程中的这个屏幕截图,了解所需的层次结构。I/O Kit Driver 的 XCode 项目模板为 info.plist 生成了一个合理的起点——不要删除它给你的东西,只需扩展它。

我强烈建议您仔细阅读 Apple 的文档,他们的一些示例代码,并获取Halvorsen 最近发布的书籍及其示例代码(源代码/下载选项卡)。(披露:我是这本书的审稿人之一;我没有收到版税或任何其他推荐它的奖励——这是唯一一本关于这个主题的最新书)

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

于 2012-03-19T11:31:25.053 回答