Redirection des périphériques USB
Les périphériques USB sont partagés entre l’application Citrix Workspace™ et le bureau VDA Linux. Lorsqu’un périphérique USB est redirigé vers le bureau, vous pouvez l’utiliser comme s’il était connecté localement.
Conseil :
Nous vous recommandons d’utiliser la redirection des périphériques USB lorsque la latence réseau est inférieure à 100 millisecondes. N’utilisez pas la redirection des périphériques USB lorsque la latence réseau est supérieure à 200 millisecondes.
-
La redirection des périphériques USB comprend trois domaines de fonctionnalité principaux :
- Projet USB/IP open source
- Module de session USB Citrix
- Module de service USB Citrix
Projet USB/IP open source :
Le projet USB/IP se compose d’un pilote de noyau Linux et de bibliothèques en mode utilisateur qui vous permettent de communiquer avec le pilote de noyau pour obtenir toutes les données USB.
Le VDA Linux implémente la redirection des périphériques USB basée sur le projet USB/IP open source et réutilise le pilote de noyau et les bibliothèques en mode utilisateur d’USB/IP. Cependant, tous les transferts de données USB entre le VDA Linux et l’application Citrix Workspace sont encapsulés par le protocole USB ICA de Citrix.
Module de session USB Citrix :
Le module de session USB Citrix agit comme un pont de communication entre le module de noyau USB/IP et l’application Citrix Workspace.
Module de service USB Citrix :
Le module de service USB Citrix gère toutes les opérations sur les périphériques USB, par exemple, l’attachement ou le détachement de périphériques USB.
Fonctionnement de la redirection des périphériques USB
Généralement, si un périphérique USB est redirigé avec succès vers le VDA Linux, un ou plusieurs nœuds de périphérique sont créés dans le chemin /dev du système. Parfois, cependant, le périphérique redirigé n’est pas utilisable pour une session VDA Linux active. Les périphériques USB dépendent de pilotes pour fonctionner correctement et certains périphériques nécessitent des pilotes spéciaux. Si les pilotes ne sont pas fournis, les périphériques USB redirigés sont inaccessibles à la session VDA Linux active. Pour assurer la connectivité des périphériques USB, installez les pilotes et configurez correctement le système.
Le VDA Linux prend en charge une liste de périphériques USB qui sont redirigés avec succès depuis le client.
Périphériques USB pris en charge
Conseil :
Nous avons ajouté la prise en charge des ports USB 3.0. Vous pouvez insérer des périphériques USB 3.0 dans les ports USB 3.0 d’un périphérique client.
Les périphériques suivants ont été vérifiés pour prendre en charge cette version du VDA Linux. D’autres périphériques peuvent être utilisés librement, avec des résultats inattendus :
| Périphérique de stockage de masse USB | VID:PID | Système de fichiers |
|---|---|---|
Netac Technology Co., Ltd |
0dd8:173c | FAT32, NTFS |
Kingston Datatraveler 101 II |
0951:1625 | FAT32, NTFS |
Kingston Datatraveler GT101 G2 |
1567:8902 | FAT32, NTFS |
SanDisk SDCZ80 flash drive |
0781:5580 | FAT32, NTFS |
WD HDD |
1058:10B8 | FAT32, NTFS |
Toshiba Kingston DataTraveler 3.0 USB device |
0930:6545 | FAT32, NTFS |
Taiwan OEM – OBSOLETE VendorCo ProductCode Disk 2.0 |
FFFF:5678 | FAT32, NTFS |
TD-RDF5A Transcend USB device |
8564:4000 | FAT32, NTFS |
Remarque :
Pour utiliser NTFS sur RHEL, Rocky Linux et SUSE, activez d’abord la prise en charge de NTFS sur ces distributions.
| Souris 3D USB | VID:PID |
|---|---|
3DConnexion SpaceMouse Pro |
046d: c62b |
| Scanner USB | VID:PID |
Epson Perfection V330 photo |
04B8: 0142 |
| Yubico USB | VID:PID |
Yubico YubiKey OTP+FIDO+CCID -Keyboard, HID |
1050:0407 |
| Webcam USB | VID:PID |
Logitech composite USB device – WebCam, Audio |
0460:0825 |
Configurer la redirection des périphériques USB
(Pour RHEL et Rocky Linux uniquement) Installer ou compiler le module de noyau USB/IP
Le VDA Linux utilise USB/IP comme contrôleur d’hôte virtuel pour la redirection des périphériques USB. Étant donné que dans la plupart des cas, le module de noyau USB/IP est publié avec la version 3.17 et ultérieure du noyau Linux, vous n’avez pas besoin de compiler le module de noyau par défaut. Cependant, le module de noyau USB/IP n’est pas disponible pour RHEL et Rocky Linux. Pour utiliser la redirection des périphériques USB avec ces distributions Linux, vous devez installer ou compiler le module de noyau USB/IP. Téléchargez et installez USB/IP depuis https://pkgs.org/download/kmod-usbip en fonction de votre distribution Linux.
Définir les stratégies de redirection des périphériques USB
Une stratégie Citrix contrôle si la redirection des périphériques USB est activée ou désactivée. Le type de périphérique peut également être spécifié à l’aide d’une stratégie Delivery Controller™. Lors de la configuration de la redirection des périphériques USB pour le VDA Linux, configurez les stratégies suivantes :
- Stratégie de redirection des périphériques USB clients
- Règles de redirection des périphériques USB clients
Activer la redirection des périphériques USB
Dans Citrix Studio, activez (ou désactivez) la redirection des périphériques USB depuis le client (pour les hôtes de station de travail uniquement).
Dans la boîte de dialogue Modifier le paramètre :
- Sélectionnez Autorisé.
- Cliquez sur OK.

