2012 MacBook Air - L'hardware USB ha esaurito gli slot del dispositivo?

5

Ho un MBA i7 11 "del 2012. Questa è una piccola piccola macchina, ma una cosa è stata la guida assolutamente irragionevole ... Le porte USB funzionano bene per la maggior parte, ma inevitabilmente inserirò un dispositivo USB (potrebbe essere qualsiasi cosa: pen drive, porta seriale USB, cavo JTAG, dispositivo USB2 o USB3, non importa) e si accenderà (i LED lampeggiano, ecc.) ma il dispositivo non viene riconosciuto dal Mac.

Guardando dmesg, vedo questo:

USBF:    126826.226    AppleUSBXHCI[0xffffff80d5636000]::WaitForCMD (Enable Slot Command) - Command failed: -1009 (num interrupts: 93582187, num primary: 46791094, inactive:0, unavailable:0, is controller available:1)
USBF:    126826.226    AppleUSBXHCI[0xffffff80d5636000]::PrintInterrupter WaitForCMD IRQ:0 - IMAN: 00000002 IMOD: 000700a0 ERDP: 002043d0
USBF:    126826.226    AppleUSBXHCI[0xffffff80d5636000]::UIMCreateControlEndpoint 2 - Run out of device slots, returning: e0004045
USBF:    126826.226    AppleUSBHubPort[0xffffff8015ddce00]::DoConfigureDeviceZero  Port 1 of hub at 0x14000000.  Cannot create USB device (kIOUSBDeviceCountExceeded)
The USB stack is not able to enumerate the device at Port 1 of hub at 0x14000000 because the USB hardware ran out of device slots

A questo punto la porta USB è kaput. Scollegare / ricollegare lo stesso dispositivo o un altro mostrerà messaggi simili. L'unica soluzione sembra essere un riavvio. Mettere il Mac a dormire non aiuta.

Ho installato il driver di registrazione USB per provare a diagnosticare il problema, ma non vedo nulla che potrei chiamare una pistola fumante, e provare a ricaricare la USB kexts non aiuta neanche.

Questo problema era presente anche sul mio vecchio MBA 2011 e il problema è persistito dal 10.7 al 10.9. Entrambe le porte finiranno per fare ciò, il che mi fa pensare che non si tratta di un problema di porta fisica poiché una porta si trova su una scheda I / O separata e l'altra sulla scheda logica principale. Ho provato a collegare il dispositivo tramite un hub USB2 e USB3 esterno (provato entrambi) e il problema si verificherà anche in queste situazioni.

Sono abbastanza esperto dal punto di vista tecnico, ma non necessariamente al meglio su OSX. Posso raccogliere maggiori informazioni se qualcuno mi aiuterà a determinare quali dati sono appropriati per aiutare a risolvere il problema. Ho anche eseguito le normali reimpostazioni NVRAM / SMC, correggere i permessi, ecc ... non aiuta.

Qualcun altro ha incontrato questo? Quali informazioni posso fornire per aiutare a diagnosticare il problema? Qualcuno sa come ripristinare completamente il controller XHCI in questa situazione per tentare di recuperare senza il riavvio?

Modifica 20140217

Aggiungendo la grazia certamente ha ottenuto questa domanda l'attenzione che sentivo necessaria! Grazie per tutte le risposte finora, ma penso che ci siano alcune idee sbagliate importanti che vorrei affrontare:

  1. Non ho migrato il mio account dal vecchio MacBook Air. Installazione nuova
  2. Il problema si verifica praticamente con qualsiasi dispositivo. Chiavi USB (nessun cavo qui!), Adattatori JTAG, unità USB3
  3. Il problema si verifica con o senza hub USB2 o USB3
  4. Se il problema si verifica con un dispositivo su un hub, scollegare l'hub e collegare il dispositivo direttamente al Mac non aiuta
  5. Se il problema si verifica senza un hub, non è possibile collegare il dispositivo a un hub USB2 o USB3
  6. Una volta che si verifica il problema, la disconnessione / passaggio a un altro (nuovo) utente non risolve il problema per il nuovo utente o il vecchio utente.

Sviluppo hardware e software elettronici per vivere, inclusi dispositivi USB 3.0. Conosco i driver della porta USB di root, ma non conosco lo sviluppo di basso livello (kernel) su OSX.

Sono abbastanza sicuro che si tratta di un problema con il driver del dispositivo semplicemente a causa della natura di come si manifesta. Da uno stivale pulito, le cose funzionano alla grande. Scollegare / ricollegare e potrebbe ancora funzionare alla grande. Unplug / replug alla fine farà sì che il problema si verifichi e a quel punto ANY dispositivo USB in quella porta non funzionerà. Riavvia e le cose funzionano di nuovo bene.

    
posta akohlsmith 12.02.2014 - 18:20
fonte

3 risposte

3

Buone notizie: non hai problemi con il tuo hardware. O software, permessi, ecc.

Il problema è, credici o no, esattamente cosa dice il messaggio di errore:

the USB hardware ran out of device slots

Probabilmente hai l'impressione che sia possibile utilizzare qualcosa come 127 dispositivi USB con un singolo controller, poiché è quello che dice tutto il materiale di marketing. Ma questo è vero solo in una singola configurazione molto specifica e probabilmente in gran parte teorica. I dispositivi USB supportano, al massimo, cinque connessioni in una gerarchia a stella a più livelli. Gli hub non sono dispositivi passanti, quindi contano su questo numero, come qualsiasi componente interno che utilizza il bus USB e qualsiasi dispositivo che utilizza più di un profilo di dispositivo (anche se si tratta solo di una singola connessione fisica ).

