5 votes

2012 Macbook Air - Le matériel USB n'a plus d'emplacement ?

J'ai un MBA 2012 11" i7. C'est une excellente petite machine, mais une chose me rend complètement fou... Les ports USB fonctionnent bien la plupart du temps, mais inévitablement, je branche un périphérique USB (n'importe quoi. Une clé USB, un port série USB, un câble JTAG, un périphérique USB2 ou USB3, peu importe) et il s'allume (les LED clignotent, etc.) mais le périphérique n'est pas reconnu par le Mac.

En regardant dmesg, je vois ceci :

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

À ce stade, le port USB est hors d'usage. Le débranchement et le rebranchement du même appareil ou d'un autre afficheront des messages similaires. La seule solution semble être un redémarrage. Mettre le Mac en veille n'aide pas.

J'ai installé le pilote d'enregistrement USB pour essayer de diagnostiquer le problème, mais je ne vois rien que je pourrais qualifier de fumant, et essayer de recharger les clés USB n'aide pas non plus.

Ce problème était également présent sur mon ancien MBA 2011, et il a persisté de la version 10.7 à la version 10.9. Les deux ports finissent par le faire, ce qui me fait penser qu'il ne s'agit pas d'un problème de port physique puisqu'un port se trouve sur une carte E/S séparée et l'autre sur la carte logique principale. J'ai essayé de connecter l'appareil via un hub USB2 et USB3 externe (j'ai essayé les deux) et le problème finit par se produire dans ces situations également.

Je suis assez compétent sur le plan technique, mais je ne suis pas forcément au mieux de ma forme sous OSX. Je peux rassembler plus d'informations si quelqu'un m'aide à déterminer quelles données sont appropriées pour aider à déboguer le problème. J'ai également effectué les réinitialisations NVRAM/SMC habituelles, corrigé les permissions, etc... sans résultat.

Quelqu'un d'autre a-t-il rencontré ce problème ? Quelles informations puis-je fournir pour aider à diagnostiquer le problème ? Est-ce que quelqu'un connaît un moyen de réinitialiser complètement le contrôleur XHCI dans cette situation pour essayer de récupérer sans avoir besoin de redémarrer ?

Editer 20140217

L'ajout de la prime a certainement permis à cette question d'obtenir l'attention qu'elle méritait ! Je vous remercie pour toutes les réponses apportées jusqu'à présent, mais je pense qu'il y a quelques idées fausses importantes que j'aimerais aborder :

  1. Je n'ai pas migré mon compte depuis l'ancien Macbook Air. Nouvelle installation
  2. Le problème se pose avec pratiquement tous les appareils. Clés USB (pas de câbles ici !), adaptateurs JTAG, clés USB3
  3. Le problème se produit avec ou sans concentrateur USB2 ou USB3.
  4. Si le problème se produit avec un appareil sur un concentrateur, débrancher le concentrateur et brancher l'appareil directement sur le Mac ne sert à rien
  5. Si le problème se produit sans hub, le fait de brancher l'appareil sur un hub USB2 ou USB3 n'est d'aucune utilité
  6. Une fois le problème survenu, le fait de se déconnecter ou de passer à un autre (nouvel) utilisateur ne fait pas disparaître le problème pour le nouvel utilisateur ou pour l'ancien.

Mon métier consiste à développer du matériel et des logiciels électroniques, y compris des dispositifs USB 3.0. Je connais bien les pilotes de port USB Root, mais pas du tout le développement de bas niveau (noyau) sous OSX.

Je suis presque certain qu'il s'agit d'un problème de pilote de périphérique, simplement en raison de la nature de sa manifestation. A partir d'un démarrage propre, les choses fonctionnent très bien. Débranchez/rebranchez et cela peut encore fonctionner parfaitement. Débrancher/rebrancher finira par faire apparaître le problème, et à ce moment-là ANY Le périphérique USB connecté à ce port ne fonctionnera pas. Redémarrez et tout fonctionne à nouveau parfaitement.

4voto

Geoff Nixon Points 3143

Bonne nouvelle : vous n'avez aucun problème avec votre matériel. Ni de logiciel, de permissions, etc.

Il s'agit, croyez-le ou non, d'un problème, exactement ce que dit le message d'erreur :

the USB hardware ran out of device slots

