Que sont les réinitialisations des périphériques USB?

20

J'ai ce tout nouveau logiciel RAID-1 construit avec deux lecteurs USB externes WD Elements, et je peux voir que Linux répète un peu le message suivant:

...
[302148.036912] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
[302153.052029] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302186.031481] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302217.050210] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302281.043543] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302312.090158] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302351.076851] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
...

Alors, qu'est-ce que ça dit? Est-ce normal? Est-ce un problème que je devrais essayer de résoudre?

Mise à jour
En fait, ces messages ne sont pas destinés aux lecteurs que je pensais être. J'ai également un tas d'autres lecteurs USB connectés à cet ordinateur via un concentrateur USB. Quoi qu'il en soit, ma question est essentiellement ce que signifie ce message en anglais simple?

ILIV
la source
3
Faire du RAID à partir de lecteurs USB ne semble pas être une bonne idée. Le RAID consiste à disposer de manière fiable de tous vos disques, et l'USB consiste à connecter et déconnecter à chaud des périphériques. Puisque vous utilisez RAID-1, ce n'est pas si mal, mais ce n'est pas une très bonne idée non plus.
mvp
1
Il n'y a rien de mal à utiliser des périphériques USB dans la configuration RAID. C'est une idée parfaitement saine, d'autant plus que l'on considère qu'il s'agit d'un ordinateur personnel, et non d'un serveur d'entreprise. Vous pourriez discuter des limitations du débit USB, mais ce n'est pas un problème pour moi personnellement. Ce raid est une approche paresseuse de la solution de sauvegarde plus que toute autre chose.
ILIV
1
Vous avez indiqué que vos disques sont connectés aux ports USB du portable. Dites ce que vous voulez, mais c'est simplement une bombe à retardement qui attend de se déclencher. De plus, si vos appareils sont USB3, le noyau doit utiliser xhci_hcd. S'il utilise ehci_hcd, cela signifie que vos appareils fonctionnent à des vitesses USB2.
mvp
1
Pourquoi est-ce une "bombe à retardement"?
ILIV
2
Je vois, la prochaine fois, s'il vous plaît, essayez de trouver de vraies raisons d'appeler quelque chose une bombe à retardement. Juste pour mémoire, je n'ai pas de chat, ni d'autre animal de compagnie, je n'ai jamais tiré de câbles, ce portable est resté stationnaire depuis quelques années maintenant, les chances de voir les ports USB s'épuiser sont à peu près égales à une chance d'avoir la connexion directe est rompue, "quelque chose d'autre" est drôle, peut arriver même au serveur d'entreprise le plus soigneusement configuré et installé. Alors, arrêtez d'être si paranoïaque. C'est RAID-1. Il est très peu probable que 2 disques sortent en même temps. Ceci est une solution solide. Période.
ILIV

Réponses:

22

Laisse-moi essayer.

Littéralement, le message dit que la pile USB Linux a émis "USB_RESET" sur votre appareil particulier (appareils # 19 et # 20, quels qu'ils soient). L'erreur semble se produire une fois toutes les 10 à 30 secondes. Après la réinitialisation, le journal devrait avoir de nouveaux messages d'énumération, car la réinitialisation USB forcera l'appareil connecté à "l'état par défaut". On dirait que la verbosité de votre journal est très réduite.

La réinitialisation d'un périphérique USB en cours de fonctionnement est une situation assez dramatique. Le contrôleur recourt à cette réinitialisation de "port" s'il rencontre une "erreur de transaction". Une erreur de transaction se produit lorsque le lien ne termine pas toutes les phases requises de la transaction USB ou a une erreur CRC. En USB normal, le contrôleur EHCI réessayera automatiquement la transaction ayant échoué (maximum 3 fois typique), puis définira une interruption XACT_ERROR. Statistiquement, selon la théorie des erreurs, si un lien ne répond pas correctement à trois tentatives consécutives, il y a un problème avec le segment USB particulier, principalement électrique. L'erreur de transaction est donc considérée comme fatale et le logiciel essaie de récupérer le lien. Si l'arborescence quatre tente de récupérer le lien échoue, l'hôte considère ce port comme mort et se ferme.

Sous Linux cependant, quelqu'un a décidé que 3 tentatives théoriques ne suffisaient pas, et le logiciel Linux effectue 32 (trente-deux) tentatives supplémentaires, ce qui en fait 96 (!!!) au total. Si la liaison matérielle s'avère être électriquement marginale, les 96 tentatives pourraient réussir en 99,99% du temps. Les gourous des logiciels Linux affirment que cela aide à améliorer l'opérabilité des périphériques / câbles douteux. En substance, cette technique cache un problème sérieux avec cette connexion USB particulière, qui n'aide pas les utilisateurs à long terme.

Le problème peut provenir de l'alimentation en tension marginale (VBUS) des variateurs, des problèmes de VBUS ou de la dégradation du signal sur les fils de signal. Je voudrais d'abord essayer des câbles certifiés de haute qualité extrêmement courts et vérifier si les statistiques d'erreur changent.

Ale..chenski
la source
Super résumé, merci! Certaines sources supplémentaires seraient intéressantes.
Christian Benke
1
Savez-vous s'il est possible d'augmenter le nombre de tentatives effectuées par ehci_hcdmodule? Ou est-il possible de forcer ohci_hcdpour un dispositif particulier (par exemple /dev/sdaest géré par ehci_hcdet "problématique" /dev/sdbest géré par ohci_hcd)?
dma_k
5

Cette erreur est décrite dans l'article Linux: réinitialiser le périphérique USB haute vitesse à l'aide de l'erreur et de la solution ehci_hcd :

Cette erreur indique que l'USB 2.0 peut ne pas fonctionner sur votre système ou peut fonctionner uniquement à des vitesses USB 1.1. Pour résoudre ce problème:

  1. Remplacer le matériel: dans la plupart des cas, vous devez remplacer la carte mère.
  2. Supprimer le pilote ehci_hcd
  3. Désactivez l'interface USB 2.0 du lecteur ehci_hcd et utilisez-la comme USB 1.1. En bref, désactivez l'ehci_hcd.

Si vous ne souhaitez pas remplacer la carte mère, pour supprimer le pilote ehci_hcd éditez le fichier /etc/modprobe.d/blacklist.conf et ajoutez la ligne:

blacklist ehci_hcd

Enfin, utilisez le script mkinitrd pour construire une structure de répertoires pouvant servir de système de fichiers racine initrd sans ehci_hcd:

# mkinitrd -o /boot/initrd.$(uname -r).img $(uname -r)

Redémarrez en tant que test.

Un article avec des instructions similaires est: Pourquoi l'erreur "kernel: usb 1-2.2: reset high speed USB device using ehci_hcd and address 6" est-elle écrite dans le fichier / var / log / messages?

harrymc
la source