Electronic Team uses cookies to personalize your experience on our website. By continuing to use this site, you agree to our cookie policy. Click here to learn more.

Guide de passthrough Xen USB

Editorial Team Editorial Team Mar 26, 2020

Si l'accès aux périphériques USB à partir de votre système d'exploitation invité Xen devient un véritable défi pour vous, notre guide de passage USB Xen vous aidera à résoudre ce problème. Dans cet article, vous trouverez des descriptions simples des moyens les plus courants de rediriger des périphériques USB vers une machine virtuelle Xen.

Qu'est-ce que l'hyperviseur Xen


Xen est un hyperviseur multiplateforme qui prend en charge une multitude de fonctionnalités avancées et est largement utilisé sur les ordinateurs grand public et les serveurs de données d'entreprise.

L'hyperviseur Xen fonctionne directement sur le matériel du système. Il ajoute une couche de virtualisation entre le matériel du système et les machines virtuelles, transformant le matériel du système en un pool de ressources informatiques logiques qui peuvent être allouées dynamiquement à tout système d'exploitation invité par l'hyperviseur. Les systèmes d'exploitation s'exécutant sur des machines virtuelles interagissent avec les ressources virtuelles comme s'il s'agissait de ressources physiques.

Rediriger l'USB vers l'hyperviseur Xen
Période d'essai de 14 jours gratuits

L'une des principales caractéristiques de l'hyperviseur Xen est la prise en charge de la paravirtualisation, un mode spécial du noyau du système d'exploitation. Contrairement à l'émulation d'un environnement isolé séparé et d'un ensemble de matériel pour chaque machine, ce mode vous permet d'obtenir de bien meilleures performances.

Avec cela, le mode de paravirtualisation a ses limites: les opérations privilégiées sont interdites, l'impossibilité de passer du mode 32 bits au mode 64 bits et vice versa «à la volée», la virtualisation matérielle du processeur n'est pas prise en charge. Cependant, aucun de ces facteurs ne peut affecter de manière significative les performances et la convivialité du système.


Méthode de passage USB Xen la plus efficace

Ce n'est pas un problème de transférer un périphérique USB inséré dans un PC hôte vers une machine virtuelle tant que vous utilisez un outil de virtualisation USB spécialisé, USB Network Gate.
UNG logo

USB Network Gate

Partager USB sur Ethernet sur Windows
4.9 Classement basé sur 372+ utilisateurs, Revue(372)
Essayer gratuitement Periode d'essai 14-jours, Vous ne pouvez partager qu'un dispositif USB local
 USB Network Gate

Basée sur la technologie USB passthrough, l'application permet de rediriger les périphériques USB sur le réseau (Ethernet, WAN, Internet) en les rendant accessibles à partir d'un système d'exploitation invité. La solution logicielle est disponible pour les systèmes d'exploitation Windows, Linux et Mac et prend en charge les connexions multiplateformes.


Voici comment fonctionne le logiciel:

  1. Vous installez USB Network Gate sur vos systèmes d'exploitation hôte et invité.

  2. Partagez le périphérique USB requis (physiquement connecté au PC hôte) sur le réseau.

  3. Démarrez l'application sur votre machine virtuelle et connectez-vous au périphérique partagé dans l'interface logicielle.

Une fois connecté, l'appareil apparaîtra dans le Gestionnaire de périphériques de votre système d'exploitation invité comme s'il était physiquement attaché à la machine virtuelle.

USB dans Xen OS: options possibles


Malgré ses nombreux avantages, la solution Xen présente toujours un inconvénient majeur. Comme tout hyperviseur bare metal, Xen a des problèmes pour rediriger les ports USB vers un OS hôte. Dans le même temps, il existe plusieurs façons d'accéder à un périphérique USB à partir d'un domaine invité Xen. La méthode ci-dessus décrit comment procéder à l'aide d'un logiciel de relais USB Xenserver, mais parlons également de certaines méthodes "natives" pour accéder à l'USB depuis Xen.

Connexion de périphériques USB

Le plus souvent, les périphériques USB sont spécifiés soit par leur adresse de bus (bus.device) soit par leur balise de périphérique (vendorid: deviceid).

Vous pouvez répertorier les périphériques USB sur le système à l'aide de la commande lsusb:

Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 003 Device 002: ID f617:0905
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 0424:2640 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 005: ID 0424:4060 Standard Microsystems Corp. Ultra Fast Media Reader
Bus 001 Device 006: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse

