How to troubleshoot "Devices" tab missing from Windows Receiver toolbar after connecting a Linux VDA

How to troubleshoot "Devices" tab missing from Windows Receiver toolbar after connecting a Linux VDA

book

Article ID: CTX221068

calendar_today

Updated On:

Description

This article is intended for Citrix administrators and technical teams only. Non-admin users must contact their company’s Help Desk/IT support team and can refer to CTX297149 for more information.



After connecting a Linux VDA desktop, "Devices" tab might be missing from Windows Receiver toolbar, which indicates USB redirection doesn't take place.
User-added image

Resolution

Verify the following configurations:

1. Ensure DDC policy setting "Client USB Device Redirection: Allowed" (for workstation hosts only).
    User-added image

2. Verify whether Linux kernel version is consistent with Virtual Host Controller Interface (VHCL) module included in Linux VDA
  • Get information about current kernel 
root@XXXX:~# uname -r
4.4.0-21-generic
  • Get information about VHCI module
root@XXXX:# modinfo   /opt/Citrix/VDA/lib64/usb-vhci-hcd.ko
filename:       /opt/Citrix/VDA/lib64/usb-vhci-hcd.ko
......
description:    USB Virtual Host Controller Interface driver
srcversion:     9E700B46FBDA1647A9A2865
depends:
vermagic:       4.4.0-45-generic SMP mod_unload modversions 

Note: In above example, Linux kernel version is inconsistent with VHCI Module.

3. Rebuild the VHCI module to consistent with Linux kernel
    1) In Linux VDA, verify if Module.symvers file exists under /usr/src/linux-headers-4.4.0-21-generic. If not, run apt-get install linux-headers$(uname -r) to install the kernel header files and create Module.symvers
    2) Download "Linux Virtual Delivery Agent (sources)" from the Citrix download site.
    3) Extract vhci-hcd-1.15 from citrix-linux-vda-sources.zip file and copy it to Linux VDA.
    4) Edit vhci-hcd-1.15/Makefile, comment original KDIR assignment and set it to kernel directory,
           #KDIR = $(BUILD_PREFIX)/lib/modules/$(KVERSION)/build
​           KDIR = /usr/src/linux-headers-4.4.0-21-generic
     User-added image
    5) In the folder vhci-hcd-1.15/, run make to build the VHCI kernel. If the build was successful, usb-vhci-hcd.ko and usb-vhci-iocifc.ko are created in the vhci-hcd-1.15/ folder.
    6) Replace the kernel module with the newly built one: cp -f usb-vhci-*.ko /opt/Citrix/VDA/lib64/
    7) Restart the USB service: service ctxusbsd restart
    8) Check VHCI module again, and version consistent with kernel version
      User-added image
    9) Log off and log on to the the session again. Check to see if USB redirection is functioning 

Problem Cause

USB redirection depends on the VHCI kernel modules (usb-vhci-hcd.ko and usb-vhci-iocif.ko). These modules are part of the Linux VDA RPM package and compiled based on the official Linux distribution kernel. If kernel of Linux distribution is not compatible with VHCI driver provided by Linux VDA, Citrix USB redirection won't take effect. 

Issue/Introduction

The article describes a detailed troubleshooting steps against missing "Devices" tab from Receiver toolbar.