
[英]Kext driver is not responding after manual reset USB device on Mac OS X
[英]How to write usb touchscreen driver kext in os x 10.9?
我想为usb触摸屏写一个usb触摸屏kext。 我已经阅读了内核扩展编程主题和I / O Kit基础知识等,我的问题是,1。 如何从触摸屏获取输入报告消息? 2。 如何将坐标信息发布到系统?
我不知道,有人帮忙吗?
这取决于硬件; 此外,这个问题相当广泛 - 你需要在你的问题中更加具体,以获得更具体的答案。 我将尝试提供一个广泛的概述:
触摸屏有两个部分:
由于您根本没有询问过(1),我认为您的设备只是插入Mac上的显示端口并且已经正确显示。 如果没有,您将需要查看IOFramebuffer
API。
对于(2) - 几乎所有USB输入设备都是某种形式的HID设备。 如果您是HID的新手,您可能希望阅读并理解USB HID规范和相关文档,因为您将始终使用该信息。
OSX已经全面支持标准HID设备类,如键盘,鼠标,触摸板,图形输入板等。如果您的设备声称是任何类型的HID设备,OSX应该已经检测到它并将其通用HID驱动程序附加到它。 您应该在I / O Registry中看到一个IOUSBHIDDriver
实例(例如,使用Apple的IORegistryExplorer工具,或者在命令行上使用ioreg
)。
我还希望您的设备符合HID的绝对指针设备配置文件,因此至少单个触摸应该已经正常工作。 如果它是多点触控设备,或者您需要其他额外功能,您可能希望实现生成或转换必要多点触控事件的IOUSBHIDDriver
子类。
如果您的设备由于某种原因还不是HID USB设备,则需要为其编写自定义USB驱动程序,并将来自它的事件转换为HID事件,因为HID事件直接传递到用户空间并进行处理那里。 您实际上可以编写USB驱动程序并从用户空间生成HID事件,因此您可以根据需要避免编写任何内核代码。
Apple提供了一些关于HID的文档:
如果您要编写自己的内核HID设备驱动程序,最好的选择可能是IOHIDFamily源代码 。 您可能还可以在Web上找到一些开源示例。
Apple的USB邮件列表也可能值得检查,无论是存档还是有问题。 darwin-kernel和darwin-drivers列表也是相关的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.