Come potrei sapere che non hai problemi con il tuo hardware?
Perché, perché ho la stessa macchina, e sono riuscito a riprodurre l'errore!

Seilproblemasembraesseresporadico,probabilmentestairiscontrandoancheunpaiodialtriproblemi:

  • Chipsetscadentieincompatibilineglihub,poichélostandardnonhaalcunaapplicazione.

  • Potenzainsufficiente:piùvelocevelocitàrichiedepiùenergiadiquellapiùlenta.
    Seundispositivohal'abilitàditornareaunavelocitàinferiore(piuttostocheunerroreacausadialimentazioneinsufficiente),lofarà,prendendoqualsiasicosasullostessobusconesso.

Senonvuoipiùvederequestoerrore:

  • EliminatuttiglihubeicaviUSBchestaiutilizzando.Moltoserio.
  • Rilasciai$40-$80perdueaquattrodi questi , più tuttavia molti di questo ti serve.
    La maggior parte dei cavi USB 3 dovrebbe andare bene.
  • Soprattutto considerando tutti i dispositivi che menzioni sono ad alta velocità e non molto tollerante agli errori, dovresti non fare affidamento sulla potenza del bus, e assicurati che (Yep, una verruca a muro per ogni dispositivo hub e . Eccezioni: tastiere, mouse, ecc.

  • Quest'ultimo punto è particolarmente vero sull'MBA 11 ', che viene fornito con un misero alimentatore da 45 W, e il computer ha praticamente bisogno di tutto questo anche con un carico moderato della CPU. Se hai questo denaro, considera l'acquisto di un adattatore da 60W o 85W.

  • In pratica, i dispositivi / hub collegati su un singolo hub sono 2 + un altro hub.
  • Usa sempre hub a 4 porte, non a 7 porte. Gli hub a 7 porte sono solo due controller in una catena.
    Ma non sai quali porte si connettono al primo hub o al secondo!
    (Senza guardare in System Profiler.)

  • In caso di dubbi, preferisci la porta USB sulla scheda logica (a destra). C'è una possibilità remota che ci siano interferenze nella scheda I / O. Fortunatamente, non è costoso parte .

Segui questi passaggi e sostanzialmente garantisco che questo problema andrà via.

Modifica: la prospettiva di sviluppo dell'hardware / del kernel

Per rispondere al chiarimento che si tratta di una domanda sviluppatore.

Quindi: il frammento di log inviato indica ciò che ho indicato sopra: troppi dispositivi USB 3.0 collegati all'hub XHCI root.

(Il chipset QS77 supporta 4 e ce ne sono 2 in uso all'interno della macchina.)

Per "resettare il controller XHCI" (tecnicamente è un kernel, non un controller, problema):

sudo kextunload -b com.apple.driver.AppleUSBXHCI
sudo kextload -b com.apple.driver.AppleUSBXHCI

tuttavia, questo non farà nulla se questo accade anche con i dispositivi USB 2, nel qual caso il suo:

sudo kextunload -b com.apple.driver.AppleUSBEHCI
sudo kextload -b com.apple.driver.AppleUSBEHCI

e se entrambi, beh, nessuno di questi.

Quando dico che posso riprodurre il problema, voglio dire che se sovraccarico il bus XHCI come nel frammento di log, ottengo lo stesso messaggio di errore. E non pensavo che stavi usando un hub sbagliato, ma anche potresti averne bisogno , perché l'hub root ha troppe connessioni.

Oltre a ciò, tuttavia, penso che stiamo entrando nel regno di una domanda wiki con l'effetto di:

How do I debug the kernel and device drivers on Mac OS X?

Poiché questo è più il problema, niente a che fare con MacBook Air di per sé o persino USB.

Potrei cimentarmi nella scrittura di uno (non proprio la mia esperienza ma l'ho fatto un paio di volte) Ma ci vorranno probabilmente alcuni giorni per farlo. Nel frattempo, dai un'occhiata a:

man 8 kext_logging e sudo sysctl -w debug.kextlog=0xlogspec

kextstat | grep USB

L'origine IOUSBFamily .

risposta data 17.02.2014 - 03:39
fonte
1

Sarei sicuro assumendo che hai migrato il sistema operativo dal tuo vecchio Mac al nuovo MBA e che hai aggiornato il sistema operativo anziché effettuare una reinstallazione pulita? O forse utenti o app migrati.

Sospetto un problema con il sistema operativo a livelli estremamente bassi. Se si dispone di un'unità esterna, installare una nuova installazione del sistema operativo e avviare da quella per alcuni giorni per vedere se il problema scompare. In questo caso, esegui un'installazione pulita sul tuo MBA e esegui la migrazione di niente , copia i tuoi dati e installa solo le app più necessarie dal supporto di installazione anziché dal tuo vecchio sistema operativo. Potrebbe essere che tu abbia qualche app sgradevole o danneggiata che sta causando il problema, quindi aggiungili di nuovo lentamente e sempre da file di installazione nuovi di zecca.

    
risposta data 17.02.2014 - 01:50
fonte
1

sicuramente un software.

la soluzione più facile sarebbe:

fai una macchina del tempo backup poi format sul disco rigido e quindi per reinstallare il sistema operativo.

quando questo è fatto crea un nuovo account

quando l'account è impostato, avvia lo strumento di migrazione e seleziona la tua cartella Inizio e prova a saltare qualsiasi cosa non importante

fatto, questo dovrebbe quasi certamente risolvere il tuo problema in modo permanente

( diskmaker x ) una grande utility per creare un disco di avvio mavericks in modo da non dover scaricare prima leoni di montagna! se vai con questo approccio usa alt invece di cmd + R

    
risposta data 17.02.2014 - 02:56
fonte

Leggi altre domande sui tag