Pregunta:
2012 MacBook Air - ¿El hardware USB se quedó sin ranuras para dispositivos?
akohlsmith
2014-02-12 23:20:05 UTC
view on stackexchange narkive permalink

Tengo un MBA i7 de 11 "de 2012. Esta es una gran máquina pequeña, pero una cosa ha sido ser absolutamente loca al respecto ... Los puertos USB funcionan bien en su mayor parte, pero inevitablemente lo enchufaré 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 el Mac no reconoce el dispositivo.

Mirando dmesg, veo esto:

  USBF: 126826.226 AppleUSBXHCI [0xffffff80d5636000] :: WaitForCMD (Habilitar comando de ranura) - Error de comando: -1009 (número de interrupciones: 93582187, núm principal: 46791094, inactivo: 0, no disponible: 0, controlador está disponible: 1) USBF: 126826.226 AppleUSBXHCI [0xffffff80d5636000] :: PrintInterrupter WaitForCMD IRQ: 0 - IMAN: 00000002 IMOD: 000700a0 ERDP: 002043USB68XHBCI80 [AppleUSBXHCI] ] :: UIMCreateControlEndpoint 2 - Se agotaron las ranuras del dispositivo, devolviendo: e0004045USBF: 126826.226 AppleUSBHubPort [0xffffff8015ddce00] :: DoConfigure DeviceZero Puerto 1 del concentrador en 0x14000000. No se puede crear un dispositivo USB (kIOUSBDeviceCountExceeded) La pila USB no puede enumerar el dispositivo en el puerto 1 del concentrador en 0x14000000 porque el hardware USB se quedó sin ranuras para dispositivos  

En este punto, el puerto USB es kaput. Al desconectar / volver a conectar el mismo dispositivo u otro, se mostrarán mensajes similares. La única solución parece ser reiniciar. Poner la Mac en suspensión no ayuda.

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

Este problema también estaba presente en mi antiguo MBA de 2011, y 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 USB2 y USB3 externo (probé ambos) y el problema eventualmente también ocurrirá en estas situaciones.

Soy bastante experto en técnica, pero no necesariamente en mi 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 hice los restablecimientos habituales de NVRAM / SMC, corrigí permisos, etc ... no ayuda.

¿Alguien más se ha encontrado 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 recuperarse sin necesidad de reiniciar?

Editar 20140217

Añadiendo la recompensa ¡Sin duda obtuve esta pregunta la atención que sentía 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 de la MacBook Air anterior. Instalación nueva
  2. El problema ocurre con prácticamente cualquier dispositivo. Llaves USB (¡aquí no hay cables!), Adaptadores JTAG, unidades USB3
  3. El problema ocurre con o sin concentradores USB2 o USB3
  4. Si el problema ocurre con un dispositivo en un concentrador, desconecte 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 el problema ocurre, cerrar sesión / cambiar a un usuario diferente (nuevo) no hace que el problema desaparezca para el nuevo usuario o para el antiguo.

Me gano la vida desarrollando hardware y software electrónicos, incluidos dispositivos USB 3.0. Estoy familiarizado con los controladores del puerto raíz USB, pero no estoy familiarizado en absoluto con el desarrollo de bajo nivel (kernel) en OSX.

Estoy bastante seguro de que este es un problema de controlador de dispositivo simplemente debido a la naturaleza de cómo se manifiesta. Desde una bota limpia, todo funciona muy bien. Desenchufe / vuelva a enchufar y aún podría funcionar muy bien. Desenchufar / volver a enchufar eventualmente hará que el problema aparezca y, en ese momento, CUALQUIER dispositivo USB en ese puerto no funcionará. Reinicie y las cosas volverán a funcionar bien.

