MacBook Air 2012: ¿el hardware USB se quedó sin ranuras para dispositivos?

5

Tengo un i7 MBA 2012 de 11 ". Esta es una gran máquina pequeña, pero una cosa ha estado manejando, es absolutamente arriesgada al respecto ... Los puertos USB funcionan bien en su mayor parte, pero inevitablemente me conecto un dispositivo USB (podría ser cualquier cosa. Unidad de memoria USB, puerto serie USB, cable JTAG, dispositivo USB2 o USB3, no importa) y se encenderá (los LED parpadean, etc.) pero Mac no reconoce el dispositivo.

Viendo 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 es kaput. Desenchufar / volver a conectar el mismo dispositivo u otro mostrará mensajes similares. La única solución parece ser un reinicio. Poner la Mac en reposo no ayuda.

Tengo instalado el controlador de registro USB para intentar ayudar a diagnosticar el problema, pero no veo nada que pueda llamar una pistola humeante, y tratar de volver a cargar los kexts USB tampoco ayuda.

Este problema también estaba presente en mi antiguo MBA 2011, y el problema ha persistido de 10.7 a 10.9. Ambos puertos finalmente lo harán, lo que me hace creer que no se trata de un problema físico del puerto, ya que un puerto está en una placa de E / S separada y el otro está en la placa lógica principal. He intentado 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 hábil desde el punto de vista técnico, pero no necesariamente lo mejor 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 he hecho los reinicios habituales de NVRAM / SMC, arreglar permisos, etc ... no ayuda.

¿Alguien más se ha topado con esto? ¿Qué información puedo proporcionar para ayudar a diagnosticar el problema? ¿Alguien sabe de una manera de restablecer completamente el controlador XHCI en esta situación para intentar recuperarlo sin necesidad de reiniciar?

Editar 20140217

¡La adición de 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:

  1. No migré mi cuenta del MacBook Air anterior. Instalación nueva
  2. El problema ocurre con casi cualquier dispositivo. Llaves USB (¡sin cables aquí!), Adaptadores JTAG, unidades USB3
  3. El problema ocurre con o sin hubs USB2 o USB3
  4. Si el problema ocurre con un dispositivo en un concentrador, desconectar el concentrador y conectar el dispositivo directamente a la Mac no ayuda
  5. Si el problema ocurre sin un concentrador, conectar el dispositivo a un concentrador USB2 o USB3 no ayuda
  6. Una vez que se produce el problema, el cierre de sesión / el cambio a un usuario nuevo (diferente) no hace que el problema desaparezca para el nuevo usuario o el usuario anterior.

Desarrollo hardware y software electrónicos para la vida, incluidos dispositivos USB 3.0. Estoy familiarizado con los controladores de puerto raíz USB, pero no estoy familiarizado con el desarrollo de bajo nivel (kernel) 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 una bota limpia, las cosas funcionan muy bien. Desenchufe / vuelva a enchufar y aún podría funcionar bien. Desenchufar / volver a conectar eventualmente causará que el problema se muestre, y en ese punto el CUALQUIER CUALQUIER dispositivo USB en ese puerto no funcionará. Reinicia y las cosas funcionan bien otra vez.

    
pregunta akohlsmith 12.02.2014 - 18:20

3 respuestas

3

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 127 dispositivos USB con un solo controlador, ya que eso es lo que dice todo el material de marketing. Pero en realidad eso solo es cierto en una configuración muy específica y probablemente principalmente teórica. Los dispositivos USB admiten, como máximo, cinco conexiones en una jerarquía de estrellas escalonadas. Los concentradores no son dispositivos de acceso directo, por lo que cuentan para este número, como lo hacen los componentes internos que usan el bus USB y los dispositivos que usan más de un perfil de dispositivo (incluso si es solo una conexión física ).

¿Cómo podría saber que no tienes un problema con tu hardware?
¡Porque tengo la misma máquina y pude reproducir el error!

