Comment configurer le transfert de périphérique USB depuis VMware ESXi vers une machine virtuelle ?

Comment faire fonctionner des périphériques USB dans VMware ESXi — Conseils pratiques

Vous essayez donc de faire transiter un périphérique USB de votre hôte ESXi physique vers une machine virtuelle. Il s’agit peut-être d’une clé USB spécifique ou d’un périphérique difficile à détecter. C’est assez frustrant, car VMware ne prend pas toujours en charge toutes les clés USB, notamment les modèles les plus récents ou les moins chers. De plus, la configuration du transfert direct peut s’avérer complexe, surtout avec l’USB 3.0 ou lorsqu’il s’agit de rediriger un contrôleur entier. Ce guide présente les méthodes les plus simples, ainsi que des solutions de contournement qui ont permis de résoudre certains problèmes.

Comment résoudre les problèmes de transfert USB dans ESXi

Passage USB VMware

Tout d’abord, cette méthode est à privilégier si vous souhaitez que votre machine virtuelle accède à un périphérique USB spécifique connecté directement à l’hôte. Son intérêt ? Elle offre à la machine virtuelle un contrôle au niveau matériel, comme si vous branchiez directement la clé USB à un ordinateur. Une fois la connexion établie, le périphérique USB apparaît directement dans le système d’exploitation de la machine virtuelle, idéal pour des transferts de données rapides ou pour tester un périphérique. Cependant, cette méthode ne fonctionne correctement qu’avec les périphériques compatibles listés sur le site de VMware ; avec du matériel non pris en charge, vous rencontrerez des problèmes.

Sur les machines virtuelles avec une version matérielle 7 ou supérieure, cette opération est parfois très simple. Cependant, il arrive que le message « Aucun périphérique USB disponible » s’affiche. Cela signifie que votre périphérique USB n’est pas pris en charge ou que VMware ne le détecte pas correctement. Pour vérifier si VMware reconnaît le périphérique, ajoutez un périphérique USB hôte dans les paramètres de la machine virtuelle, puis sélectionnez votre périphérique dans la liste déroulante. Voici comment procéder :

  • Ouvrez les paramètres de votre machine virtuelle
  • Cliquez sur Ajouter > Périphérique USB
  • Sélectionnez votre périphérique dans la liste ; s’il y figure, c’est parfait. Sinon, il est possible que VMware ne prenne pas en charge votre clé USB.
  • Vérifiez la compatibilité avec vMotion lorsque l’appareil est connecté si vous prévoyez d’effectuer une migration vMotion de cette machine virtuelle, mais notez que la prise en charge de vMotion est quelque peu limitée ici.

Si le périphérique n’apparaît toujours pas, vérifiez la compatibilité matérielle de votre machine virtuelle et la mise à jour des outils VMware. Notez également que certains périphériques USB ne sont pas compatibles, notamment ceux qui n’ont pas été testés ou qui utilisent des chipsets inhabituels. La liste officielle de VMware est un bon point de départ ( voir les périphériques compatibles ici ).

Astuce : Si votre périphérique USB n’est pas directement pris en charge, envisagez de rediriger l’ensemble du contrôleur USB. Cette solution, un peu plus radicale, fonctionne avec davantage de périphériques. Sachez toutefois qu’elle est plus contraignante et peut désactiver d’autres périphériques USB sur votre ordinateur.

Méthode 1 : Rediriger un contrôleur USB entier vers la machine virtuelle

Cette méthode est à privilégier si certains périphériques USB ne sont pas directement pris en charge. En redirigeant un contrôleur entier, votre machine virtuelle accède à tous les périphériques USB connectés à ce contrôleur. C’est utile si vous utilisez une liste de contrôleurs compatibles ou si certains périphériques USB refusent d’être détectés. L’inconvénient ? Si vous effectuez une redirection, votre hôte ne pourra plus utiliser directement ces périphériques USB : clavier, souris et disques durs seront donc inaccessibles à l’hôte. De plus, vous ne pouvez généralement rediriger qu’un ou deux contrôleurs au maximum, selon votre serveur.

