Domanda

Ho il problema seguente: Ho un dispositivo GPS WTTC WBT-202 che ha la possibilità di trasmettere i dati di posizione in diretta come dati NMEA su USB. All'interno di questo USB è solo un ponte USB a seriale che viene eseguito sotto Windows utilizzando il driver standard usbser.sys.

Il mio problema è ottenerlo a lavorare con Mac OS X.

L'hardware Il mouse GPS USB utilizza un chip ATMEL AT91SAM7S256 che è responsabile anche per l'interfaccia USB.

Il problema Sotto Mac OS X Non succede nulla. Non esiste un nuovo dispositivo di caratteri creato sotto /dev per rendere accessibile questo dispositivo.

In Windows viene utilizzato il driver standard usbser.sys. C'è solo un file .inf che punta il vendorido e productid a questo driver. Dall'utilizzo di Snoopy Pro su Windows (un software di sniffing USB) So che una volta che il dispositivo viene inizializzato correttamente, invia i dati come stringhe ASCII NMEA, che è tutto ciò che voglio.

Domanda 1 C'è un equivalente usbser.sys per Mac OS X? Se sì, potrebbe essere utilizzato un kext coreless per assicurarsi che la corrispondenza del driver si verifica correttamente?

Se questo non funzionerebbe, utilizzerei Iokit dallo spazio utente per inviare e ricevere messaggi sul dispositivo. Ho ancora domande su come funzionerà in dettaglio, perché non capisco completamente la documentazione di Apple. Se è collegato un dispositivo USB, si verifica un abbinamento del driver. Cosa succede se non viene trovato nessun driver.

Domanda 2 Potrebbe essere che allora è stato caricato un driver USB generico a cui sono in grado di "parlare con" nel kernel dallo spazio utente? Come faccio a sapere che il driver giusto è caricato?

Domanda 3 Ho visto che c'è stata una sessione di "Guida introduttiva con I / O Kit" in WWDC08 c'è un modo per accedere a questo video di sessione?

Ho aggiunto alcuni registri di USBProbe e l'estratto del registro I / O.

Qualsiasi commento su come potrei iniziare quale documentazione fornisce un tutorial decente sarebbe molto apprezzato.

Ho esaminato Mac OS X Internals - A System Internals di Amit Singh, la documentazione di Apple "Guida introduttiva con Kit I / O", "I / O Kit fondamentali Guida" e il Private USB Esempio di dati

Appendice

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
.

IO Registro di sistema

 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
.

Registro sonda USB sul dispositivo Allega

   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
.

Modifica: aggiunta il file di registro Estratto da console.app dopo il dispositivo Allega

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
.

È stato utile?

Soluzione

La risposta che ho ottenuto da Pubblicazione alla mailing list USB Apple è che il driver di Apple AppleUSBCDCACMData ha un bug in esso che impedisce di fare il suo lavoro.Ho archiviato un bug sul radar di Apple e spero che lo aggiustino presto.

Altri suggerimenti

Sembra che il driver CDC del sistema sia corrispondente correttamente, il che dovrebbe creare /dev/ttyusbmodem* IIRC, controllerei i registri di sistema per i messaggi di errore nel caso in cui questo non funziona.

Se U è un programmatore del driver USB, dovresti scaricare il codice sorgente per il progetto AppleUSBCDCDriver, che contiene AppleUSBCDCDriver.Kext, AppleUSBCDCDControl.kext, AppleUSBCDCacData.kext, AppleUSBCDCacData.kext, AppleUSBCDCecMControl.kext, AppleUSBCDCecMData.kext.

Quello che posso promettere è che, potresti assolutamente risolvere questo problema fissando il codice e costruisci il tuo driver. (Ricorda di cambiare il nome della classe del conducente.)

Quello che posso confermare è che, AppleUSBCDCDriver è progettato principalmente secondo le specifiche standard della classe del dispositivo di comunicazione e includono la considerazione del team di sviluppo Apple e questo problema non dovrebbe essere un bug.

On Mac OS, la corrispondenza del driver è principalmente secondo le informazioni .plist del conducente, proprio come il file .inf su Windows.

C'è una soluzione alternativa per il bug menzionato in AppleUSBCDCACMData.È necessario assegnare un'interfaccia al descrittore di gestione delle chiamate.L'hai impostato su 00.

Visualizza:

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

che manca e assegnazione.Usando le biblioteche Atmel USB, sembrerebbe questo:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top