Configurar la redirección USB

Los dispositivos USB se comparten entre Citrix Receiver™ y el escritorio de Linux VDA. Cuando un dispositivo USB se redirige al escritorio, el usuario puede usar el dispositivo USB como si estuviera conectado localmente.

  • La redirección USB incluye tres áreas principales de funcionalidad:

  • Implementación de proyecto de código abierto (VHCI)
  • Servicio VHCI
  • Servicio USB

VHCI de código abierto:

Esta parte de la función de redirección USB desarrolla un sistema general de uso compartido de dispositivos USB a través de una red IP. Consiste en un controlador de kernel de Linux y algunas bibliotecas de modo de usuario que te permiten comunicarte con el controlador de kernel para obtener todos los datos USB. En la implementación de Linux VDA, Citrix reutiliza el controlador de kernel de VHCI. Sin embargo, todas las transferencias de datos USB entre Linux VDA y Citrix Receiver se encapsulan en el paquete de protocolo Citrix ICA®.

Servicio VHCI:

El servicio VHCI es un servicio de código abierto proporcionado por Citrix para comunicarse con el módulo de kernel VHCI. Este servicio funciona como una puerta de enlace entre VHCI y el servicio USB de Citrix.

Servicio USB:

El servicio USB representa un módulo de Citrix que administra toda la virtualización y las transferencias de datos en el dispositivo USB.

Cómo funciona la redirección USB

Normalmente, si un dispositivo USB se redirige correctamente a Linux VDA, se crean uno o más nodos de dispositivo en la ruta /dev del sistema. A veces, sin embargo, el dispositivo redirigido no se puede usar para una sesión activa de Linux VDA. Los dispositivos USB dependen de los controladores para funcionar correctamente y algunos dispositivos requieren controladores especiales. Si no se proporcionan controladores, los dispositivos USB redirigidos son inaccesibles para la sesión activa de Linux VDA. Para garantizar la conectividad del dispositivo USB, instala los controladores y configura el sistema correctamente.

Linux VDA admite una lista de dispositivos USB que se redirigen correctamente hacia y desde el cliente. Además, el dispositivo se monta correctamente, especialmente el disco USB, lo que permite al usuario acceder al disco sin ninguna configuración adicional.

Dispositivos USB compatibles

Se ha verificado que los siguientes dispositivos son compatibles con esta versión de Linux VDA. Otros dispositivos pueden usarse libremente, con resultados inesperados:

Nota:

Linux VDA solo admite protocolos USB 2.0.

  • Dispositivo de almacenamiento masivo USB VID:PID Sistema de archivos
    Netac Technology Co., Ltd 0dd8:173c FAT32
    Kingston Datatraveler 101 II 0951:1625 FAT32
    Kingston Datatraveler GT101 G2 1567:8902 FAT32
    SanDisk SDCZ80 flash drive 0781:5580 FAT32
    WD HDD 1058:10B8 FAT32
    Ratón 3D USB VID:PID  
    3DConnexion SpaceMouse Pro 046d: c62b  
    Escáner USB VID:PID  
    Epson Perfection V330 photo 04B8: 0142  

Configurar la redirección USB

Una directiva de Citrix controla si la redirección de dispositivos USB está habilitada o deshabilitada. Además, el tipo de dispositivo también se puede especificar mediante una directiva de Delivery Controller™. Al configurar la redirección USB para Linux VDA, configura la siguiente directiva y reglas:

  • Directiva de redirección de dispositivos USB de cliente
  • Reglas de redirección de dispositivos USB de cliente

Habilitar la directiva de redirección USB

En Citrix Studio, habilita (o deshabilita) la redirección de dispositivos USB hacia y desde el cliente (solo para hosts de estación de trabajo).

En el cuadro de diálogo Editar configuración:

  1. Selecciona Permitido.
  2. Haz clic en Aceptar.

Imagen de habilitación de la redirección USB

Establecer reglas de redirección USB

Después de habilitar la directiva de redirección USB, establece las reglas de redirección mediante Citrix Studio especificando qué dispositivos están permitidos (o denegados) en Linux VDA.

En el cuadro de diálogo Reglas de redirección de dispositivos USB de cliente:

  1. Haz clic en Nuevo para agregar una regla de redirección, o haz clic en Editar para revisar una regla existente.
  2. Después de crear (o editar) una regla, haz clic en Aceptar.

Configuración de la regla de redirección USB de cliente

Compilar el módulo de kernel VHCI

La redirección USB depende de los módulos de kernel VHCI (usb-vhci-hcd.ko y usb-vhci-iocif.ko). Estos módulos forman parte de la distribución de Linux VDA (como parte del paquete RPM). Se compilan basándose en los kernels oficiales de las distribuciones de Linux y se indican en la siguiente tabla:

Distribución de Linux compatible Versión del kernel
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

Importante:

Si el kernel de tu máquina no es compatible con el controlador compilado por Citrix para Linux VDA, es posible que el servicio USB no se inicie. En este caso, solo puedes usar la función de redirección USB si compilas tus propios módulos de kernel VHCI.

Verificar si tu kernel es compatible con los módulos compilados por Citrix

En la línea de comandos, ejecuta el siguiente comando para verificar si el kernel es compatible:

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

Si el comando se ejecuta correctamente, el módulo de kernel se ha cargado correctamente y la versión es compatible con la instalada por Citrix.

Si el comando se ejecuta con errores, el kernel es incompatible con el módulo de Citrix y debe recompilarse.

Recompilar el módulo de kernel VHCI

