Configurer la redirection USB

Les périphériques USB sont partagés entre Citrix Receiver™ et le bureau Linux VDA. Lorsqu’un périphérique USB est redirigé vers le bureau, l’utilisateur peut utiliser le périphérique USB comme s’il était connecté localement.

  • La redirection USB comprend trois domaines de fonctionnalité principaux :

  • Implémentation de projet open source (VHCI)
  • Service VHCI
  • Service USB

VHCI open source :

Cette partie de la fonctionnalité de redirection USB développe un système général de partage de périphériques USB sur un réseau IP. Elle se compose d’un pilote de noyau Linux et de certaines bibliothèques en mode utilisateur qui vous permettent de communiquer avec le pilote de noyau pour obtenir toutes les données USB. Dans l’implémentation Linux VDA, Citrix réutilise le pilote de noyau de VHCI. Cependant, tous les transferts de données USB entre le Linux VDA et Citrix Receiver sont encapsulés dans le paquet de protocole Citrix ICA®.

Service VHCI :

Le service VHCI est un service open source fourni par Citrix pour communiquer avec le module de noyau VHCI. Ce service fonctionne comme une passerelle entre VHCI et le service USB Citrix.

Service USB :

Le service USB représente un module Citrix qui gère toutes les virtualisations et les transferts de données sur le périphérique USB.

Fonctionnement de la redirection USB

Généralement, si un périphérique USB est redirigé avec succès vers le Linux VDA, 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 Linux VDA 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 Linux VDA active. Pour assurer la connectivité des périphériques USB, installez les pilotes et configurez correctement le système.

Le Linux VDA prend en charge une liste de périphériques USB qui sont redirigés avec succès vers et depuis le client. De plus, le périphérique est correctement monté, en particulier le disque USB, permettant à l’utilisateur d’accéder au disque sans aucune configuration supplémentaire.

Périphériques USB pris en charge

Les périphériques suivants ont été vérifiés pour prendre en charge cette version du Linux VDA. D’autres périphériques peuvent être utilisés librement, avec des résultats inattendus :

Remarque :

Le Linux VDA ne prend en charge que les protocoles USB 2.0.

  • Périphérique de stockage de masse USB VID:PID Système de fichiers
    Netac Technology Co., Ltd 0dd8:173c FAT32
    Kingston Datatraveler 101 II 0951:1625 FAT32
    Kingston Datatraveler GT101 G2 1567:8902 FAT32
    Clé USB SanDisk SDCZ80 0781:5580 FAT32
    Disque dur WD 1058:10B8 FAT32
    Souris 3D USB VID:PID  
    3DConnexion SpaceMouse Pro 046d: c62b  
    Scanner USB VID:PID  
    Epson Perfection V330 photo 04B8: 0142  

Configurer la redirection USB

Une stratégie Citrix contrôle si la redirection de périphériques USB est activée ou désactivée. De plus, 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 USB pour le Linux VDA, configurez la stratégie et les règles suivantes :

  • Stratégie de redirection de périphériques USB client
  • Règles de redirection de périphériques USB client

Activer la stratégie de redirection USB

Dans Citrix Studio, activez (ou désactivez) la redirection de périphériques USB vers et depuis le client (pour les hôtes de station de travail uniquement).

Dans la boîte de dialogue Modifier le paramètre :

  1. Sélectionnez Autorisé.
  2. Cliquez sur OK.

Image d'activation de la redirection USB

Définir les règles de redirection 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 Linux VDA.

Dans la boîte de dialogue des règles de redirection de périphériques USB client :

  1. Cliquez sur Nouveau pour ajouter une règle de redirection, ou cliquez sur Modifier pour examiner une règle existante.
  2. Après avoir créé (ou modifié) une règle, cliquez sur OK.

Paramètre de règle de redirection USB client

Compiler le module de noyau VHCI

La redirection USB dépend des modules de noyau VHCI (usb-vhci-hcd.ko et usb-vhci-iocif.ko). Ces modules font partie de la distribution Linux VDA (dans le cadre du paquet RPM). Ils sont compilés sur la base des noyaux de distribution Linux officiels et sont notés dans le tableau suivant :

Distribution Linux prise en charge Version du noyau
RHEL 7.3 3.10.0-514.el7.x86_64
RHEL 6.6 2.6.32-504.el6.x86_64
SUSE 12.2 4.4.49-92.11-default
SUSE 11.4 3.0.101-0.47.55-default
Ubuntu 16.04 4.4.0-45-generic

Important :

Si le noyau de votre machine n’est pas compatible avec le pilote compilé par Citrix pour le Linux VDA, le service USB pourrait ne pas démarrer. Dans ce cas, vous ne pouvez utiliser la fonctionnalité de redirection USB que si vous compilez vos propres modules de noyau VHCI.

Vérifier si votre noyau est compatible avec les modules compilés par Citrix

Sur la ligne de commande, exécutez la commande suivante pour vérifier si le noyau est compatible :

insmod /opt/Citrix/VDA/lib64/usb-vhci-hcd.ko
<!--NeedCopy-->

Si la commande s’exécute avec succès, le module de noyau a été chargé avec succès et la version est compatible avec celle installée par Citrix.

Si la commande s’exécute avec des erreurs, le noyau est incompatible avec le module Citrix et doit être recompilé.

