Tengo un MBA i7 de 11" de 2012. Esta es una gran máquina pequeña, pero una cosa ha sido absolutamente loca por eso... Los puertos USB funcionan bien en su mayor parte, pero inevitablemente conectaré un dispositivo USB (podría ser cualquier cosa. Memoria USB, puerto serie USB, cable JTAG, dispositivo USB2 o USB3, no importa) y se encenderá (los LED parpadean, etc.) pero la Mac no reconoce el dispositivo.
Mirando dmesg, veo esto:
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
En este punto, el puerto USB está kaput. Desconectar/volver a conectar el mismo dispositivo u otro mostrará mensajes similares. La única solución parece ser un reinicio. Poner la Mac a dormir no ayuda.
Tengo instalado el controlador de registro USB para tratar de ayudar a diagnosticar el problema, pero no veo nada que pueda llamar una prueba irrefutable, y tratar de recargar los kexts USB tampoco ayuda.
Este problema también estaba presente en mi antiguo MBA de 2011, y el problema ha persistido de 10.7 a 10.9. Ambos puertos eventualmente harán esto, lo que me hace creer que no es un problema de puerto físico ya que un puerto está en una placa de E/S separada y el otro está en la placa lógica principal. Intenté conectar el dispositivo a través de un concentrador externo USB2 y USB3 (probé ambos) y el problema eventualmente ocurrirá también en estas situaciones.
Soy bastante experto técnicamente, pero no necesariamente en mi mejor momento en OSX. Puedo recopilar más información si alguien me ayudara a determinar qué datos son apropiados para ayudar a depurar el problema. También realicé los reinicios habituales de NVRAM/SMC, arregle los permisos, etc. No ayuda.
¿Se ha encontrado alguien mas con esto? ¿Qué información podría proporcionar para ayudar a diagnosticar el problema? ¿Alguien sabe de una manera de restablecer completamente el controlador XHCI en esta situación para intentar recuperarse sin necesidad de reiniciar?
Editar 20140217
¡Agregar la recompensa ciertamente le dio a esta pregunta la atención que sentí que necesitaba! Gracias por todas las respuestas hasta ahora, pero creo que hay algunos conceptos erróneos importantes que me gustaría abordar:
Me gano la vida desarrollando hardware y software electrónico, incluidos dispositivos USB 3.0. Estoy familiarizado con los controladores del puerto raíz USB, pero no del todo familiarizado con el desarrollo de bajo nivel (núcleo) en OSX.
Estoy bastante seguro de que se trata de un problema de controlador de dispositivo simplemente debido a la naturaleza de cómo se manifiesta. Desde un arranque limpio, las cosas funcionan muy bien. Desenchufe / vuelva a enchufar y aún podría funcionar muy bien. Desconectar/volver a conectar eventualmente hará que aparezca el problema y, en ese momento, CUALQUIER dispositivo USB en ese puerto no funcionará. Reinicie y las cosas funcionan muy bien de nuevo.
Buenas noticias: no tienes ningún problema con tu hardware. O software, permisos, etc.
El problema es, lo creas o no, exactamente lo que dice el mensaje de error:
the USB hardware ran out of device slots
Probablemente tenga la impresión de que se pueden usar unos 127 dispositivos USB con un solo controlador, ya que eso es lo que dice todo el material de marketing. Pero eso en realidad solo es cierto en una única configuración muy específica y probablemente en su mayoría teórica. Los dispositivos USB admiten, como máximo, cinco conexiones en una jerarquía de estrellas escalonadas. Los concentradores no son dispositivos de paso, por lo que cuentan para este número, al igual que cualquier componente interno que use el bus USB y cualquier dispositivo que use más de un perfil de dispositivo (incluso si se trata de una única conexión física ).
Sin embargo, ¿cómo podría saber que no tienes un problema con tu hardware?
¡Por qué, porque tengo la misma máquina y pude reproducir el error!
Si el problema parece ser esporádico, probablemente también te encuentres con otros problemas:
Conjuntos de chips incompatibles y de mala calidad en los concentradores, ya que el estándar no se aplica.
Energía insuficiente: las velocidades USB más rápidas requieren más energía que las más lentas.
Si un dispositivo tiene la capacidad de retroceder a una velocidad más lenta (en lugar de un error debido a una potencia insuficiente), lo hará, llevándose consigo cualquier cosa en el mismo bus.
Si no desea volver a ver este error:
Deseche todos los concentradores y cables USB que esté utilizando actualmente. Muy enserio.
Deje $ 40- $ 80 por dos o cuatro de estos , más todos los que necesite.
La mayoría de los cables USB 3 deberían estar bien.
Especialmente teniendo en cuenta que todos los dispositivos que menciona son de alta velocidad y no muy tolerantes a errores, nunca debe confiar en la alimentación del bus y asegurarse de que (Sí, una verruga de pared para cada concentrador y dispositivo. Excepciones: teclados, ratones, etc.
Este último punto es especialmente cierto en el MBA de 11', que viene con un mísero adaptador de corriente de 45 W, y la computadora básicamente necesita todo eso incluso con una carga de CPU moderada. Si tiene este efectivo, considere comprar un adaptador de 60W o 85W.
En la práctica, el máximo de dispositivos/hub conectados en un solo hub es 2 + otro hub.
Utilice siempre concentradores de 4 puertos, no de 7 puertos. Los concentradores de 7 puertos son solo dos controladores en una cadena.
¡Pero no sabe qué puertos se conectan al primer concentrador o al segundo!
(Sin mirar en System Profiler).
En caso de duda, prefiera el puerto USB en la placa lógica (derecha). Existe una posibilidad remota de que haya interferencia en la placa de E/S. Afortunadamente, esa no es una parte costosa .
Siga esos pasos y básicamente le garantizo que este problema desaparecerá.
Editar: la perspectiva de desarrollo de hardware/kernel
Para responder a la aclaración de que esta es una pregunta del desarrollador.
Entonces: el fragmento de registro publicado indica lo que abordé anteriormente: demasiados dispositivos USB 3.0 conectados al concentrador raíz XHCI.
(El conjunto de chips QS77 admite 4 y hay 2 en uso dentro de la máquina).
Para "restablecer el controlador XHCI" (técnicamente es un problema del kernel, no del controlador):
sudo kextunload -b com.apple.driver.AppleUSBXHCI
sudo kextload -b com.apple.driver.AppleUSBXHCI
sin embargo, eso no va a hacer nada si esto también sucede con los dispositivos USB 2, en cuyo caso es:
sudo kextunload -b com.apple.driver.AppleUSBEHCI
sudo kextload -b com.apple.driver.AppleUSBEHCI
y si son ambos, bueno, ninguno de esos.
Cuando digo que puedo reproducir el problema, quiero decir que si sobrecargo el bus XHCI como en el fragmento de registro, aparece el mismo mensaje de error. Y no asumí necesariamente que estabas usando un concentrador malo, sino que también podrías necesitar uno bueno , porque el concentrador raíz tiene demasiadas conexiones.
Sin embargo, más allá de eso, creo que estamos entrando en el ámbito de una pregunta wiki en el sentido de:
¿Cómo depuro el kernel y los controladores de dispositivos en Mac OS X?
Como ese es más el problema, nada que ver con el MacBook Air per se o incluso necesariamente con USB.
Podría intentar escribir uno (no es realmente mi experiencia, pero lo he hecho varias veces), pero probablemente tarde unos días en hacerlo. Mientras tanto, echa un vistazo a:
man 8 kext_logging
ysudo sysctl -w debug.kextlog=0xlogspec
kextstat | grep USB
La fuente IOUSBFamily .
system.log
para decirlo realmente.¿Estaría seguro asumiendo que migró el sistema operativo de su vieja Mac al nuevo MBA y que actualizó el sistema operativo en lugar de realizar una reinstalación limpia? O quizás usuarios o aplicaciones migrados.
Sospecho que es un problema del sistema operativo de nivel extremadamente bajo. Si tiene una unidad externa, instale un nuevo sistema operativo y arranque desde allí durante unos días y vea si el problema desaparece. Si es así, realice una instalación limpia en su MBA y no migre nada , copie sus datos e instale solo las aplicaciones más necesarias desde los medios de instalación en lugar de su antiguo sistema operativo. Bien podría ser que tenga alguna aplicación desagradable o rota que esté causando el problema, así que vuelva a agregarla lentamente y siempre desde archivos de instalación nuevos.
Definitivamente software.
solución fácil sería:
haga una copia de seguridad de la máquina del tiempo, luego formatee su disco duro y luego reinstale su sistema operativo.
cuando termine crea una nueva cuenta
cuando la cuenta esté configurada, inicie la herramienta de migración y seleccione su carpeta de inicio, e intente omitir cualquier cosa sin importancia
hecho, es casi seguro que esto debería solucionar su problema de forma permanente
( Diskmaker x ) ¡una gran utilidad para crear una unidad de disco de arranque de Mavericks para que no tengas que descargar Mountain Lion primero! si va con este enfoque, use alt en lugar de cmd + R
Usuario2910293