几年前我带了一台Genius G-Pen 340平板电脑笔。升级到Mavericks后,我发现平板电脑笔的原始驱动程序无法加载。似乎该驱动程序仅适用于32位OS X,显然该产品已经暂时不受支持。
是否可以构建一个kext,让IOHIDFamily驱动程序使用这款平板电脑笔?或者是否有任何项目试图支持比IOHIDSystem kext更多的HID输入设备?
IOHIDFamily似乎内置了对Digitizer设备类的支持,但缺乏产品特定的配置。我还简要地讨论了Linux内核源代码,并在Linux笔记本电脑上进行了测试,发现这款平板电脑笔被认为是WP4030U并且运行良好。似乎通过向同一驱动程序提供各种配置参数来支持许多平板电脑笔产品。
为平板电脑笔提供参数的Linux内核驱动程序:
平板电脑的ioreg
结果:
| | | +-o Tablet WP4030U@24110000 <class IOUSBDevice, id 0x100000755, registered, matched, active, busy 0 (415 ms), retain 10>
| | | +-o IOUSBCompositeDriver <class IOUSBCompositeDriver, id 0x100000759, !registered, !matched, active, busy 0, retain 4>
| | | +-o Tablet WP4030U@0 <class IOUSBInterface, id 0x10000075a, registered, matched, active, busy 0 (43 ms), retain 9>
| | | +-o IOUSBHIDDriver <class IOUSBHIDDriver, id 0x100000762, registered, matched, active, busy 0 (6 ms), retain 10>
| | | +-o IOHIDInterface <class IOHIDInterface, id 0x100000765, registered, matched, active, busy 0 (5 ms), retain 7>
| | | | +-o IOHIDEventDriver <class IOHIDEventDriver, id 0x100000767, registered, matched, active, busy 0 (0 ms), retain 9>
| | | | +-o IOHIDPointing <class IOHIDPointing, id 0x100000768, registered, matched, active, busy 0 (0 ms), retain 8>
| | | | | +-o IOHIDSystem <class IOHIDSystem, id 0x10000024a, registered, matched, active, busy 0 (0 ms), retain 23>
| | | | | +-o IOHIDStackShotUserClient <class IOHIDStackShotUserClient, id 0x100000324, !registered, !matched, active, busy 0, retain 5>
| | | | | +-o IOHIDUserClient <class IOHIDUserClient, id 0x10000034c, !registered, !matched, active, busy 0, retain 5>
| | | | | +-o IOHIDParamUserClient <class IOHIDParamUserClient, id 0x10000034d, !registered, !matched, active, busy 0, retain 5>
| | | | | +-o IOHIDEventSystemUserClient <class IOHIDEventSystemUserClient, id 0x100000363, !registered, !matched, active, busy 0, retain 5>
| | | | | +-o IOHIDEventSystemUserClient <class IOHIDEventSystemUserClient, id 0x100000364, !registered, !matched, active, busy 0, retain 5>
| | | | | +-o IOHIDEventSystemUserClient <class IOHIDEventSystemUserClient, id 0x10000036a, !registered, !matched, active, busy 0, retain 5>
| | | | +-o IOHIDSystem <class IOHIDSystem, id 0x10000024a, registered, matched, active, busy 0 (0 ms), retain 22>
| | | | +-o IOHIDStackShotUserClient <class IOHIDStackShotUserClient, id 0x100000324, !registered, !matched, active, busy 0, retain 5>
| | | | +-o IOHIDUserClient <class IOHIDUserClient, id 0x10000034c, !registered, !matched, active, busy 0, retain 5>
| | | | +-o IOHIDParamUserClient <class IOHIDParamUserClient, id 0x10000034d, !registered, !matched, active, busy 0, retain 5>
| | | | +-o IOHIDEventSystemUserClient <class IOHIDEventSystemUserClient, id 0x100000363, !registered, !matched, active, busy 0, retain 5>
| | | | +-o IOHIDEventSystemUserClient <class IOHIDEventSystemUserClient, id 0x100000364, !registered, !matched, active, busy 0, retain 5>
| | | | +-o IOHIDEventSystemUserClient <class IOHIDEventSystemUserClient, id 0x10000036a, !registered, !matched, active, busy 0, retain 5>
| | | +-o IOHIDLibUserClient <class IOHIDLibUserClient, id 0x100000766, !registered, !matched, active, busy 0, retain 6>
| | | +-o IOHIDLibUserClient <class IOHIDLibUserClient, id 0x10000076a, !registered, !matched, active, busy 0, retain 6>