4623: 011a monitor multitouch

1

Al lavoro abbiamo un monitor multitouch che apparentemente è un dispositivo HID (USB Human Interface Device) . Si identifica come prodotto 0x4601 del fornitore 0x4612, apparentemente prodotto da Beijing Honghe Technology Group ma con il marchio Newline . Funziona fuori dalla scatola su Linux (apparentemente usando un driver multitouch HID generico), ma non su OS X. system_profiler lo descrive così:

o HHTTOUCH@14110000  <class IOUSBHostDevice, id 0x100008953, registered, matched, active, busy 0 (731 ms), retain 30>
| {
|   "USBPortType" = 0x0
|   "sessionID" = 0x180f680965f78
|   "USB Vendor Name" = "HongHeTouch"
|   "IOCFPlugInTypes" = {"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
|   "IOPowerManagement" = {"PowerOverrideOn"=Yes,"CapabilityFlags"=0x8000,"MaxPowerState"=0x2,"DevicePowerState"=0x2,"ChildrenPowerState"=0x1,"DriverPowerState"=0x0,"CurrentPowerState"=0x2}
|   "USBSpeed" = 0x1
|   "idProduct" = 0x11a
|   "bcdDevice" = 0x100
|   "kUSBVendorString" = "HongHeTouch"
|   "locationID" = 0x14110000
|   "USB Product Name" = "HHTTOUCH"
|   "IOGeneralInterest" = "IOCommand is not serializable"
|   "kUSBCurrentConfiguration" = 0x1
|   "IOClassNameOverride" = "IOUSBDevice"
|   "bDeviceSubClass" = 0x0
|   "idVendor" = 0x4623
|   "AppleUSBAlternateServiceRegistryID" = 0x100008955
|   "bDeviceProtocol" = 0x0
|   "bDeviceClass" = 0x0
| }
| 
+-o AppleUSBHostLegacyClient  <class AppleUSBHostLegacyClient, id 0x100008956, !registered, !matched, active, busy 0, retain 8>
|   {…}
|   
+-o AppleUSBHostCompositeDevice  <class AppleUSBHostCompositeDevice, id 0x10000897f, !registered, !matched, active, busy 0, retain 4>
|   {…}
|   
+-o IOUSBHostInterface@0  <class IOUSBHostInterface, id 0x100008980, registered, matched, active, busy 0 (411 ms), retain 11>
| | {
| |   "USBPortType" = 0x0
| |   "IOCFPlugInTypes" = {"2d9786c6-9ef3-11d4-ad51-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
| |   "bcdDevice" = 0x100
| |   "USBSpeed" = 0x1
| |   "idProduct" = 0x11a
| |   "bConfigurationValue" = 0x1
| |   "bInterfaceSubClass" = 0x0
| |   "locationID" = 0x14110000
| |   "IOGeneralInterest" = "IOCommand is not serializable"
| |   "IOClassNameOverride" = "IOUSBInterface"
| |   "AppleUSBAlternateServiceRegistryID" = 0x100008982
| |   "idVendor" = 0x4623
| |   "bInterfaceProtocol" = 0x0
| |   "bAlternateSetting" = 0x0
| |   "bInterfaceNumber" = 0x0
| |   "bInterfaceClass" = 0x3
| | }
| | 
| +-o IOUSBHostHIDDevice@14110000,0  <class IOUSBHostHIDDevice, id 0x100008989, registered, matched, active, busy 0 (13 ms), retain 10>
|   | {
|   |   "IOClass" = "IOUSBHostHIDDevice"
|   |   "Transport" = "USB"
|   |   "BootProtocol" = 0x0
|   |   "IOPersonalityPublisher" = "com.apple.driver.usb.IOUSBHostHIDDeviceSafeBoot"
|   |   "HIDDefaultBehavior" = ""
|   |   "MaxInputReportSize" = 0x40
|   |   "IOProviderClass" = "IOUSBHostInterface"
|   |   "Manufacturer" = "HongHeTouch"
|   |   "Product" = "HHTTOUCH"
|   |   "DeviceUsagePairs" = ({"DeviceUsagePage"=0xd,"DeviceUsage"=0x4},{"DeviceUsagePage"=0xd,"DeviceUsage"=0xe},{"DeviceUsagePage"=0x1,"DeviceUsage"=0x2},{"DeviceUsagePage"=0x1,"DeviceUsage"=0x1},{"DeviceUsagePage"=0x1,"DeviceUsage"=0x6},{"DeviceUsagePage"=0xff00,"DeviceUsage"=0x0})
|   |   "IOProbeScore" = 0xc350
|   |   "MaxOutputReportSize" = 0x10
|   |   "ReportDescriptor" = <05…00$
|   |   "IOUserClientClass" = "IOHIDLibUserClient"
|   |   "bInterfaceSubClass" = 0x0
|   |   "bInterfaceClass" = 0x3
|   |   "IOCFPlugInTypes" = {"7DDEECA8-A7B4-11DA-8A0E-0014519758EF"="IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin","FA12FA38-6F1A-11D4-BA0C-0005028F18D5"="IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin"}
|   |   "CountryCode" = 0x0
|   |   "VendorID" = 0x4623
|   |   "VersionNumber" = 0x100
|   |   "IOMatchCategory" = "IODefaultMatchCategory"
|   |   "CFBundleIdentifier" = "com.apple.driver.usb.IOUSBHostHIDDevice"
|   |   "PrimaryUsage" = 0x4
|   |   "LocationID" = 0x14110000
|   |   "ProductID" = 0x11a
|   |   "Elements" = ({"ReportID"=0x0,"ElementCookie"=0x1,"CollectionType"=0x1,"Type"=0x201,"Elements"=({"ReportID"=0x0,"ElementCookie"=0x2,"CollectionType"=0x2,"Type"=0x201,"Elements"=({"UnitExponent"=0x0,"IsRelative"=No,"UsagePage"=0xd,"Max"=0x1,"IsArray"=No,"Min"=0x0,"Type"=0x2,"Size"=0x1,"Flags"=0x2,"ReportID"=0x1,"Usage"=0x42,"ReportCount"=0x1,"Unit"=0x0,"HasNullState"=No,"IsNonLinear"=No,"HasPreferredState"=Yes,"ReportSize"=0x1,"ScaledMin"=0x0,"IsWrapping"=No,"ScaledMax"=0x1,"ElementCookie"=0x12},{"UnitExponent"=0$
|   |   "IOGeneralInterest" = "IOCommand is not serializable"
|   |   "PrimaryUsagePage" = 0xd
|   |   "ReportInterval" = 0x1f40
|   |   "MaxFeatureReportSize" = 0x3
|   |   "InputReportElements" = ({"ReportID"=0x1,"ElementCookie"=0x19b,"Size"=0x1f0,"ReportCount"=0x1,"Type"=0x1,"UsagePage"=0x0,"ReportSize"=0x1f0,"Usage"=0x0},{"ReportID"=0x2,"ElementCookie"=0x19c,"Size"=0x8,"ReportCount"=0x1,"Type"=0x1,"UsagePage"=0x0,"ReportSize"=0x8,"Usage"=0x0},{"ReportID"=0x3,"ElementCookie"=0x19d,"Size"=0x8,"ReportCount"=0x1,"Type"=0x1,"UsagePage"=0x0,"ReportSize"=0x8,"Usage"=0x0},{"ReportID"=0x4,"ElementCookie"=0x19e,"Size"=0x30,"ReportCount"=0x1,"Type"=0x1,"UsagePage"=0x0,"ReportSize"=0x30,"Us$
|   | }
|   | 
|   +-o IOHIDInterface  <class IOHIDInterface, id 0x10000898f, registered, matched, active, busy 0 (12 ms), retain 7>
|   | | {
|   | |   "VendorID" = 0x4623
|   | |   "CountryCode" = 0x0
|   | |   "Product" = "HHTTOUCH"
|   | |   "VersionNumber" = 0x100
|   | |   "PrimaryUsage" = 0x4
|   | |   "LocationID" = 0x14110000
|   | |   "BootProtocol" = 0x0
|   | |   "ProductID" = 0x11a
|   | |   "DeviceUsagePairs" = ({"DeviceUsagePage"=0xd,"DeviceUsage"=0x4},{"DeviceUsagePage"=0xd,"DeviceUsage"=0xe},{"DeviceUsagePage"=0x1,"DeviceUsage"=0x2},{"DeviceUsagePage"=0x1,"DeviceUsage"=0x1},{"DeviceUsagePage"=0x1,"DeviceUsage"=0x6},{"DeviceUsagePage"=0xff00,"DeviceUsage"=0x0})
|   | |   "Transport" = "USB"
|   | |   "ReportInterval" = 0x1f40
|   | |   "HIDDefaultBehavior" = ""
|   | |   "PrimaryUsagePage" = 0xd
|   | |   "Manufacturer" = "HongHeTouch"
|   | | }
|   | | 
|   | +-o IOHIDEventDriver  <class IOHIDEventDriver, id 0x100008992, registered, matched, active, busy 0 (1 ms), retain 10>
|   |   | {
|   |   |   "IOClass" = "IOHIDEventDriver"
|   |   |   "MultiAxisPointer" = {"Elements"=(),"AxisCapabilities"=0x0}
|   |   |   "Scroll" = {"Elements"=()}
|   |   |   "BootProtocol" = 0x0
|   |   |   "Digitizer" = {"Transducers"=({"Elements"=({"UnitExponent"=0x0,"IsRelative"=No,"UsagePage"=0xd,"Max"=0x1,"IsArray"=No,"Min"=0x0,"Type"=0x2,"Size"=0x1,"Flags"=0x2,"ReportID"=0x1,"Usage"=0x42,"ReportCount"=0x1,"Unit"=0x0,"HasNullState"=No,"IsNonLinear"=No,"HasPreferredState"=Yes,"ReportSize"=0x1,"ScaledMin"=0x0,"IsWrapping"=No,"ScaledMax"=0x1,"ElementCookie"=0x12},{"UnitExponent"=0x0,"IsRelative"=No,"UsagePage"=0xd,"Max"=0x1,"IsArray"=No,"Min"=0x0,"Type"=0x2,"Size"=0x1,"Flags"=0x2,"ReportID"=0x1,"Usage"=0x32,"$
|   |   |   "Keyboard" = {"Elements"=({"UnitExponent"=0x0,"IsRelative"=No,"UsagePage"=0x7,"Max"=0x1,"IsArray"=No,"Min"=0x0,"Type"=0x2,"Size"=0x1,"Flags"=0x2,"ReportID"=0x5,"Usage"=0xe0,"ReportCount"=0x1,"Unit"=0x0,"HasNullState"=No,"IsNonLinear"=No,"HasPreferredState"=Yes,"ReportSize"=0x1,"ScaledMin"=0x0,"IsWrapping"=No,"ScaledMax"=0x1,"ElementCookie"=0x33},{"UnitExponent"=0x0,"IsRelative"=No,"UsagePage"=0x7,"Max"=0x1,"IsArray"=No,"Min"=0x0,"Type"=0x2,"Size"=0x1,"Flags"=0x2,"ReportID"=0x5,"Usage"=0xe1,"ReportCount"=0x1,$
|   |   |   "IOPersonalityPublisher" = "com.apple.iokit.IOHIDEventDriver"
|   |   |   "Transport" = "USB"
|   |   |   "HIDDefaultBehavior" = ""
|   |   |   "Manufacturer" = "HongHeTouch"
|   |   |   "IOProviderClass" = "IOHIDInterface"
|   |   |   "GameControllerType" = 0x0
|   |   |   "Product" = "HHTTOUCH"
|   |   |   "DisplayIntegrated" = Yes
|   |   |   "DeviceUsagePairs" = ({"DeviceUsagePage"=0xd,"DeviceUsage"=0x4},{"DeviceUsagePage"=0xd,"DeviceUsage"=0xe},{"DeviceUsagePage"=0x1,"DeviceUsage"=0x2},{"DeviceUsagePage"=0x1,"DeviceUsage"=0x1},{"DeviceUsagePage"=0x1,"DeviceUsage"=0x6},{"DeviceUsagePage"=0xff00,"DeviceUsage"=0x0})
|   |   |   "IOProbeScore" = 0x4b0
|   |   |   "VendorIDSource" = 0x0
|   |   |   "HIDPointerResolution" = 0x1900000
|   |   |   "RelativePointer" = {"Elements"=()}
|   |   |   "VendorID" = 0x4623
|   |   |   "VersionNumber" = 0x100
|   |   |   "CountryCode" = 0x0
|   |   |   "IOMatchCategory" = "IODefaultMatchCategory"
|   |   |   "CFBundleIdentifier" = "com.apple.iokit.IOHIDFamily"
|   |   |   "LED" = {"Elements"=({"UnitExponent"=0x0,"IsRelative"=No,"UsagePage"=0x8,"Max"=0x1,"IsArray"=No,"Min"=0x0,"Type"=0x81,"Size"=0x1,"Flags"=0x2,"ReportID"=0x5,"Usage"=0x1,"ReportCount"=0x1,"Unit"=0x0,"HasNullState"=No,"IsNonLinear"=No,"HasPreferredState"=Yes,"ReportSize"=0x1,"ScaledMin"=0x0,"IsWrapping"=No,"ScaledMax"=0x1,"ElementCookie"=0x122},{"UnitExponent"=0x0,"IsRelative"=No,"UsagePage"=0x8,"Max"=0x1,"IsArray"=No,"Min"=0x0,"Type"=0x81,"Size"=0x1,"Flags"=0x2,"ReportID"=0x5,"Usage"=0x2,"ReportCount"=0x1,"Uni$
|   |   |   "HIDEventServiceProperties" = {"HIDSubinterfaceID"=0x28,"HIDKeyboardModifierMappingPairs"=()}
|   |   |   "LocationID" = 0x14110000
|   |   |   "ProductID" = 0x11a
|   |   |   "ReportInterval" = 0x1f40
|   |   |   "SupportsInk" = 0x1
|   |   |   "GameControllerPointer" = {"Elements"=({"UnitExponent"=0x0,"IsRelative"=No,"UsagePage"=0x8,"Max"=0x1,"IsArray"=No,"Min"=0x0,"Type"=0x81,"Size"=0x1,"Flags"=0x2,"ReportID"=0x5,"Usage"=0x1,"ReportCount"=0x1,"Unit"=0x0,"HasNullState"=No,"IsNonLinear"=No,"HasPreferredState"=Yes,"ReportSize"=0x1,"ScaledMin"=0x0,"IsWrapping"=No,"ScaledMax"=0x1,"ElementCookie"=0x122},{"UnitExponent"=0x0,"IsRelative"=No,"UsagePage"=0x8,"Max"=0x1,"IsArray"=No,"Min"=0x0,"Type"=0x81,"Size"=0x1,"Flags"=0x2,"ReportID"=0x5,"Usage"=0x2,"Rep$
|   |   | }
|   |   | 
|   |   +-o IOHIDPointing  <class IOHIDPointing, id 0x100008994, registered, matched, active, busy 0 (1 ms), retain 9>
|   |   | | {
|   |   | |   "HIDScrollAccelerationType" = "HIDMouseScrollAcceleration"
|   |   | |   "HIDVirtualDevice" = No
|   |   | |   "Transport" = "USB"
|   |   | |   "HIDDeviceEventID" = 0x8994
|   |   | |   "Product" = "HHTTOUCH"
|   |   | |   "Manufacturer" = "HongHeTouch"
|   |   | |   "HIDPointerButtonCount" = 0xd
|   |   | |   "DeviceUsagePairs" = ({"DeviceUsagePage"=0xd,"DeviceUsage"=0x4},{"DeviceUsagePage"=0xd,"DeviceUsage"=0xe},{"DeviceUsagePage"=0x1,"DeviceUsage"=0x2},{"DeviceUsagePage"=0x1,"DeviceUsage"=0x1},{"DeviceUsagePage"=0x1,"DeviceUsage"=0x6},{"DeviceUsagePage"=0xff00,"DeviceUsage"=0x0})
|   |   | |   "HIDPointerResolution" = 0x1900000
|   |   | |   "VendorIDSource" = 0x0
|   |   | |   "alt_sender_id" = 0x100008992
|   |   | |   "HIDPointerConvertAbsolute" = <00>
|   |   | |   "CountryCode" = 0x0
|   |   | |   "VendorID" = 0x4623
|   |   | |   "VersionNumber" = 0x100
|   |   | |   "HIDSubinterfaceID" = 0x0
|   |   | |   "HIDResetPointer" = Yes
|   |   | |   "HIDInterfaceID" = 0x0
|   |   | |   "HIDPointerContactToMove" = <00>
|   |   | |   "LocationID" = 0x14110000
|   |   | |   "ProductID" = 0x11a
|   |   | |   "HIDKind" = 0x2
|   |   | |   "HIDPointerAccelerationType" = "HIDMouseAcceleration"
|   |   | |   "ReportInterval" = 0x1f40
|   |   | |   "HIDScrollAccelCurvesDebug" = ("no scroll resolution for type","no scroll resolution for type","no scroll resolution for type")
|   |   | | }
|   |   | | 
|   |   | +-o IOHIDSystem  <class IOHIDSystem, id 0x100000313, registered, matched, active, busy 0 (0 ms), retain 20>
|   |   |   | {…}
|   |   |   | 
|   |   |   +-o IOHIDUserClient  <class IOHIDUserClient, id 0x100000446, !registered, !matched, active, busy 0, retain 5>
|   |   |   |   {…}
|   |   |   |   
|   |   |   +-o IOHIDParamUserClient  <class IOHIDParamUserClient, id 0x10000044b, !registered, !matched, active, busy 0, retain 5>
|   |   |       {…}
|   |   |       
|   |   +-o IOHIDKeyboard  <class IOHIDKeyboard, id 0x100008995, registered, matched, active, busy 0 (0 ms), retain 9>
|   |   | | {…}
|   |   | | 
|   |   | +-o IOHIDSystem  <class IOHIDSystem, id 0x100000313, registered, matched, active, busy 0 (0 ms), retain 20>
|   |   |   | {…}
|   |   |   | 
|   |   |   +-o IOHIDUserClient  <class IOHIDUserClient, id 0x100000446, !registered, !matched, active, busy 0, retain 5>
|   |   |   |   {…}
|   |   |   |   
|   |   |   +-o IOHIDParamUserClient  <class IOHIDParamUserClient, id 0x10000044b, !registered, !matched, active, busy 0, retain 5>
|   |   |       {…}
|   |   |       
|   |   +-o IOHIDSystem  <class IOHIDSystem, id 0x100000313, registered, matched, active, busy 0 (0 ms), retain 19>
|   |     | {…}
|   |     | 
|   |     +-o IOHIDUserClient  <class IOHIDUserClient, id 0x100000446, !registered, !matched, active, busy 0, retain 5>
|   |     |   {…}
|   |     |   
|   |     +-o IOHIDParamUserClient  <class IOHIDParamUserClient, id 0x10000044b, !registered, !matched, active, busy 0, retain 5>
|   |         {…}
|   |         
|   +-o IOHIDLibUserClient  <class IOHIDLibUserClient, id 0x100008990, !registered, !matched, active, busy 0, retain 6>
|   |   {…}
|   |   
|   +-o IOHIDLibUserClient  <class IOHIDLibUserClient, id 0x100008991, !registered, !matched, active, busy 0, retain 6>
|       {…}
|       
+-o IOUSBHostInterface@1  <class IOUSBHostInterface, id 0x100008981, registered, matched, active, busy 0 (280 ms), retain 11>
  | {
  |   "USBPortType" = 0x0
  |   "IOCFPlugInTypes" = {"2d9786c6-9ef3-11d4-ad51-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
  |   "bcdDevice" = 0x100
  |   "USBSpeed" = 0x1
  |   "idProduct" = 0x11a
  |   "bConfigurationValue" = 0x1
  |   "bInterfaceSubClass" = 0x0
  |   "locationID" = 0x14110000
  |   "IOGeneralInterest" = "IOCommand is not serializable"
  |   "IOClassNameOverride" = "IOUSBInterface"
  |   "AppleUSBAlternateServiceRegistryID" = 0x100008984
  |   "idVendor" = 0x4623
  |   "bInterfaceProtocol" = 0x0
  |   "bAlternateSetting" = 0x0
  |   "bInterfaceNumber" = 0x1
  |   "bInterfaceClass" = 0x3
  | }
  | 
  +-o IOUSBHostHIDDevice@14110000,1  <class IOUSBHostHIDDevice, id 0x100008988, registered, matched, active, busy 0 (4 ms), retain 10>
    | {
    |   "IOClass" = "IOUSBHostHIDDevice"
    |   "Transport" = "USB"
    |   "BootProtocol" = 0x0
    |   "IOPersonalityPublisher" = "com.apple.driver.usb.IOUSBHostHIDDeviceSafeBoot"
    |   "HIDDefaultBehavior" = ""
    |   "MaxInputReportSize" = 0x40
    |   "IOProviderClass" = "IOUSBHostInterface"
    |   "Manufacturer" = "HongHeTouch"
    |   "Product" = "HHTTOUCH"
    |   "DeviceUsagePairs" = ({"DeviceUsagePage"=0xff00,"DeviceUsage"=0x1})
    |   "IOProbeScore" = 0xc350
    |   "MaxOutputReportSize" = 0x40
    |   "ReportDescriptor" = <06…c0>
    |   "IOUserClientClass" = "IOHIDLibUserClient"
    |   "bInterfaceSubClass" = 0x0
    |   "bInterfaceClass" = 0x3
    |   "IOCFPlugInTypes" = {"7DDEECA8-A7B4-11DA-8A0E-0014519758EF"="IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin","FA12FA38-6F1A-11D4-BA0C-0005028F18D5"="IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin"}
    |   "CountryCode" = 0x21
    |   "VendorID" = 0x4623
    |   "VersionNumber" = 0x100
    |   "IOMatchCategory" = "IODefaultMatchCategory"
    |   "CFBundleIdentifier" = "com.apple.driver.usb.IOUSBHostHIDDevice"
    |   "PrimaryUsage" = 0x1
    |   "LocationID" = 0x14110000
    |   "ProductID" = 0x11a
    |   "Elements" = ({"ReportID"=0x0,"ElementCookie"=0x1,"CollectionType"=0x1,"Type"=0x201,"Elements"=({"UnitExponent"=0x0,"IsRelative"=No,"UsagePage"=0xff00,"Max"=0xff,"IsArray"=No,"Min"=0x0,"Type"=0x1,"Size"=0x8,"Flags"=0x2,"ReportID"=0x1,"Usage"=0x1,"ReportCount"=0x1,"Unit"=0x0,"HasNullState"=No,"IsNonLinear"=No,"HasPreferredState"=Yes,"ReportSize"=0x8,"ScaledMin"=0x0,"IsWrapping"=No,"ScaledMax"=0xff,"ElementCookie"=0x2},{"UnitExponent"=0x0,"IsRelative"=No,"UsagePage"=0xff00,"Max"=0xff,"IsArray"=No,"Min"=0x0,"Type"=$
    |   "IOGeneralInterest" = "IOCommand is not serializable"
    |   "PrimaryUsagePage" = 0xff00
    |   "ReportInterval" = 0x1f40
    |   "MaxFeatureReportSize" = 0x1
    |   "InputReportElements" = ({"ReportID"=0x1,"ElementCookie"=0x2c4,"Size"=0x200,"ReportCount"=0x1,"Type"=0x1,"UsagePage"=0x0,"ReportSize"=0x200,"Usage"=0x0},{"ReportID"=0x2,"ElementCookie"=0x2c5,"Size"=0x200,"ReportCount"=0x1,"Type"=0x1,"UsagePage"=0x0,"ReportSize"=0x200,"Usage"=0x0},{"ReportID"=0x3,"ElementCookie"=0x2c6,"Size"=0x200,"ReportCount"=0x1,"Type"=0x1,"UsagePage"=0x0,"ReportSize"=0x200,"Usage"=0x0},{"ReportID"=0x4,"ElementCookie"=0x2c7,"Size"=0x200,"ReportCount"=0x1,"Type"=0x1,"UsagePage"=0x0,"ReportSize"$
    | }
    | 
    +-o IOHIDInterface  <class IOHIDInterface, id 0x10000898b, registered, matched, active, busy 0 (4 ms), retain 6>
    |   {
    |     "VendorID" = 0x4623
    |     "CountryCode" = 0x21
    |     "Product" = "HHTTOUCH"
    |     "VersionNumber" = 0x100
    |     "PrimaryUsage" = 0x1
    |     "LocationID" = 0x14110000
    |     "BootProtocol" = 0x0
    |     "ProductID" = 0x11a
    |     "DeviceUsagePairs" = ({"DeviceUsagePage"=0xff00,"DeviceUsage"=0x1})
    |     "Transport" = "USB"
    |     "ReportInterval" = 0x1f40
    |     "HIDDefaultBehavior" = ""
    |     "PrimaryUsagePage" = 0xff00
    |     "Manufacturer" = "HongHeTouch"
    |   }
    |   
    +-o IOHIDLibUserClient  <class IOHIDLibUserClient, id 0x10000898c, !registered, !matched, active, busy 0, retain 6>
    |   {
    |     "IOUserClientCreator" = "pid 94, loginwindow"
    |   }
    |   
    +-o IOHIDLibUserClient  <class IOHIDLibUserClient, id 0x10000898d, !registered, !matched, active, busy 0, retain 6>
        {
          "IOUserClientCreator" = "pid 274, UserEventAgent"
        }

Il dispositivo funge da combinazione di una tastiera (con PgUp e PgDn accessibile tramite telecomando) e un dispositivo di input multi-touch. L'aspetto della tastiera funziona abbastanza bene: OS X riporta la tastiera come tipo sconosciuto, chiedendo di premere un tasto Shift specifico. Poiché non ho mai spostato, premo uno di quei pulsanti di spostamento della pagina e quindi posso selezionare manualmente un tipo di tastiera. Dopodiché, posso usare i tasti per scorrere le applicazioni.

L'input tattile, tuttavia, sembra non funzionale. Il dispositivo viene segnalato come IOHIDPointing e Digitizer nel rapporto precedente, quindi sembra esserci un po 'di comprensione sul tipo di dispositivo che è. Tuttavia non vedo che controlli il mio puntatore del mouse.

  • Devo abilitare questo dispositivo in qualche modo, per dire che gli eventi multi-touch di quella fonte dovrebbero controllare il puntatore del mio mouse?
  • Devo caricare qualsiasi driver aggiuntivo, per fare in modo che gli eventi multi-touch HID finiscano per controllare il mio puntatore?
  • Esiste qualche strumento (riga di comando o grafico, fornito con OS X o di terze parti) che posso utilizzare per eseguire il debug degli eventi generati dal dispositivo? Preferibilmente a diversi livelli, come HID, touch, puntatore o qualunque sia l'architettura attuale?

Modifica: Ho aperto la segnalazione di bug di Apple 25216130 a riguardo.

    
posta MvG 24.02.2016 - 16:01
fonte

1 risposta

1

C'è un bug nello stack USB Apple, che impedisce il funzionamento di alcuni dispositivi USB Composite. Ho aperto una TSI Apple e un bug report su questo, e mi è stata data una soluzione alternativa, che lo risolve per me. La soluzione alternativa è semplicemente un kext senza codice , con questa personalità aggiunta al dizionario di IOKitPersonalities:

    <key>Display Workaround</key>
    <dict>
        <key>CFBundleIdentifier</key>
        <string>com.apple.driver.AppleUSBHostMergeProperties</string>
        <key>IOClass</key>
        <string>AppleUSBHostMergeProperties</string>
        <key>IOProviderClass</key>
        <string>IOUSBHostDevice</string>
        <key>IOProviderMergeProperties</key>
        <dict>
            <key>kUSBRemoteWakeOverride</key>
            <false/>
        </dict>
        <key>idVendor</key>
        <integer>17955</integer>
        <key>idProduct</key>
        <integer>282</integer>
    </dict>

(Ho aggiunto il tuo VID / PID sopra).

Una versione futura di OS X risolverà (si spera).

Si noti che il kext codeless deve essere posto su / Library / Extensions e che deve essere firmato.

    
risposta data 14.03.2016 - 08:54
fonte

Leggi altre domande sui tag