Esto suena como un caso típico de una placa lógica defectuosa. Si está fuera de su período de garantía, tendrá mala suerte, ya que las placas lógicas cuestan más de 800 dólares. Siempre puede intentar concertar una cita en un Genius Bar y dejar que realicen algunos diagnósticos. En su mayoría, van más allá de su prueba de hardware normal. ¡Buena suerte!
Tres respuestas:
Geoff Nixon
2014-02-17 08:39:46 UTC
view on stackexchange narkive permalink

Buenas noticias: no tiene ningún problema con su hardware. O software, permisos, etc.

El problema es, lo crea o no, exactamente lo que dice el mensaje de error:

el hardware USB se quedó sin ranuras para dispositivos

Probablemente tenga la impresión de que se pueden usar algo así como 127 dispositivos USB con un solo controlador, ya que eso es lo que significa todo el material de marketing dice. 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 a través, 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 es solo una única conexión física ).

¿Cómo podría saber que no tienes ningún problema con tu hardware?
¿Por qué? Porque tengo la misma máquina y pude reproducir el error!

screenshot


Si el problema parece ser esporádico, probablemente se esté encontrando con un par de problemas más. también:

  • Chipsets de mala calidad e incompatibles en los hubs, ya que el estándar no tiene aplicación.

  • Energía insuficiente: USB más rápido las velocidades requieren más potencia que las más lentas.
    Si un dispositivo tiene la capacidad de retroceder a una velocidad más lenta (en lugar de errar debido a una potencia insuficiente), lo hará , llevando cualquier cosa en el mismo autobús.

Si no desea volver a ver este error:

  • Deseche todos los concentradores y cables USB y que está utilizando actualmente. Muy en serio.

  • Deje caer los $ 40- $ 80 por dos o cuatro de estos, además de la cantidad de estos que necesite .
    La mayoría de los cables USB 3 deberían estar bien.

  • Especialmente considerando que todos los dispositivos que mencionas son de alta velocidad y no muy tolerante 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.

  • Ese último punto es especialmente cierto en el MBA de 11 ', que se envía 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 dinero, considere comprar un adaptador de 60 W o 85 W.

  • En la práctica, el número máximo de dispositivos / concentradores conectados en un solo concentrador es 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 usted no ' ¡No sé 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 lógica placa (derecha). Existe una posibilidad remota de que haya interferencia en la placa de E / S. Afortunadamente, esa no es una pieza costosa.

Siga esos pasos y básicamente garantizo este problema desaparecerá.


Editar: la perspectiva de desarrollo de hardware / kernel

Para responder a la aclaración de que esto es una pregunta del desarrollador.

Entonces: El fragmento de registro publicado indica lo que mencioné anteriormente: demasiados dispositivos USB 3.0 conectados al concentrador raíz XHCI.