Pourquoi est-ce utile ? Parce que, sur certaines configurations, le transfert direct peut être instable au niveau du périphérique, mais plus fiable au niveau du contrôleur. Trouvez le contrôleur approprié dans la liste des périphériques PCI de votre ESXi, puis ajoutez-le à votre machine virtuelle :

  • Accédez à Gérer > Paramètres > Périphériques PCI
  • Sélectionnez le contrôleur USB par son ID PCI (comme 00:1D.0)
  • Modifier le statut de « Indisponible » à « Disponible ».
  • Cliquez sur OK et redémarrez votre hôte
  • Après le redémarrage, éteignez la machine virtuelle.
  • Modifiez à nouveau les paramètres de la machine virtuelle et ajoutez le périphérique PCI (votre contrôleur USB).
  • Mettez l’appareil sous tension et vérifiez si la clé USB apparaît dans le système d’exploitation invité. En général, Windows ou Linux la détecte assez rapidement.

Remarque : vous perdrez certaines fonctionnalités de l’hôte si vous effectuez cette opération pour votre unique contrôleur USB. Dans une configuration, j’ai dû ajouter une deuxième carte PCI uniquement pour le transfert direct. Car, bien sûr, VMware complique inutilement les choses.

Méthode 2 : Utiliser l’interface de ligne de commande vSphere pour dépanner et activer l’arbitre USB

Il arrive que le service USB Arbitrator de VMware ne soit pas en cours d’exécution, ce qui empêche toute transmission USB. Vous pouvez le vérifier dans l’interface de ligne de commande ESXi ou via SSH :

# chkconfig usbarbitrator --list

S’il ne fonctionne pas, démarrez-le avec :

# /etc/init.d/usbarbitrator start

Sur certaines configurations, cela suffit à résoudre le problème de détection des périphériques. Si les périphériques USB ne sont toujours pas détectés, vous pouvez également redémarrer l’hôte ESXi. Attention : l’arrêt de ce service entraîne l’indisponibilité du transfert USB jusqu’à son redémarrage.

Conseil de pro : Consultez les journaux /var/log/vmkernel.logpour vérifier si le périphérique USB est détecté ou s’il y a des erreurs.

Quand les choses ne fonctionnent pas : Conseils supplémentaires

Il arrive que le périphérique ne soit pas détecté car les pilotes USB ou le micrologiciel de l’hôte ne sont pas à jour. On ignore pourquoi cela fonctionne sur certains serveurs et pas sur d’autres, mais la mise à jour de votre hôte ESXi avec le dernier correctif peut résoudre des problèmes de compatibilité inexpliqués. Essayez également de reconnecter physiquement la clé USB et vérifiez les paramètres du BIOS/UEFI susceptibles de limiter la reconnaissance USB (comme les modes hérités ou la virtualisation des E/S).

Si le problème persiste, essayez avec un autre périphérique USB ou mettez à jour le firmware de vos contrôleurs USB. En fin de compte, le transfert de périphériques se fait souvent par tâtonnements : ce qui fonctionne sur une machine peut ne pas fonctionner sur une autre.

J’espère que cela vous évitera bien des soucis lors de votre prochaine erreur de configuration de périphérique USB. Ce n’est pas toujours parfait, mais quelques ajustements suffisent généralement à résoudre la plupart des problèmes courants.

Résumé

  • Consultez la liste des périphériques USB pris en charge par VMware
  • Ajouter des contrôleurs USB ou faire transiter des périphériques USB individuels
  • Assurez-vous que le service usbarbitrator est en cours d’exécution.
  • Utilisez le mode de transfert PCI pour les périphériques non pris en charge (tenez compte des limitations).
  • Mettez à jour le firmware de l’hôte ESXi et des contrôleurs si nécessaire.

Conclure

Ce genre de choses peut être vraiment pénible, mais une fois qu’on a trouvé la méthode adaptée à son matériel, le dépannage est plus facile. Rediriger des manettes entières peut s’avérer plus fiable si la compatibilité avec certains périphériques est instable, mais cela a des inconvénients pour les ports USB de l’ordinateur hôte. En fin de compte, la patience et quelques essais sont souvent la meilleure solution. Croisons les doigts pour que cela permette à quelqu’un de gagner un temps précieux et d’éviter bien des tracas.