Pregunta

Tengo el siguiente problema:Tengo un dispositivo GPS Wintec WBT-202 que tiene la capacidad de transmitir datos de ubicación en vivo como datos NMEA a través de USB.Dentro de este USB hay solo un puente USB a serie que se ejecuta en Windows usando el estándar usbser.sys conductor.

Mi problema es conseguir que funcione en Mac OS X.

el hardware El mouse USB GPS utiliza un chip Atmel AT91SAM7S256 que también es responsable de la interfaz USB.

El problema En Mac OS X no sucede nada.No se ha creado ningún nuevo dispositivo de carácter en /dev para que este dispositivo sea accesible.

En Windows, el controlador estándar usbser.sys se utiliza.Solo hay un archivo .inf que apunta el ID del proveedor y el ID del producto a este controlador.Al usar Snoopy Pro en Windows (un software de detección de USB), sé que una vez que el dispositivo se inicializa correctamente, envía los datos como cadenas ASCII NMEA, que es todo lo que quiero.

Pregunta 1 Hay un usbser.sys equivalente para Mac OS X?En caso afirmativo, ¿se podría utilizar un kext sin código para garantizar que la coincidencia de controladores se produzca correctamente?

Si esto no funcionara, usaría IOKit desde el espacio del usuario para enviar y recibir mensajes al dispositivo.Todavía tengo preguntas sobre cómo funcionaría esto en detalle, porque no entiendo completamente la documentación de Apple.Si hay un dispositivo USB conectado, se produce la coincidencia del controlador.¿Qué sucede si no se encuentra ningún controlador?

Pregunta 2 ¿Podría ser que entonces esté cargado algún controlador USB genérico con el que puedo "hablar" en el kernel desde el espacio del usuario?¿Cómo sé que está cargado el controlador correcto?

Pregunta 3 Vi que había una sesión de "introducción al kit de E/S" en WWDC08. ¿Hay alguna manera de obtener acceso al video de esta sesión?

He adjuntado algunos registros de USBProbe y el extracto del registro de E/S.

Cualquier comentario sobre cómo podría comenzar y qué documentación proporciona un tutorial decente sería muy apreciado.

he investigado Componentes internos de Mac OS X: un sistema interno por Amit Singh, la documentación de Apple "Cómo comenzar con el kit de E/S", la "Guía de fundamentos del kit de E/S" y la muestra de datos privados de USB.

APÉNDICE

Sonda USB

Full Speed device @ 8 (0xFD360000): .............................................   Communication device: "WINTEC WBT202 CDC"
    Port Information:   0x0019
           Captive
           External Device
           Connected
           Enabled
    Device Descriptor   
        Descriptor Version Number:   0x0200
        Device Class:   2   (Communication)
        Device Subclass:   0
        Device Protocol:   0
        Device MaxPacketSize:   8
        Device VendorID/ProductID:   0x03EB/0x6119   (Atmel Corporation)
        Device Version Number:   0x0100
        Number of Configurations:   1
        Manufacturer String:   0 (none)
        Product String:   1 "WINTEC WBT202 CDC"
        Serial Number String:   0 (none)
    Configuration Descriptor   
        Length (and contents):   67
            Raw Descriptor (hex)    0000: 09 02 43 00 02 01 00 C0  32 09 04 00 00 01 02 02  
            Raw Descriptor (hex)    0010: 00 00 05 24 00 10 01 05  24 01 01 00 04 24 02 02  
            Raw Descriptor (hex)    0020: 05 24 06 00 01 07 05 83  03 40 00 0A 09 04 01 00  
            Raw Descriptor (hex)    0030: 02 0A 00 00 00 07 05 01  02 40 00 00 07 05 82 02  
            Raw Descriptor (hex)    0040: 40 00 00 
        Number of Interfaces:   2
        Configuration Value:   1
        Attributes:   0xC0 (self-powered)
        MaxPower:   100 ma
        Interface #0 - Communications-Control   
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   2   (Communications-Control)
            Interface Subclass;   2
            Interface Protocol:   0
            Comm Class Header Functional Descriptor   
                Raw Descriptor (hex)   0000: 05 24 00 10 01 
            Comm Class Call Management Functional Descriptor   
                Raw Descriptor (hex)   0000: 05 24 01 01 00 
            Comm Class Abstract Control Management Functional Descriptor   
                Raw Descriptor (hex)   0000: 04 24 02 02 
            Comm Class Union Functional Descriptor   
                Raw Descriptor (hex)   0000: 05 24 06 00 01 
            Endpoint 0x83 - Interrupt Input   
                Address:   0x83  (IN)
                Attributes:   0x03  (Interrupt no synchronization data endpoint)
                Max Packet Size:   64
                Polling Interval:   10 ms
        Interface #1 - Communications-Data/Unknown Comm Class Model   
            Alternate Setting   0
            Number of Endpoints   2
            Interface Class:   10   (Communications-Data)
            Interface Subclass;   0   (Unknown Comm Class Model)
            Interface Protocol:   0
            Endpoint 0x01 - Bulk Output   
                Address:   0x01  (OUT)
                Attributes:   0x02  (Bulk no synchronization data endpoint)
                Max Packet Size:   64
                Polling Interval:   0 ms
            Endpoint 0x82 - Bulk Input   
                Address:   0x82  (IN)
                Attributes:   0x02  (Bulk no synchronization data endpoint)
                Max Packet Size:   64
                Polling Interval:   0 ms