Définir les règles de redirection des périphériques USB
Après avoir activé la stratégie de redirection USB, définissez les règles de redirection à l’aide de Citrix Studio en spécifiant les périphériques autorisés (ou refusés) sur le VDA Linux.
Dans la boîte de dialogue Règles de redirection des périphériques USB clients :
- Cliquez sur Nouveau pour ajouter une règle de redirection, ou cliquez sur Modifier pour examiner une règle existante.
- Après avoir créé (ou modifié) une règle, cliquez sur OK.

Remarque :
Lors de la configuration de la redirection des périphériques USB, assurez-vous de définir l’option Redirection des périphériques USB clients sur Autorisé et de configurer les Règles de redirection des périphériques USB clients sur Allow:#all ok. Le fait de ne pas configurer les deux paramètres peut entraîner la disparition de la souris externe lors d’un clic dans une session.
Prise en charge de la redirection USB pour Ubuntu sur Azure
Par défaut, Ubuntu sur Azure peut ne pas inclure certains pilotes de noyau USB. Vous pouvez activer la redirection USB pour les périphériques génériques et spécifiques en suivant les instructions ci-dessous.
Activation de la redirection USB pour les périphériques génériques
Pour les périphériques USB génériques, tels que les périphériques de stockage USB standard, les périphériques HID USB YubiKey et les adaptateurs réseau ASIX, vous pouvez simplement exécuter le script de configuration suivant :
sudo /opt/Citrix/VDA/sbin/usbazure/ctxusbcfg.sh
Après avoir exécuté le script, redémarrez le service USB Citrix pour activer la prise en charge :
sudo service ctxusbsd restart
Création de modules de pilote de noyau USB pour des périphériques spécifiques
Pour les périphériques non pris en charge par défaut, vous pouvez utiliser le flux de travail générique suivant pour créer et installer les modules de pilote de noyau nécessaires. L’exemple ci-dessous utilise une clé USB Kingston DataTraveler 2.0 (VID=0930, PID=6544) à titre d’illustration.
Prérequis :
-
Une machine VDA avec le package VDA Linux installé.
-
Une machine physique Linux exécutant un noyau Linux générique.
Identification des pilotes de noyau requis sur la machine physique Linux
Étape 1 - Connecter le périphérique
Connectez le périphérique USB à une machine physique exécutant un noyau Linux générique.
Étape 2 - Préparer le script d’identification du pilote de noyau USB
- Copiez `/opt/Citrix/VDA/sbin/usbazure/ctxusbkodriver.sh` sur la machine physique et rendez-le exécutable.
Étape 3 - Obtenir le VID et le PID du périphérique
Utilisez lsusb pour identifier le périphérique USB connecté.
lsusb
Example output:
Bus 001 Device 040: ID 0930:6544 Toshiba Corp. TransMemory-Mini / Kingston DataTraveler 2.0 Stick
<!--NeedCopy-->
- #### Étape 4 – Identifier les pilotes de noyau requis
- Exécutez le script d'assistance avec le `VID:PID` du périphérique :
./ctxusbkodriver.sh 0930:6544
Example output:
All USB Kernel drivers for 0930:6544:
usb-storage
<!--NeedCopy-->
Compiler et installer les pilotes de noyau sur la machine VDA
Étape 1 – Configurer l’environnement de compilation
Exécutez le script de configuration pour configurer l’environnement de compilation et télécharger le code source du noyau nécessaire vers /root/.ctxusb :
sudo /opt/Citrix/VDA/sbin/usbazure/ctxusbcfg.sh
Étape 2 – Déterminer la configuration de compilation du noyau
Utilisez le script de configuration pour récupérer les options de compilation de module de noyau appropriées :
sudo /opt/Citrix/VDA/sbin/usbazure/ctxusbkoconfig.sh /root/.ctxusb/linux usb-storage
Example output:
Config option: CONFIG_USB_STORAGE
Folder: /root/.ctxusb/linux/drivers/usb/storage
<!--NeedCopy-->
Étape 3 – Inspecter et enregistrer les options de configuration du noyau
cd /root/.ctxusb/linux
make menuconfig
<!--NeedCopy-->
- Utilisez la fonction de recherche (appuyez sur /) pour localiser les options (par exemple,
CONFIG_USB_STORAGE). - Enregistrez les paramètres pertinents (par exemple,
CONFIG_USB_SUPPORT=y,CONFIG_USB_STORAGE=m). - Quittez sans enregistrer les modifications.
Étape 4 – Compiler et installer les pilotes de noyau
Compilez et installez le module de noyau :
sudo /opt/Citrix/VDA/sbin/usbazure/ctxusbkobuild.sh /root/.ctxusb/linux/drivers/usb/storage "CONFIG_USB_SUPPORT=y CONFIG_USB_STORAGE=m"
Étape 5 – Vérifier les pilotes de noyau
modinfo usb-storage
Une fois l’opération terminée, le pilote de noyau pour votre périphérique USB spécifié a été compilé et installé.
Résoudre les problèmes de redirection de périphérique USB
Utilisez les informations de cette section pour résoudre les divers problèmes que vous pourriez rencontrer lors de l’utilisation du VDA Linux.
Impossible de démonter le disque USB redirigé
Le VDA Linux gère tous les disques USB redirigés depuis l’application Citrix Workspace avec les privilèges administratifs pour s’assurer que seul le propriétaire peut accéder au périphérique redirigé. Par conséquent, vous ne pouvez démonter le périphérique qu’avec les privilèges administratifs.

