На работе у нас есть мультитач-монитор, который, по-видимому, представляет собой USB-устройство с интерфейсом пользователя (HID) . Он идентифицирует себя как продукт поставщика 0x4623 0x011a, по-видимому, произведенный Beijing Honghe Technology Group , но имеющий торговую марку Newline . Он работает из коробки в Linux (очевидно, с использованием универсального драйвера мультитач HID), но не в OS X. system_profiler
описывает это так:
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"
}
Устройство служит комбинацией клавиатуры (с дистанционным управлением PgUpи PgDnдоступной через него) и устройства ввода с поддержкой мультисенсорного ввода. Аспект клавиатуры работает достаточно хорошо: OS X сообщает о клавиатуре как о неизвестном типе, предлагая нажать определенную клавишу Shift. Поскольку у меня нет сдвига, я нажимаю любую из этих кнопок перемещения по страницам, а затем могу вручную выбрать тип клавиатуры. После этого я могу использовать клавиши для прокрутки приложений.
Сенсорный ввод, однако, кажется нефункциональным. Об устройстве сообщается как IOHIDPointing
и Digitizer
в приведенном выше отчете, поэтому, похоже, есть некоторое понимание того, что это за устройство. Тем не менее я не вижу, чтобы он контролировал мой указатель мыши.
Изменить: я открыл отчет об ошибке Apple 25216130 по этому поводу.
В стеке Apple USB есть ошибка, из-за которой некоторые составные USB-устройства не могут работать. Я открыл Apple TSI и отчет об ошибке по этому поводу, и мне дали обходной путь, который исправляет это для меня. Обходной путь — это просто kext без кода , с этой личностью, добавленной в словарь 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>
(Я добавил ваш VID/PID выше).
Будущая версия OS X (надеюсь) исправит это.
Обратите внимание, что кекс без кода должен быть помещен в папку /Library/Extensions и должен быть подписан.
sudo nvram boot-args='kext-dev-mode=1'
это и перезагрузился, но, видимо, кекс все еще не загружается. См . Gist.github.com/gagern/6d98868c75f009d641aa для моего plist и моих попыток диагностики. Есть идеи?kext-dev-mode
работает только для 10.10 Yosemite, а не для 10.11 El Capitan. Придется попытаться найти члена ADP, у которого либо есть сертификат подписи kext, либо он хочет его получить. Довольно много работы, чтобы обойти ошибку!csrutil disable
. Теперь kextutil
утверждает, что загружает вещь, но kextstat
не перечисляет ее, и устройство по-прежнему не работает. Заставляет меня задуматься, является ли это проблемой загрузки kext или обходной путь не применим к моему делу.<key>OSBundleRequired</key> <string>Local-Root</string>
ключ в основной plist dict. Может быть, это нужно для того, чтобы заставить его загрузиться.
МвГ
sudo sysdiagnose
вывод, а затемsudo dtrace -n 'fbt::*HIDPointing*:entry'
вывод. Последний (почти) пуст, поэтому я дал им вывод из некоторых более широкихdtrace
шаблонов, связанных с HID, напримерfbt:com.apple.iokit.IOHIDFamily::entry
. Нет ответа с тех пор, последнее сообщение 31 марта. Я жду и надеюсь.