Registro IO

 8: WINTEC WBT202 CDC@fd360000  <class IOUSBDevice>
     AppleUSBCDC  <class AppleUSBCDC>
     IOUSBInterface@0  <class IOUSBInterface>
         AppleUSBCDCACMControl  <class AppleUSBCDCACMControl>
     IOUSBInterface@1  <class IOUSBInterface>
   bcdDevice   256 (0x100)
   bDeviceClass   2 (0x2)
   bDeviceProtocol   0 (0x0)
   bDeviceSubClass   0 (0x0)
   bMaxPacketSize0   8 (0x8)
   bNumConfigurations   1 (0x1)
   Bus Power Available   250 (0xfa)
   Device Speed   1 (0x1)
   idProduct   24857 (0x6119)
   idVendor   1003 (0x3eb)
   iManufacturer   0 (0x0)
   IOCFPlugInTypes   
       9dc7b780-9ec0-11d4-a54f-000a27052861   IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle
   IOGeneralInterest   IOCommand is not serializable
   IOUserClientClass   IOUSBDeviceUserClientV2
   iProduct   1 (0x1)
   iSerialNumber   0 (0x0)
   locationID   -46792704 (0xfd360000)
   Low Power Displayed   No
   non-removable   yes
   PortNum   6 (0x6)
   Requested Power   50 (0x32)
   sessionID   1167822359 (0x459b8e17459b8e17)
   USB Address   5 (0x5)
   USB Product Name   WINTEC WBT202 CDC