Sielproblemapareceseresporádico,esprobablequetambiénteencuentresconunpardeotrosproblemas:

  • Conjuntosdechipsincompatiblesymaliciososenlosconcentradores,yaqueelestándarnotieneaplicación.

  • Energíainsuficiente:lasvelocidadesmásrápidasdeUSBrequierenmásenergíaquelasmáslentas.
    Siundispositivotienelacapacidadparavolveraunavelocidadmáslenta(enlugardeerrordebidoaunapotenciainsuficiente),lohará,llevandocualquiercosaenelmismobusconél.

Sinoquieresvolveraveresteerror:

  • DesechetodoslosconcentradoresycablesUSBqueestéutilizandoactualmente.Muyenserio.
  • Descartelos$40-$80paradosacuatrode estos , además de muchos de these que necesita.
    La mayoría de los cables USB 3 deberían estar bien.
  • Especialmente teniendo en cuenta que todos los dispositivos que mencionas son de alta velocidad y no muy tolerante a los errores, no debe nunca confiar en la alimentación del bus y asegurarse de que (Sí, una verruga de la pared para cada concentrador y . Excepciones: teclados, ratones, etc.

  • Este último punto es especialmente cierto en el MBA de 11 ', que se entrega con un mísero adaptador de corriente de 45W, y la computadora básicamente necesita todo eso, incluso con solo una carga de CPU moderada. Si tiene este efectivo, considere comprar un adaptador de 60W o 85W.

  • En la práctica, max, los dispositivos / concentrador conectados en un único concentrador son 2 + otro concentrador.
  • 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 o al segundo concentrador!
    (Sin buscar en el Perfil de Sistema).

  • En caso de duda, prefiera el puerto USB en la placa lógica (derecha). Existe una posibilidad remota de que haya interferencias en la placa de E / S. Afortunadamente, ese no es costoso parte .

Sigue esos pasos y básicamente garantizo que este problema desaparecerá.

Editar: la perspectiva de desarrollo del 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 chipset QS77 es compatible con 4, y hay 2 en uso dentro de la máquina).

Para "reiniciar el controlador XHCI" (técnicamente es un problema del núcleo, 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 que:

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 estaba suponiendo necesariamente que estuvieras usando un concentrador defectuoso, sino que es posible que necesites obtener uno bueno , porque el concentrador raíz tiene demasiadas conexiones.

Más allá de eso, sin embargo, creo que estamos entrando en el ámbito de una pregunta wiki con el efecto de:

  

¿Cómo depuro el kernel y los controladores de dispositivo en Mac OS X?

Como ese es el problema, no tiene nada que ver con el MacBook Air per se o incluso necesariamente USB.

Es posible que intente escribir uno (no es realmente mi experiencia, pero lo he hecho varias veces), pero probablemente serán unos días para eso. Mientras tanto, eche un vistazo a:

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

kextstat | grep USB

La IOUSBFamily .

respondido por el Geoff Nixon 17.02.2014 - 03:39
1

¿Estaría seguro si asumiera que migró el sistema operativo de su viejo Mac al nuevo MBA y que actualizó el sistema operativo en lugar de hacer una reinstalación limpia? O quizás usuarios o aplicaciones migrados.

Sospecho un problema del sistema operativo de nivel extremadamente bajo. Si tiene una unidad de disco externa, instale un sistema operativo nuevo e instálela por unos días y vea si el problema desaparece. Si lo hace, realice una instalación limpia en su MBA y 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 tengas alguna aplicación desagradable o dañada que esté causando el problema, así que vuelve a agregarlas lentamente y siempre desde nuevos archivos de instalación.

    
respondido por el Tony Williams 17.02.2014 - 01:50
1

definitivamente software.

solución fácil sería:

haga una copia de seguridad de time machine y luego format su disco duro y luego vuelva a instalar su sistema operativo.

cuando termine, cree 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, esto seguramente solucionará tu problema permanentemente

( diskmaker x ) ¡una gran utilidad para crear una unidad Mavericks de arranque para que no tengas que descargar Mountain Lion primero! Si sigue este enfoque, utilice alt en lugar de cmd + R

    
respondido por el Macmaniman 17.02.2014 - 02:56

Lea otras preguntas en las etiquetas