(El QS77 el chipset 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 para hacer algo si esto también está sucediendo con 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, me refiero a que si sobrecargo el bus XHCI como en el fragmento de registro, aparece el mismo mensaje de error. Y no estaba asumiendo necesariamente que estuvieras usando un concentrador defectuoso; igualmente, es posible que necesites obtener uno bueno , porque el concentrador raíz tiene demasiadas conexiones.

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

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

Como ese es más el problema, nada que ver con el MacBook Air en sí o incluso necesariamente con USB.

Podría intentar escribir uno (no es realmente mi experiencia, pero yo ' 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 fuente de IOUSBFamily.


Gracias por su respuesta detallada, pero creo que está asumiendo que el problema ocurre cuando utilizo concentradores externos / concentradores de cadena juntos. Actualicé mi pregunta para incluir más detalles, en particular el hecho de que las unidades de memoria USB (sin cables) y los equipos de baja velocidad y con alimentación externa (adaptadores JTAG / serie, etc.) aún presentan el problema. Excelente captura de la fuente de alimentación, pero tengo el adaptador más grande (85W). El problema ocurre ya sea que esté enchufado a la alimentación de CA o no.
Otra cosa ... mencionas que puedes recrear el problema. ¿Cómo lo haces? ¿Necesita reiniciar para borrar el error?
Ok, sí, esto fue ** definitivamente ** escrito para un usuario avanzado / manipulador, no un desarrollador.
"El fragmento de registro publicado indica lo que mencioné anteriormente: demasiados dispositivos USB 3.0 conectados al concentrador raíz XHCI". - ¿No indica esto un error de controlador? No tengo más de un dispositivo conectado al puerto (y no es un concentrador) ... ¿el controlador no se está olvidando de limpiar después de sí mismo?
Ciertamente es posible; Honestamente, a Apple no le importa mucho la compatibilidad con dispositivos de terceros. Aunque no estoy lo suficientemente familiarizado (probablemente lo sabría mejor) con cómo se supone que funciona la conexión en caliente de USB en comparación con hacer que las ranuras vuelvan a estar disponibles. Lo sé, que (por ejemplo) se supone que los dispositivos de almacenamiento envían un mensaje de desmontaje (debido a HFS, en Windows / FAT / NTFS esto no es necesario) o es posible que el sistema no cancele el registro del dispositivo (se ve el mensaje "desconectado incorrectamente" si no 'expulsa'). Pero tendría que ver mucho más de cuatro líneas de `system.log` para decirlo realmente.
Recuerde también dos perfiles = dos dispositivos. Probablemente no sea su problema exacto, pero una cámara con una ranura para tarjeta SD utilizará todas las ranuras XHCI disponibles y debería registrar al menos una como EHCI para evitar esto. Además: ¿es posible que tenga bluetooth o su cámara se 'despierte' intermitentemente? Estos están en el bus USB.
También tendría mucha curiosidad por ver cuál es el mensaje de error cuando solo está usando EHCI. Porque no puede haber visto este problema ** exacto ** en su MBA 2011: no tiene USB 3.
La descarga de los kexts (en un script de shell, ya que el teclado es un dispositivo USB) provoca un pánico inmediato y se reinicia. Su respuesta no resuelve el problema, pero proporciona información muy valiosa y algunas direcciones a seguir para resolverlo. Gracias, acepto esta respuesta y te otorgo la recompensa.
:) Lo siento, no pude resolverlo, ¡mucha suerte!
Tony Williams
2014-02-17 06:50:22 UTC
view on stackexchange narkive permalink

¿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 se trata de un problema de 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 agréguela lentamente y siempre desde archivos de instalación nuevos.

He editado mi pregunta para responder a sus suposiciones. Desafortunadamente no, esta Mac fue una instalación nueva, no una migración de mi MBA anterior. No había nada copiado, ni configuraciones ni aplicaciones.
Macmaniman
2014-02-17 07:56:01 UTC
view on stackexchange narkive permalink

definitivamente software.

Una solución fácil sería:

hacer una copia de seguridad de máquina del tiempo, luego formatear su disco duro y luego reinstalar 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, es casi seguro que esto debería solucionar su problema de forma permanente

( diskmaker x) una gran utilidad para crear una unidad de arranque mavericks para que no tenga que descargar Mountain Lion primero. si va con este enfoque, use alt en lugar de cmd + R

Agradezco que se haya tomado el tiempo de responder, pero me gustaría saber si está seguro de que se trata de un problema de software (sospecho que también lo es). Además, si se trata de un problema de software, ¿hay alguna manera fácil de reinstalar solo la subsección específica (controladores XHCI?) Que estaría causando el problema?
la forma en que estoy seguro es que la tecnología a menudo no es complicada, si un reinicio parece solucionar el problema por un tiempo, entonces ciertamente no es software, especialmente si lo cree usted mismo. Tampoco hay problema con respecto a mi tiempo, ¡estoy feliz de ayudar! manera fácil de volver a instalar la subsección específica ... Me temo que no lo sé, sin embargo, reinstalar todo es tan fácil que ese es casi mi enfoque, hecho bien, y tomaría 30 minutos reinstalarlo y luego simplemente transferir sus datos atrás, solo asegúrese de utilizar el enfoque de la herramienta de migración


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...