Si tu módulo del kernel es inconsistente con la versión de Citrix, haz lo siguiente:

  1. Descarga el código fuente de LVDA desde el sitio de descargas de Citrix. Selecciona el archivo contenido en la sección “Linux Virtual Delivery Agent (sources)”.

  2. Restaura los archivos del archivo citrix-linux-vda-sources.zip; puedes obtener los archivos fuente de VHCI en linux-vda-souces/vhci-hcd-1.15.tar.bz2; puedes restaurar los archivos VHCI usando tar xvf vhci-hcd-1.15.tar.bz2.

  3. Compila el módulo del kernel basándote en los archivos de encabezado y el archivo Module.symvers. Usa los siguientes pasos para instalar los archivos de encabezado del kernel y crear Module.symvers basándote en la distribución de Linux adecuada:

    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-->
    

    Consejo:

    Si la instalación se realiza correctamente, habrá una carpeta del kernel similar a:

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

  4. En la carpeta /usr/src/kernels/3.10.0-327.10.1.el7.x86_64, verifica que el archivo Module.symvers esté presente. Si este archivo no está en la carpeta, compila el kernel para obtenerlo (por ejemplo, make oldconfig; make prepare; make modules; make) o cópialo de /usr/src/kernels/3.10.0-327.10.1.el7.x86_64-obj/x86_64/defaults/module.*

  5. En el archivo vhci-hcd-1.15/Makefile, cambia el Makefile de VCHI y establece KDIR en el directorio del kernel:

    #KDIR = $(BUILD_PREFIX)/lib/modules/$(KVERSION)/build
    
    KDIR = /usr/src/kernels/3.10.0-327.10.1.el7.x86_64
    <!--NeedCopy-->
    
  6. En la carpeta vhci-hcd-1.15/, ejecuta make para compilar el kernel VHCI.

    Nota:

    Si la compilación se realizó correctamente, se crearán usb-vhci-hcd.ko y usb-vhci-iocifc.ko en la carpeta vhci-hcd-1.15/.

  7. Reemplaza el módulo del kernel por el recién compilado: cp -f usb-vhci-*.ko /opt/Citrix/VDA/lib64/

  8. Reinicia el servicio USB: service ctxusbsd restart

  9. Cierra la sesión y vuelve a iniciarla. Comprueba si la redirección USB funciona.

Solucionar problemas de redirección USB

Usa la información de esta sección para solucionar varios problemas que podrías encontrar al usar el VDA de Linux.

No se puede desmontar el disco USB redirigido

Para el control de acceso de todos los discos USB redirigidos desde Citrix Receiver, el VDA de Linux gestiona todos estos dispositivos con privilegios administrativos para asegurar que solo el propietario pueda acceder al dispositivo redirigido. Como resultado, el usuario no puede desmontar el dispositivo sin privilegios administrativos.

Imagen de no se puede desmontar un dispositivo

Archivo perdido al detener la redirección de un disco USB

Si rediriges un disco USB a una sesión e intentas modificarlo (por ejemplo, crear algunos archivos en el disco), y luego detienes la redirección inmediatamente usando la barra de herramientas de Citrix Receiver, el archivo que modificaste o creaste puede perderse. Este problema ocurre porque cuando escribes datos en un sistema de archivos, el sistema monta la caché de memoria en el sistema de archivos. Los datos no se escriben en el disco en sí. Si detienes la redirección usando la barra de herramientas de Citrix Receiver, no queda tiempo para que los datos se vacíen en el disco, lo que resulta en la pérdida de datos. Para resolver este problema, usa el comando sync en un terminal para vaciar los datos en el disco antes de detener la redirección USB.

Imagen de archivo perdido al detener la redirección de un disco USB

No hay dispositivos en la barra de herramientas de Citrix Receiver

A veces, es posible que no puedas ver los dispositivos listados en la barra de herramientas de Citrix Receiver, lo que indica que no se está realizando ninguna redirección USB. Si encuentras el problema, verifica lo siguiente:

  • La política está configurada para permitir la redirección USB
  • El módulo del kernel es compatible con tu kernel

Imagen de la ficha Dispositivos en la barra de herramientas del Receiver

Nota:

La ficha Dispositivos no está disponible en Citrix Receiver para Linux.

Redirección fallida cuando los dispositivos USB se ven en la barra de herramientas de Citrix Receiver, pero están etiquetados como restringidos por política

Este problema ocurre debido a la configuración de la política del dispositivo. En tales casos:

  • Configura la política del VDA de Linux para habilitar la redirección
  • Comprueba si hay restricciones de política adicionales configuradas en el registro de Citrix Receiver. Un dispositivo podría estar bloqueado por la configuración del registro de Citrix Receiver. Comprueba DeviceRules en la ruta del registro para asegurarte de que el dispositivo no tenga el acceso denegado por esta configuración:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\ICA Client\GenericUSB

Un dispositivo USB se redirige correctamente, pero no puedo usarlo en mi sesión

Normalmente, solo los dispositivos USB compatibles pueden redirigirse. Sin embargo, a veces, otros tipos de dispositivos podrían redirigirse a una sesión activa del VDA de Linux. En estas situaciones, para cada dispositivo redirigido, se crea un nodo propiedad del usuario en la ruta /dev del sistema. Sin embargo, son los controladores y la configuración los que determinan si el usuario puede usar el dispositivo correctamente. Si encuentras un dispositivo que es de tu propiedad (conectado) pero inaccesible, agrega el dispositivo a una política sin restricciones.

Nota:

En el caso de las unidades USB, el VDA de Linux configura y monta el disco. El usuario (y solo el propietario que lo instaló) puede acceder al disco sin ninguna configuración adicional. Este podría no ser el caso para los dispositivos que no están en la lista de dispositivos compatibles.

Configurar la redirección USB