Conexión de dispositivo de inicio de sesión de sonda USB

   12.719 [5]   AppleUSBHub[0x6805a00]::ProcessStatusChanged found (0x      40) in statusChangedBitmap
   12.719 [3]   AppleUSBHub[0x6805a00]::ChangeRaisedPowerState(+) now (1)
   12.719 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler: port 6 obtained runLock
   12.719 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler: calling GetPortStatus for port 6
   12.719 [5]   AppleUSBHub[0x6805a00]::powerChangeDone - spawning _checkForActivePortsThread
   12.719 [5]   AppleUSBEHCI[0x65ea000]::FindControlBulkEndpoint (inactive) - linking to active list: 65997c0
   12.719 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler - Hub 0xfd300000 port 6 - Initial status(0x0101)/change(0x0001)
   12.719 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler - port 6 - change 4 clearing feature 0x10.
   12.719 [5]   AppleUSBHub[0x6805a00]::ClearPortFeature port/feature (60010) - clearing
   12.719 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler - port 6 - status(0x0101) - change(0x0000) - before call to (4) handler function
   12.719 [5]   AppleUSBHubPort[0x6807200]::DefaultConnectionChangeHandler - handling port 6 changes (101,0).
   12.719 [5]   AppleUSBHubPort[0x6807200]::DefaultConnectionChangeHandler port (6) - waiting 100 ms before asserting reset
   12.819 [5]   AppleUSBHubPort[0x6807200]::DefaultConnectionChangeHandler - port 6 - no existing device found on port
   12.820 [4]   AppleUSBHubPort[0x6807200]::DefaultConnectionChangeHandler port 6 status(0101)/change(0000) - no error from GetPortStatus
   12.820 [5]   AppleUSBHubPort[0x6807200]::DefaultConnectionChangeHandler - port 6 - device detected, calling AddDevice
   12.820 [3]   AppleUSBHub[0x6805a00]::ChangeRaisedPowerState(+) now (2)
   12.820 [5]   AppleUSBHubPort[0x6807200]::DefaultConnectionChangeHandler - port 6 done, ending.
   12.820 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler - port 6 - err (0) on return from  call to (4) handler function
   12.820 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler: calling GetPortStatus for port 6
   12.820 [5]   ***** AppleUSBHubPort[0x6807200]::AddDevice - port 6 on hub at 0xfd300000 - start
   12.820 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler - Hub 0xfd300000 port 6 - Initial status(0x0101)/change(0x0000)
   12.820 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler - port 6 - err = 0 - done, releasing _runLock
   12.820 [3]   AppleUSBHub[0x6805a00]::ChangeRaisedPowerState(-) now (1)
   12.820 [3]   AppleUSBHub[0x6805a00]::DecrementOutstandingIO(269), outstandingIO(0), _interruptReadPending(false) - rearming read
   12.820 [5]   AppleUSBHub[0x6805a00]::DecrementOutstandingIO(269) - spawning _checkForActivePortsThread
   12.820 [5]   ***** AppleUSBHubPort[0x6807200]::AddDevice - port 6 on hub at 0xfd300000 - bus 0x65ea000 - acquiring dev zero lock
   12.820 [5]   AppleUSBEHCI[0x65ea000]::ProtectedDevZeroLock - about to obtain device zero lock
   12.820 [5]   AppleUSBEHCI[0x65ea000]::ProtectedDevZeroLock - not already locked - obtaining
   12.820 [5]   AppleUSBEHCI[0x65ea000]::ProtectedDevZeroLock - setting _devZeroLock to true
   12.820 [5]   AppleUSBEHCI[0x65ea000]: Acquired Device Zero
   12.820 [5]   ***** AppleUSBHubPort[0x6807200]::AddDevice - port 6 on hub at 0xfd300000 - resetting port
   12.820 [5]   AppleUSBHub[0x6805a00]::SetPortFeature port/feature (60004) - setting
   12.821 [5]   ***** AppleUSBHubPort[0x6807200]::AddDevice - port 6 on hub at 0xfd300000 - (err = 0) done - returning .
   12.821 [3]   AppleUSBHub[0x6805a00]::ChangeRaisedPowerState(-) now (0)
   12.879 [5]   AppleUSBHub[0x6805a00]::ProcessStatusChanged found (0x      40) in statusChangedBitmap
   12.879 [3]   AppleUSBHub[0x6805a00]::ChangeRaisedPowerState(+) now (1)
   12.879 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler: port 6 obtained runLock
   12.879 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler: delaying 100ms before first GetPortStatus after a reset of port 6
   12.879 [5]   AppleUSBHub[0x6805a00]::powerChangeDone - spawning _checkForActivePortsThread
   12.979 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler: calling GetPortStatus for port 6
   12.979 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler - Hub 0xfd300000 port 6 - Initial status(0x0103)/change(0x0010)
   12.979 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler - port 6 - change 1 clearing feature 0x14.
   12.979 [5]   AppleUSBHub[0x6805a00]::ClearPortFeature port/feature (60014) - clearing
   12.979 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler - port 6 - status(0x0103) - change(0x0000) - before call to (1) handler function
   12.979 [5]   ***** AppleUSBHubPort[0x6807200]::AddDeviceResetChangeHandler - port 6 on hub at 0xfd300000 - start - status(0x0103) change (0x0000)
   12.979 [5]   **1** AppleUSBHubPort[0x6807200]::AddDeviceResetChangeHandler - port 6 on hub at 0xfd300000 - delaying 10 ms
   12.989 [5]   **2** AppleUSBHubPort[0x6807200]::AddDeviceResetChangeHandler - port 6 on hub at 0xfd300000 - found full speed device
   12.989 [5]   **2** AppleUSBHubPort[0x6807200]::AddDeviceResetChangeHandler - port 6 on hub at 0xfd300000 - configuring dev zero
   12.989 [5]   AppleUSBEHCI[0x65ea000]::ConfigureDeviceZero, new method called with hub:3, port:6
   12.989 [5]   AppleUSBEHCI[0x65ea000]::CreateDevice, high speed ancestor hub:3, port:6
   12.989 [5]   AppleUSBEHCI[0x65ea000]::DoCreateEP, high speed ancestor hub:3, port:6
   12.989 [3]   AppleUSBEHCI[0x65ea000]::UIMCreateControlEndpoint(0, 0, 8, 1 @(3, 6))
   12.989 [5]   **3** AppleUSBHubPort[0x6807200]::AddDeviceResetChangeHandler - port 6 on hub at 0xfd300000 - getting dev zero desc
   12.990 [5]   **3** AppleUSBHubPort[0x6807200]::AddDeviceResetChangeHandler - port 6, using 8 for maxPacketSize
   12.992 [5]   **5** AppleUSBHubPort[0x6807200]::AddDeviceResetChangeHandler - port 6, Releasing DeviceZero after successful SetAddress to 5
   12.992 [5]   AppleUSBEHCI[0x65ea000]::UIMDeleteEndpoint: unlinking async endpoint
   12.993 [5]   AppleUSBEHCI[0x65ea000]::UIMDeleteEndpoint: Deallocating 0x68bd700
   12.993 [5]   AppleUSBEHCI[0x65ea000]::ProtectedDevZeroLock - about to release device zero lock
   12.993 [5]   AppleUSBEHCI[0x65ea000]::ProtectedDevZeroLock - releasing lock
   12.993 [5]   AppleUSBEHCI[0x65ea000]::ProtectedDevZeroLock - wakeup done
   12.993 [5]   AppleUSBEHCI[0x65ea000]:: Released Device Zero
   12.993 [5]   AppleUSBEHCI[0x65ea000]::CreateDevice, new method called with hub:3, port:6
   12.993 [5]   AppleUSBEHCI[0x65ea000]::CreateDevice, high speed ancestor hub:3, port:6
   12.993 [5]   AppleUSBEHCI[0x65ea000]::CreateDevice: addr=5, speed=full, power=500
   12.993 [5]   IOUSBDevice @ 5 (500mA available, full speed)
   12.993 [5]   AppleUSBEHCI[0x65ea000]::DoCreateEP, high speed ancestor hub:3, port:6
   12.993 [3]   AppleUSBEHCI[0x65ea000]::UIMCreateControlEndpoint(5, 0, 8, 1 @(3, 6))
   12.993 [5]   IOUSBDevice[0xd335c00]::GetDeviceDescriptor (size 18)
   12.994 [5]   IOUSBDevice[0xd335c00]::GetStringDescriptor Got string descriptor 1, length 36, got 36
   12.994 [5]   **10** AppleUSBHubPort[0x6807200]::AddDeviceResetChangeHandler -  port 6, at addr: 5, Successful
   12.994 [5]   AppleUSBHub[0x6805a00]::GetPortInformation  for port[6]
   12.995 [5]   WINTEC WBT202 CDC[0xd335c00]::GetDeviceInformation  Hub device name is HubDevice at USB address 3
   12.995 [5]   AppleUSBHub[0x6656800]::GetPortInformation  for port[3]
   12.995 [5]   AppleUSBHubPort[0x6807200]::AddDeviceResetChangeHandler - Port 6 of Hub at 0xfd300000 (USB Address: 5), calling registerService for device WINTEC WBT202 CDC
   12.995 [5]   AppleUSBHubPort[0x6807200]::AddDeviceResetChangeHandler - port 6, err = 0, ALL DONE
   12.995 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler - port 6 - err (0) on return from  call to (1) handler function
   12.995 [5]   AppleUSBHubPort[0x6807200]::PortStatusChangedHandler - port 6 - err = 0 - done, releasing _runLock
   12.995 [3]   AppleUSBHub[0x6805a00]::ChangeRaisedPowerState(-) now (0)
   12.995 [3]   AppleUSBHub[0x6805a00]::DecrementOutstandingIO(274), outstandingIO(0), _interruptReadPending(false) - rearming read
   12.995 [5]   AppleUSBHub[0x6805a00]::DecrementOutstandingIO(274) - spawning _checkForActivePortsThread
   12.999 [5]   Finding device driver for WINTEC WBT202 CDC, matching personality using com.apple.driver.AppleUSBCDC, score: 69000, wildCard = 0
   12.999 [5]   Finding device driver for WINTEC WBT202 CDC, matching personality using com.apple.iokit.IOUSBUserClient, score: 106999, wildCard = 3
   13.002 [5]   WINTEC WBT202 CDC[0xd335c00]::handleOpen - [0xdd78880] is not an IOUSBInterface
   13.002 [5]   WINTEC WBT202 CDC[0xd335c00]::TakeGetConfigLock - calling through to ChangeGetConfigLock
   13.002 [5]   WINTEC WBT202 CDC[0xd335c00]::ChangeGetConfigLock - setting _GETCONFIGLOCK to true
   13.002 [5]   WINTEC WBT202 CDC[0xd335c00]::GetFullConfigurationDescriptor - Index (0) - getting first 4 bytes of config descriptor
   13.002 [5]   WINTEC WBT202 CDC[0xd335c00]::GetConfigDescriptor (length: 4)
   13.002 [5]   WINTEC WBT202 CDC[0xd335c00]::GetFullConfigurationDescriptor - Index (0) - getting full 67 bytes of config descriptor
   13.002 [5]   WINTEC WBT202 CDC[0xd335c00]::GetConfigDescriptor (length: 67)
   13.003 [5]   WINTEC WBT202 CDC[0xd335c00]::ReleaseGetConfigLock - calling through to ChangeGetConfigLock
   13.003 [5]   WINTEC WBT202 CDC[0xd335c00]::ChangeGetConfigLock - setting _GETCONFIGLOCK to false and calling commandWakeup
   13.503 [5]   WINTEC WBT202 CDC[0xd335c00]::TerminateInterfaces interfaceList 0 terminate: 1
   13.503 [5]   WINTEC WBT202 CDC[0xd335c00]::SetConfiguration to 1
   13.504 [5]   WINTEC WBT202 CDC[0xd335c00]::SetConfiguration  Found InterfaceDescription[0] = 0x68bc889
   13.504 [5]   WINTEC WBT202 CDC[0xd335c00]::SetConfiguration  Found InterfaceDescription[1] = 0x68bc8ac
   13.504 [5]   WINTEC WBT202 CDC[0xd335c00]::RegisterInterfaces interfaceArray 0x6de9b00
   13.504 [5]   WINTEC WBT202 CDC[0xd335c00]::RegisterInterfaces  matching to interface = 0x8261700
   13.553 [5]   Finding driver for interface #0 of WINTEC WBT202 CDC, matching personality using com.apple.iokit.IOUSBUserClient, score: 104999, wildCard = 5
   13.567 [5]   Finding driver for interface #0 of WINTEC WBT202 CDC, matching personality using com.apple.driver.AppleUSBCDCACMControl, score: 50000, wildCard = 0
   13.570 [5]   AppleUSBEHCI[0x65ea000]::DoCreateEP, high speed ancestor hub:3, port:6
   13.570 [5]   AppleUSBEHCI[0x65ea000]: UIMCreateInterruptEndpoint endpoint does NOT exist (this is normal)
   13.570 [5]   AppleUSBEHCI[0x65ea000]::AllocateInterruptBandwidth - pED[0x68bd780] _speed(1)
   13.570 [3]   AppleUSBEHCITTInfo[0x682b400]::AllocatePeriodicBandwidth: pSPE[0x6f8ae40]
   13.570 [5]   AppleUSBEHCISplitPeriodicEndpoint[0x6f8ae40]::FindStartFrameAndStartTime - _FSBytesUsed (78)
   13.570 [5]   AppleUSBEHCISplitPeriodicEndpoint[0x6f8ae40]::FindStartFrameAndStartTime - using Start Time entry found - _startFrame(1) _startTime(36)
   13.570 [5]   AppleUSBEHCI[0x65ea000]::AllocateInterruptBandwidth - returning 0x0(success)
   13.571 [5]   AppleUSBHub[0x6805a00]::powerChangeDone - spawning _checkForActivePortsThread
   13.573 [5]   WINTEC WBT202 CDC[0xd335c00]::RegisterInterfaces  matching to interface = 0xd337700
   13.621 [5]   Finding driver for interface #1 of WINTEC WBT202 CDC, matching personality using com.apple.iokit.IOUSBUserClient, score: 104999, wildCard = 5
   13.636 [5]   Finding driver for interface #1 of WINTEC WBT202 CDC, matching personality using com.apple.driver.AppleUSBCDCACMData, score: 50000, wildCard = 0
   14.024 [5]   Finding driver for interface #1 of WINTEC WBT202 CDC, matching personality using com.apple.driver.AppleUSBCDCACMData, score: 50000, wildCard = 0
   14.075 [5]   Finding driver for interface #1 of WINTEC WBT202 CDC, matching personality using com.apple.iokit.IOUSBUserClient, score: 104999, wildCard = 5
   14.089 [5]   Finding driver for interface #1 of WINTEC WBT202 CDC, matching personality using com.apple.driver.AppleUSBCDCACMData, score: 50000, wildCard = 0
   14.090 [5]   Finding driver for interface #1 of WINTEC WBT202 CDC, matching personality using com.apple.driver.AppleUSBCDCECMData, score: 50000, wildCard = 0
   14.266 [5]   Finding driver for interface #1 of WINTEC WBT202 CDC, matching personality using com.apple.driver.AppleUSBCDCECMData, score: 50000, wildCard = 0
   14.315 [5]   Finding driver for interface #1 of WINTEC WBT202 CDC, matching personality using com.apple.iokit.IOUSBUserClient, score: 104999, wildCard = 5
   14.330 [5]   Finding driver for interface #1 of WINTEC WBT202 CDC, matching personality using com.apple.driver.AppleUSBCDCACMData, score: 50000, wildCard = 0
   14.330 [5]   Finding driver for interface #1 of WINTEC WBT202 CDC, matching personality using com.apple.driver.AppleUSBCDCECMData, score: 50000, wildCard = 0
   14.334 [5]   WINTEC WBT202 CDC[0xd335c00]::SetConfiguration  returning success

