Nous avons déjà pris le temps de passer en revue les différentes façons d’accéder aux ports COM dans une machine virtuelle (vous pouvez trouver l’article ici.) Bien que Serial to Ethernet Connector soit une excellente solution pour le transfert du port série COM dans Hyper-V, il vaut la peine d’examiner quelques autres options pour ajouter un port COM au port série Hyper-V — que nous aborderons ci-dessous.
Comment accéder au port série dans Hyper-V
Si vous devez vous connecter au port série d’une machine virtuelle, vous aurez besoin du Redirecteur de port série. Suivez ces étapes pour apprendre à utiliser cet outil et l’utiliser pour accéder au port virtuel :
1. Obtenez Serial to Ethernet Connector sur la machine virtuelle et le système d’exploitation hôte.
2. Commencez par ouvrir l’application dans la VM. Ouvrez le menu « Connexions » et sélectionnez « Nouvelle connexion au serveur ».
3. Renseignez les informations nécessaires sur le port que vous allez partager, y compris son numéro et le port TCP utilisé pour s’y connecter.
Remarque : cochez la case pour rendre le port virtuel.
4. Appuyez sur « Créer ».
5. Maintenant, passez à Série vers Ethernet sur la machine hôte. Ouvrez « Connexions à distance ».
6. Si tout a été correctement configuré, le port de la machine virtuelle devrait apparaître dans la liste. Sélectionnez-le.
7. Définissez les options de connexion du client, telles que le port qui sera utilisé pour recevoir les données.
8. Appuyez de nouveau sur « Créer » et vous avez terminé.
Tutoriel vidéo :
Comment connecter du matériel série à une machine virtuelle avec PipeDream
Pour les utilisateurs de machines virtuelles qui souhaitent ajouter un port COM aux ports série Hyper-V, PipeDream est une option idéale. Cet outil de port série dans Hyper-V fonctionne via le même serveur hébergeant Hyper-V (qui est un hôte de virtualisation), comblant le fossé entre les machines virtuelles et les ports série.
PipeDream fonctionne en transmettant les données reçues depuis le matériel série (quel que soit l’appareil branché sur le port COM), et aide la machine virtuelle à le reconnaître et à y accéder (et inversement).
De plus, PipeDream n’a pas besoin d’un élément côté client pour fonctionner sur un serveur, ce qui rend le passthrough de la prise en charge série Hyper-V encore plus pratique. PipeDream ne nécessite aucune installation (périphérique, logiciel ou autre) sur la/les machine(s) virtuelle(s) participante(s) — maximisant ainsi la compatibilité avec les anciens OS/logiciels, et une prise en charge fiable pour XP (et les systèmes d’exploitation plus anciens).
PipeDream permet aux machines virtuelles invitées de contrôler les ports série sur l’hôte de virtualisation (ou d’autres machines). Cet outil fonctionne grâce à la prise en charge des canaux nommés de Hyper-V, ce qui signifie qu’une connexion réseau n’est pas nécessaire pour la communication. Créez simplement un nom de canal dans Hyper-V, et PipeDream se connectera au périphérique série de la VM invitée une fois que vous aurez démarré le programme PipeDream.
Avertissement : Le logiciel de port série PipeDream dans Hyper-V est compatible avec Hyper-V de Microsoft, mais il s’agit d’un outil tiers sans aucune affiliation avec Microsoft. Notre utilisation du terme « Hyper-V » n’a pas pour but d’approuver ni de s’affilier à Microsoft Corporation.
Pour ceux qui disposent d’une machine virtuelle Hyper-V de génération 1
Suivez le guide étape par étape ci-dessous pour apprendre comment ajouter un port COM à Hyper-V.
1. Exécutez le Gestionnaire Hyper-V et ouvrez les paramètres de la machine invitée (la VM que vous souhaitez établir) ;
2. Choisissez COM1 ou COM2 dans la nouvelle fenêtre (située dans la liste du matériel à gauche) ;
3. Il s’agit du port série permettant à la machine virtuelle d’accéder au périphérique série de votre choix (alias le port qui apparaît dans la VM peut différer du port série physique de l’hôte) ;
4. Connectez le pipe nommé « PipeDream » au port série de l’invité (faites-le en cliquant sur Pipe nommé, et tapez « PipeDream » comme nom du pipe — voir l’image ci-dessous à titre de référence) ;
5. Pour ceux qui disposent d’un appareil série sur un ordinateur distant, assurez-vous que la case à cocher « Ordinateur distant » est cochée, puis saisissez le nom de la machine ;
6. Cliquez sur OK ;
Comment configurer pour les machines virtuelles Gen-2
Pour ceux qui exécutent des machines virtuelles Gen-2, les paramètres de canalisation affichés ci-dessus ne sont pas configurables via l’interface graphique ; les utilisateurs doivent donc implémenter des commandes PowerShell.
1. Ouvrez une session Powershell ;
2. Exécutez Get-VM ;
3. Copiez le nom de la machine virtuelle avec le port série souhaité ;
4. Exécutez Set-VMComPort -Number < 1 ou 2, pour le port série COM1 ou COM2 > -Path \.pipePipeDream
5. Utilisez Get-VMComPort pour confirmer la création du pipe (voir la capture d’écran affichée ci-dessous en utilisant une VM nommée « SillyRabbit » à titre d’exemple).
Mais il n’y a pas de ports COM pour les VM Gen 2, n’est-ce pas… ?
Franchement, la réponse est un mélange de oui et de non (le « non » étant principalement lié aux capacités de transfert direct par défaut du port série Hyper-V.) La bonne nouvelle, c’est que c’est ajustable !
Les captures d’écran ci-dessous proviennent d’une VM Windows 8 (utilisant spécifiquement un support créé dans la section précédente où le pilote pour le clavier logiciel a été ajouté.)
Dans l’exemple ci-dessous, vous verrez que les paramètres d’une machine virtuelle gen-2 de base ne proposent pas d’options de port COM.
La raison est que, que les ports série soient disponibles ou non, le Gestionnaire Hyper-V Gen-2 n’affiche jamais les ports COM.
Ci-dessous, nous allons jeter un coup d’œil à ce que PowerShell a à dire :
Remarquez comment PowerShell affiche deux ports COM disponibles ? Cependant, si vous ouvrez le Gestionnaire de périphériques de la machine invitée, aucun port COM ne sera répertorié pour la VM.
Consultez l’exemple ci-dessous (en utilisant COM1) pour configurer un chemin de canalisation pour les ports COM pendant qu’une machine virtuelle est en cours d’exécution :
Comme mentionné précédemment, lors de la vérification du Gestionnaire de périphériques de la machine invitée, COM1 ne s’affiche pas — mais une fois la VM arrêtée puis redémarrée, le port COM souhaité sera désormais disponible dans la liste (voir ci-dessous).
Pour ceux qui ont de l’expérience en débogage du noyau, le processus restant est assez simple et direct — à une seule exception mineure près, propre aux machines virtuelles de génération 2 (plus précisément encore, aux ordinateurs basés sur l’UEFI utilisant Secure Boot).
Via msconfig, nous avons activé le débogage du noyau pour la VM sur COM1. Cependant, une fois que nous avons cliqué sur OK, le message d’erreur suivant apparaît :
Pourquoi ? Parce que la politique de Windows indique que le Démarrage sécurisé et le débogage du noyau ne sont pas compatibles. Cela signifie que les utilisateurs doivent éteindre la machine virtuelle, puis désactiver le Démarrage sécurisé dans les paramètres du firmware.
- Utilisez à nouveau msconfig pour activer le débogage du noyau (cette fois-ci, cela réussira) ;
- Redémarrez la VM ;
- Connectez-vous au tube via windbg de la partition parente ;
Conclusion
En résumé, bien qu’Hyper-V ne fournisse pas de passthrough direct des ports COM physiques vers les machines virtuelles, la communication série peut tout de même être réalisée à l’aide de pipes nommés, d’une configuration PowerShell et d’outils de redirection spécialisés. Ces méthodes permettent de travailler avec des VM Gen 1 et Gen 2 pour des tâches telles que la prise en charge de logiciels hérités, l’intégration matérielle ou le débogage.
Dans les scénarios où l’accès série direct n’est pas pratique, un connecteur série vers Ethernet peut constituer une alternative efficace. En convertissant les données série en trafic réseau, ce type de dispositif permet d’accéder à des équipements basés sur COM via TCP/IP et de les partager facilement avec des machines virtuelles. Combinée à un logiciel de redirection de port série, cette approche offre une plus grande flexibilité et simplifie l’accès aux périphériques série physiques dans des environnements Hyper-V virtualisés.