Recompiler le module de noyau VHCI

Si votre module de noyau est incompatible avec la version Citrix, procédez comme suit :

  1. Téléchargez le code source du LVDA depuis le site de téléchargement de Citrix. Sélectionnez le fichier contenu dans la section « Linux Virtual Delivery Agent (sources) ».

  2. Restaurez les fichiers à partir du fichier citrix-linux-vda-sources.zip ; vous pouvez obtenir les fichiers source VHCI dans linux-vda-souces/vhci-hcd-1.15.tar.bz2 ; vous pouvez restaurer les fichiers VHCI à l’aide de tar xvf vhci-hcd-1.15.tar.bz2.

  3. Créez le module de noyau à partir des fichiers d’en-tête et du fichier Module.symvers. Suivez les étapes ci-dessous pour installer les fichiers d’en-tête du noyau et créer Module.symvers en fonction de la distribution Linux appropriée :

    RHEL 7.3/RHEL 6.9/RHEL 6.6 :

    yum install kernel-devel
    <!--NeedCopy-->
    

    SUSE 12.2 :

    
    -  zypper install kernel-devel
    
    zypper install kernel-source
    
    <!--NeedCopy-->
    

    SUSE 11.4 :

    
    zypper install kernel-source
    
    <!--NeedCopy-->
    

    Ubuntu 16.04 :

    
    apt-get install linux-headers
    
    <!--NeedCopy-->
    

    Conseil :

    Si l’installation réussit, un dossier de noyau similaire à celui-ci est créé :

    /usr/src/kernels/3.10.0-327.10.1.el7.x86_64

  4. Dans le dossier /usr/src/kernels/3.10.0-327.10.1.el7.x86_64, vérifiez que le fichier Module.symvers est présent. Si ce fichier ne se trouve pas dans le dossier, créez le noyau pour l’obtenir (par exemple, make oldconfig ; make prepare ; make modules ; make) ou copiez-le depuis /usr/src/kernels/3.10.0-327.10.1.el7.x86_64-obj/x86_64/defaults/module.*.

  5. Dans le fichier vhci-hcd-1.15/Makefile, modifiez le Makefile de VCHI et définissez KDIR sur le répertoire du noyau :

    #KDIR = $(BUILD_PREFIX)/lib/modules/$(KVERSION)/build
    
    KDIR = /usr/src/kernels/3.10.0-327.10.1.el7.x86_64
    <!--NeedCopy-->
    
  6. Dans le dossier vhci-hcd-1.15/, exécutez make pour créer le noyau VHCI.

    Remarque :

    Si la création a réussi, usb-vhci-hcd.ko et usb-vhci-iocifc.ko sont créés dans le dossier vhci-hcd-1.15/.

  7. Remplacez le module de noyau par celui qui vient d’être créé : cp -f usb-vhci-*.ko /opt/Citrix/VDA/lib64/

  8. Redémarrez le service USB : service ctxusbsd restart

  9. Déconnectez-vous et reconnectez-vous à la session. Vérifiez si la redirection USB fonctionne.

Résoudre les problèmes de redirection 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é

Pour le contrôle d’accès de tous les disques USB redirigés depuis Citrix Receiver, le VDA Linux gère tous ces périphériques avec des privilèges d’administrateur afin de garantir que seul le propriétaire peut accéder au périphérique redirigé. Par conséquent, l’utilisateur ne peut pas démonter le périphérique sans les privilèges d’administrateur.

Image d’un périphérique impossible à démonter

Fichier perdu lors de l’arrêt de la redirection d’un disque USB

Si vous redirigez un disque USB vers une session et tentez de le modifier (par exemple, créer des fichiers sur le disque), puis arrêtez immédiatement sa redirection à l’aide de la barre d’outils de Citrix Receiver, le fichier que vous avez modifié ou créé peut être perdu. Ce problème se produit car lorsque vous écrivez des données sur 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 Citrix Receiver, 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.

Image d’un fichier perdu lors de l’arrêt de la redirection d’un disque USB

Aucun périphérique dans la barre d’outils de Citrix Receiver

Parfois, il est possible que vous ne voyiez pas les périphériques répertoriés dans la barre d’outils de Citrix Receiver, ce qui indique qu’aucune redirection USB n’est en cours. Si vous rencontrez ce problème, vérifiez les points suivants :

  • La stratégie est configurée pour autoriser la redirection USB
  • Le module de noyau est compatible avec votre noyau

Image de l’onglet Périphériques dans la barre d’outils du Receiver

Remarque :

L’onglet Périphériques n’est pas disponible dans Citrix Receiver pour Linux.

Échec de la redirection lorsque les périphériques USB sont visibles dans la barre d’outils de Citrix Receiver, mais sont étiquetés restreint par la stratégie

Ce problème se produit en raison de la configuration de la stratégie du périphérique. Dans de tels cas :

  • 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 Citrix Receiver. Un périphérique peut être bloqué par le paramètre de registre de Citrix Receiver. 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

Habituellement, seuls les périphériques USB pris en charge peuvent être redirigés. Cependant, il arrive que d’autres types de périphériques soient redirigés vers une session VDA Linux active. Dans ces situations, 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 illimitée.

Remarque :

Dans le cas des lecteurs 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.

Configurer la redirection USB