EDITAR:Se agregó el extracto del archivo de registro de console.app después de conectar el dispositivo.

16.02.11 09:05:55   kernel  0        0 AppleUSBCDCACMControl: getFunctionalDescriptors - Descriptors are incorrect, checking...
16.02.11 09:05:55   kernel  0        1 AppleUSBCDCACMData: start - Find CDC driver for data interface failed
¿Fue útil?

Solución

La respuesta que obtuve al publicar en la lista de correo USB de Apple es que Apple AppleUSBCDCACMData El controlador tiene un error que impide realizar su trabajo.Presenté un error en el radar de Apple y espero que lo solucionen pronto.

Otros consejos

Parece que el controlador de CDC del sistema está coincidiendo correctamente, lo que debería crear /dev/ttyusbmodem* IIRC, verificaría los registros del sistema para los mensajes de error en caso de que esto no funcione.

Si usted es un programador de controladores USB, debe descargar el código fuente para el proyecto AppleUSBCDCDRIGN, que contiene AppleUSBCDCDRIVER.KEXT, AppleUSBCDCACCCONTROL.KEXT, AppleUSBCCACMData.Kext, AppleUSBCDCECMCONTROL.KEXT, AppleUSBCDCETMData.kext.

Lo que puedo prometer es que, definitivamente podría resolver este problema al arreglar el código y construir su propio controlador. (Recuerde cambiar el nombre de la clase del conductor).

Lo que puedo confirmar es que, el AppleUSBCDCDRIVER está diseñado principalmente de acuerdo con la especificación de clase de dispositivo de comunicación estándar, e incluyendo la consideración del equipo de desarrollo de Apple, y este problema no debe ser un error.

En Mac OS, la coincidencia del conductor es principalmente de acuerdo con la información de información del controlador, al igual que .inf archivo en Windows.

Hay una solución para el error mencionado en AppleUSBCDCACMData.Debe asignar una interfaz al descriptor de administración de llamadas.Lo tienes establecido en 00.

Usted muestra:

Comm Class Call Management Functional Descriptor
Raw Descriptor (hex) 0000: 05 24 01 01 00

que carece y asignación.Usando las bibliotecas ATMEL USB, se vería así:

// Class-specific call management functional descriptor`
{ sizeof(CDCCallManagementDescriptor),
CDCGenericDescriptor_INTERFACE,
CDCGenericDescriptor_CALLMANAGEMENT,
CDCCallManagementDescriptor_SELFCALLMANAGEMENT,
1 // <--needed for MacOS
}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top