Par exemple, si vous devez rediriger la souris Logitech, vous pouvez spécifier 046d: c016 ou 1.6.

En règle générale, les périphériques hôtes individuels sont transmis à un système d'exploitation invité via un contrôleur de périphérique USB émulé ou PVUSB.

1. La première méthode implique que le modèle d'appareil (qemu) présente un contrôleur USB émulé à l'invité. Après cela, le processus de modèle de périphérique prend le contrôle du périphérique à partir du domaine 0 et transmet les commandes USB entre le système d'exploitation invité et le périphérique USB hôte.

Cette méthode peut être utilisée uniquement avec les domaines HVM et n'est pas disponible pour les domaines qui s'exécutent avec des domaines de stub de modèle de périphérique.

Quant à Xen 4.6, xl ne prend en charge que l'USB émulé, à partir du fichier de configuration.

Vous pouvez activer le concentrateur USB émulé à l'aide deusb=1. Ensuite, vous devrez spécifier des périphériques dans la liste des périphériques dans le fichier de configuration avec d'autres périphériques émulés à l'aide de host:USBID. Par exemple:

usb=1
usbdevice=['tablet','host:1.6','host:0424:460']

USB 1.1 est le contrôleur USB par défaut créé par qemu. Pour certains appareils, cependant, ce n'est pas suffisant. Dans un tel cas, à partir de 4.6, vous pouvez également utiliser usbversion pour spécifier la version du contrôleur USB. Cependant, actuellement ce n'est pas compatible avec usbdevice , et n'est donc efficace qu'en conjonction avec la redirection USB d'épices. Cette option n'est pas disponible pour qemu-traditional.

2. La deuxième méthode, PVUSB, utilise une interface front-end/back-end paravirtualisée, similaire au réseau PV traditionnel Xen et aux protocoles de disque.

Pour pouvoir utiliser PVUSB, vous devez utiliser usbfront dans votre système d'exploitation invité et usbback dans dom0 ou usb backend dans qemu (ou votre domaine de pilote USB).

La prise en charge de PVUSB dans xl / libxl (pour les périphériques PVUSB du fichier de configuration et les connexions et déconnexions à chaud de périphériques PVUSB) est disponible depuis Xen 4.7. Maintenant, cela fonctionne avec USB 1.1 et USB 2.0.

Voici ce que vous devez faire pour passer par des périphériques USB hôtes à l'invité avec PVUSB:

  • Tout d'abord, à partir du fichier de configuration, spécifiez les contrôleurs USB et les périphériques hôtes USB à l'aide usbctrl et usbdev. Par exemple:

    usbctrl=['type=qusb,version=2,ports=4', 'type=qusb,version=1, ports=4', ]
    usbdev=['hostbus=2, hostaddr=1, controller=0,port=1', ]

  • Ensuite, pour le type, vous pouvez spécifier auto (par défaut: xl essaie de sélectionner le type le plus approprié), qusb (backend basé sur qemu paravirtualisé, doit être spécifié pour pvUSB utilisé par les domaines HVM), pv (backend basé sur noyau paravirtualisé, non pris en charge par linux standard actuel), ou devicemodel (contrôleur USB émulé qemu, pas encore pris en charge).

    Vous pouvez également spécifier usbdev uniquement, par exemple:

    usbdev=['hostbus=2, hostaddr=1, ]

  • Après cela, il créera automatiquement un contrôleur USB (version 2.0) et 8 ports, et connectera le périphérique USB au premier port de ce nouveau contrôleur.

  • Pour brancher et débrancher à chaud un périphérique USB, vous pouvez utiliser des commandes usbctrl-attach, usbctrl-detach, usb-list, usbdev-attach and usbdev-detach.

    Par exemple:

    #xl usbctrl-attach test_vm version=1 ports=8


Accès aux périphériques USB via le réseau

Un autre moyen populaire d'accéder à un périphérique USB à partir d'un domaine invité Xen est une solution tierce dédiée fonctionnant sur le réseau. Dans ce cas, vous aurez besoin d'un serveur USB (matériel ou logiciel) et d'un client USB (logiciel). Ce dernier est en fait un pilote spécial pour le système d'exploitation. Maintenant, regardons de plus près cette façon simple et efficace d'obtenir la prise en charge du relais USB Xen dans votre machine virtuelle.

USB Network Gate
Rediriger des périphériques USB sur le réseau
Période d'essai de 14 jours gratuits
La licence est disponible à partir de $159.95
Disponible pour