Vous avez probablement l'impression que quelque chose comme 127 dispositifs USB peuvent être utilisés avec un seul contrôleur, puisque c'est ce que disent tous les documents commerciaux. Mais cela n'est vrai que dans une seule configuration très spécifique et probablement très théorique. USB prennent en charge, au maximum, cinq connexions dans une hiérarchie en étoile. Les concentrateurs ne sont pas des dispositifs passthrough, ils comptent donc dans ce nombre, tout comme les composants internes qui utilisent le bus USB, et tous les dispositifs qui utilisent plus d'un profil de dispositif (même s'il ne s'agit que d'un simple physique ).

Comment pourrais-je savoir Vous n'avez pas de problème avec votre matériel ?
Pourquoi, parce que j'ai la même machine, et j'ai pu reproduire l'erreur !

screenshot


Si le problème semble être sporadique, il est probable que vous rencontriez également d'autres problèmes :

  • Des chipsets incompatibles et de mauvaise qualité dans les concentrateurs, puisque la norme n'est pas appliquée.

  • Puissance insuffisante : USB plus rapide vitesses nécessitent plus d'énergie que les plus lents.
    Si un appareil a le statut capacité revenir à une vitesse plus lente (au lieu d'une erreur) en raison d'une puissance insuffisante), il le fera, entraînant avec lui tout ce qui se trouve sur le même bus.

Si vous ne voulez plus voir cette erreur :

  • Jetez tous les concentrateurs et câbles USB que vous utilisez actuellement. C'est du sérieux.

  • Laissez tomber les 40 à 80 $ pour deux à quatre des ces plus le nombre de ces vous avez besoin.
    La plupart des câbles USB 3 devraient convenir.

  • Surtout si l'on considère que tous les dispositifs que vous mentionnez sont à haut débit et non pas très tolérants aux erreurs, vous devriez jamais L'alimentation est assurée par le bus, et il faut s'assurer que la prise murale de chaque concentrateur est bien alimentée par la prise murale. et dispositif. Exceptions : claviers, souris, etc.

  • Ce dernier point est particulièrement vrai pour le MBA 11', qui est livré avec un minuscule adaptateur d'alimentation de 45W, et l'ordinateur a besoin de toute cette puissance même avec une charge modérée du processeur. Si vous disposez de cet argent, envisagez d'acheter un adaptateur de 60 ou 85 watts.

  • Dans la pratique, un maximum d'appareils et de concentrateurs connectés à un seul concentrateur est nécessaire. 2 + une autre plaque tournante.

  • Utilisez toujours des concentrateurs à 4 ports, et non à 7 ports. Les concentrateurs à 7 ports ne sont que deux contrôleurs dans une chaîne.
    Mais vous ne savez pas quels ports se connectent au premier hub ou au second !
    (Sans regarder dans le System Profiler).

  • En cas de doute, préférez le port USB de la carte logique (à droite). Il est très possible qu'il y ait des interférences dans la carte I/O. Heureusement, cette n'est pas une pièce coûteuse .

Suivez ces étapes et je vous garantis que ce problème disparaîtra.


Edit : le point de vue du développement du matériel et du noyau

Pour répondre à la clarification qu'il s'agit d'une question de développeur.

Donc : L'extrait de journal affiché indique effectivement ce que j'ai abordé ci-dessus : trop de périphériques USB 3.0 connectés au hub XHCI racine.

(Le chipset QS77 en prend en charge 4, et il y en a 2 en cours d'utilisation dans la machine).

Pour "réinitialiser le contrôleur XHCI" (techniquement, il s'agit d'un problème de noyau et non de contrôleur) :

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

Toutefois, cela ne servira à rien si le problème se produit également avec des dispositifs USB 2, auquel cas ce sera son :

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

et si c'est les deux, eh bien, ni l'un ni l'autre.

Quand je dis que je peux reproduire le problème, je veux dire que si je surcharge le bus XHCI comme dans l'extrait de journal, j'obtiens le même message d'erreur. Et je ne supposais pas nécessairement que vous utilisiez un mauvais concentrateur - il se peut que vous utilisiez un concentrateur de mauvaise qualité. Il faut en trouver un bon parce que le concentrateur racine a trop de connexions.

Mais au-delà de cela, je pense que nous entrons dans le domaine de la question wiki :

Comment déboguer le noyau et les pilotes de périphériques sous Mac OS X ?

C'est plutôt ça le problème, ça n'a rien à voir avec le Macbook Air en tant que tel, ni même nécessairement avec l'USB.

Je vais peut-être essayer d'en écrire un (ce n'est pas vraiment mon domaine, mais je l'ai fait quelques fois), mais il faudra sans doute attendre quelques jours. En attendant, jetez un coup d'œil :

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

kextstat | grep USB

Le Famille IOUSB source.


1voto

Macmaniman Points 1527

Définitivement un logiciel.

La solution la plus simple consisterait à

faire un machine à voyager dans le temps sauvegarder alors format votre disque dur et de réinstaller votre système d'exploitation.

Lorsque cela est fait, créez un nouveau compte

lorsque le compte est configuré, lancez l'outil de migration et sélectionnez votre dossier personnel, et essayez d'ignorer tout ce qui n'est pas important.

Cela devrait très certainement résoudre votre problème de façon permanente.

( fabricant de disques x ) un excellent utilitaire pour créer un disque bootable mavericks afin de ne pas avoir à télécharger mountain lion d'abord ! si vous optez pour cette approche, utilisez alt au lieu de cmd+R

1voto

Tony Williams Points 11219

Est-ce que je peux supposer que vous avez migré le système d'exploitation de votre ancien Mac vers le nouveau MBA et que vous avez mis à jour le système d'exploitation plutôt que de le réinstaller ? Ou peut-être que vous avez migré des utilisateurs ou des applications.

Je soupçonne un problème de système d'exploitation de très bas niveau. Si vous avez un disque externe, installez-y un tout nouveau système d'exploitation et démarrez à partir de celui-ci pendant quelques jours pour voir si le problème disparaît. Si c'est le cas, faites une installation propre sur votre MBA et migrez. rien Copiez vos données et n'installez que les applications dont vous avez le plus besoin à partir du support d'installation plutôt que de votre ancien système d'exploitation. Il se peut qu'une application désagréable ou défectueuse soit à l'origine du problème, alors réinstallez-la lentement et toujours à partir de nouveaux fichiers d'installation.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X