Fichier perdu lorsque vous arrêtez la redirection d’un disque USB
Si vous arrêtez la redirection d’un disque USB immédiatement à l’aide de la barre d’outils de l’application Citrix Workspace, les fichiers que vous avez modifiés ou créés sur le disque peuvent être perdus. Ce problème se produit car lorsque vous écrivez des données dans un système de fichiers, le système monte le cache mémoire dans le système de fichiers. Les données ne sont pas écrites sur le disque lui-même. Si vous arrêtez la redirection à l’aide de la barre d’outils de l’application Citrix Workspace, il ne reste plus de temps pour que les données soient vidées sur le disque, ce qui entraîne une perte de données.
Pour résoudre ce problème, utilisez la commande sync dans un terminal pour vider les données sur le disque avant d’arrêter la redirection USB.
Aucun périphérique dans la barre d’outils de l’application Citrix Workspace
Parfois, il est possible que vous ne voyiez pas les périphériques répertoriés dans la barre d’outils de l’application Citrix Workspace, ce qui indique qu’aucune redirection USB n’a lieu.

Si vous rencontrez ce problème, vérifiez les points suivants :
- La stratégie est configurée pour autoriser la redirection de périphérique USB.
- Le module de service USB Citrix est en cours d’exécution.
Si la stratégie n’est pas définie correctement, corrigez-la en vous référant à la section Définir les stratégies de redirection de périphérique USB de cet article.
Si le module de service USB Citrix n’est pas en cours d’exécution, suivez les étapes suivantes :
-
Vérifiez si un module de noyau USB/IP est disponible sur votre distribution Linux à l’aide de la commande suivante :
modinfo usbip-core <!--NeedCopy--> -
Si la sortie s’affiche comme suit, installez ou compilez le module de noyau USB/IP en fonction de votre distribution Linux :
modinfo: ERROR: Module usbip-core not found. <!--NeedCopy-->- Pour RHEL et Rocky Linux, consultez la section Installer ou compiler le module de noyau USB/IP de cet article.
- Pour SUSE, téléchargez et installez le package USB/IP depuis https://software.opensuse.org/package/usbip.
-
Pour Ubuntu/Debian, suivez les étapes suivantes pour compiler et installer le module de noyau USB/IP :
-
Téléchargez le code source du module de noyau USB/IP.
Accédez au référentiel du noyau Linux à l’adresse https://github.com/torvalds/linux/tree/master/drivers/usb/usbip, sélectionnez la balise de version du noyau Linux cible (v4.15 ou ultérieure) et obtenez le lien tel que https://github.com/torvalds/linux/tree/v4.15/drivers/usb/usbip.
Accédez à DownGit et entrez le lien précédent pour créer un lien de téléchargement pour le code source USB/IP.
-
Décompressez le fichier source à l’aide des commandes suivantes :
unzip ${USBIP_SRC}.zip cd usbip <!--NeedCopy--> -
Modifiez le fichier Makefile comme suit :
# SPDX-License-Identifier: GPL-2.0 ccflags-$(CONFIG_USBIP_DEBUG) := -DDEBUG obj-$(CONFIG_USBIP_CORE) += usbip-core.o usbip-core-y := usbip_common.o usbip_event.o obj-$(CONFIG_USBIP_VHCI_HCD) += vhci-hcd.o vhci-hcd-y := vhci_sysfs.o vhci_tx.o vhci_rx.o vhci_hcd.o #obj-$(CONFIG_USBIP_HOST) += usbip-host.o #usbip-host-y := stub_dev.o stub_main.o stub_rx.o stub_tx.o #obj-$(CONFIG_USBIP_VUDC) += usbip-vudc.o #usbip-vudc-y := vudc_dev.o vudc_sysfs.o vudc_tx.o vudc_rx.o vudc_transfer.o vudc_main.o <!--NeedCopy--> -
Compilez le code source :
apt-get install linux-headers-`uname -r` make -C /lib/modules/`uname -r`/build M=$PWD <!--NeedCopy--> -
Installez le module de noyau USB/IP :
cp usbip-core.ko vhci-hcd.ko /opt/Citrix/VDA/lib64/ <!--NeedCopy--> -
Redémarrez le service ctxusbsd pour charger le module de noyau USB/IP :
systemctl restart ctxusbsd <!--NeedCopy-->
-
Échec de la redirection lorsque les périphériques USB sont visibles dans la barre d’outils de l’application Citrix Workspace, mais sont étiquetés « politique restreinte »
Lorsque ce problème se produit, procédez comme suit :
- Configurez la stratégie du VDA Linux pour activer la redirection.
-
Vérifiez si des restrictions de stratégie supplémentaires sont configurées dans le registre de l’application Citrix Workspace. Vérifiez DeviceRules dans le chemin du registre pour vous assurer que l’accès au périphérique n’est pas refusé par ce paramètre :
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\ICA Client\GenericUSB
Un périphérique USB est redirigé avec succès, mais je ne peux pas l’utiliser dans ma session
Généralement, seuls les périphériques USB pris en charge peuvent être redirigés. D’autres périphériques peuvent également être redirigés vers une session VDA Linux active. Pour chaque périphérique redirigé, un nœud appartenant à l’utilisateur est créé dans le chemin système /dev. Cependant, ce sont les pilotes et la configuration qui déterminent si l’utilisateur peut utiliser le périphérique avec succès. Si vous trouvez un périphérique possédé (branché) mais inaccessible, ajoutez le périphérique à une stratégie non restreinte.
Remarque :
Pour les disques USB, le VDA Linux configure et monte le disque. L’utilisateur (et seul le propriétaire qui l’a installé) peut accéder au disque sans aucune configuration supplémentaire. Ce n’est peut-être pas le cas pour les périphériques qui ne figurent pas dans la liste des périphériques pris en charge.
Dans cet article
- Fonctionnement de la redirection des périphériques USB
- Périphériques USB pris en charge
- Configurer la redirection des périphériques USB
- Prise en charge de la redirection USB pour Ubuntu sur Azure
-
Résoudre les problèmes de redirection de périphérique USB
- Impossible de démonter le disque USB redirigé
- Fichier perdu lorsque vous arrêtez la redirection d’un disque USB
- Aucun périphérique dans la barre d’outils de l’application Citrix Workspace
- Échec de la redirection lorsque les périphériques USB sont visibles dans la barre d’outils de l’application Citrix Workspace, mais sont étiquetés « politique restreinte »
- Un périphérique USB est redirigé avec succès, mais je ne peux pas l’utiliser dans ma session