Linux Virtual Delivery Agent

USBリダイレクト

USBデバイスは、Citrix WorkspaceアプリとLinux VDAデスクトップ間で共有されます。USBデバイスがデスクトップにリダイレクトされると、USBデバイスをローカルに接続されているかのように使用することができます。

ヒント:

ネットワーク遅延が100ミリ秒未満の場合は、USBリダイレクトを使用することをお勧めします。ネットワーク遅延が200ミリ秒を超える場合は、USBリダイレクトを使用しないでください。

USBリダイレクトの主な機能として、次の3つが挙げられます。

  • オープンソースプロジェクトの導入(VHCI)
  • VHCIサービス
  • USBサービス

オープンソースVHCI:

USBリダイレクトのこの機能により、IPネットワーク上でシステムを共有する汎用USBデバイスを開発します。この機能はLinuxカーネルドライバーおよびユーザーモードのライブラリで構成されており、ユーザーはカーネルドライバーと通信してすべてのUSBデータを取得することができます。Linux VDAの導入では、VHCIのカーネルドライバーがCitrixで再利用されます。ただし、Linux VDAとCitrix Workspaceアプリ間のUSBデータ転送はすべてCitrix ICAプロトコルパッケージに格納されます。

VHCIサービス:

VHCIサービスは、Citrixが提供する、VHCIカーネルモジュールとの通信のためのオープンソースサービスです。このサービスはVHCIとCitrix USBサービスの間のゲートウェイとして機能します。

USBサービス:

USBサービスは、USBデバイスでの仮想化およびデータ転送をすべて管理するCitrixモジュールです。

USBリダイレクトのしくみ

通常、Linux VDAへのUSBデバイスのリダイレクトが正常に行われると、デバイスノードがシステムの/devパスに作成されます。ただし、リダイレクトされたデバイスがアクティブなLinux VDAセッションで使用できない場合があります。USBデバイスが正常に機能するかどうかはドライバーによって決まり、一部のデバイスは特別なドライバーを必要とします。ドライバーが提供されていない場合、リダイレクトされたUSBデバイスはアクティブなLinux VDAセッションにアクセスできません。USBデバイスの接続を確認するには、ドライバーをインストールしてシステムを正しく構成してください。

Linux VDAは、クライアントとの間でリダイレクトが正常に行われたUSBデバイスの一覧をサポートしています。

サポートされているUSBデバイス

次のデバイスは、Linux VDAのこのバージョンをサポートしていることが確認されています。他のデバイスを使用すると、予期せぬ結果が生じる場合があります。

注:

Linux VDAでは、USB 2.0プロトコルのみがサポートされます。

USBマスストレージデバイス VID:PID ファイルシステム
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
USB 3Dマウス VID:PID
3DConnexion SpaceMouse Pro 046d: c62b
USBスキャナー VID:PID
Epson Perfection V330 photo 04B8: 0142

USBリダイレクトの設定

USBデバイスのリダイレクトの有効化および無効化は、Citrixポリシーにより制御されます。Delivery Controllerポリシーを使用してデバイスの種類を指定することもできます。USBリダイレクトをLinux VDAに設定するには、次のポリシーと規則を設定します。

  • クライアントUSBデバイスリダイレクトポリシー
  • クライアントUSBデバイスリダイレクト規則

USBリダイレクトの有効化

Citrix Studioで、クライアントとUSBデバイス間のリダイレクトを有効または無効にします(ワークステーションのホストの場合のみ)。

[設定の編集] ダイアログボックスで、以下の設定を行います。

  1. [許可] を選択します。
  2. [OK] をクリックします。

USBリダイレクトの有効化

USBリダイレクト規則の設定

USBリダイレクトポリシーを有効にしたら、Citrix Studioを使用して、Linux VDAでの使用を許可または禁止するデバイスを指定して、リダイレクト規則を設定します。

[クライアントUSBデバイスリダイレクト規則]ダイアログボックスで、

  1. [新規] をクリックしてリダイレクト規則を追加するか、[編集] をクリックして既存の規則を確認します。
  2. 規則の作成または編集後、[OK] をクリックします。

クライアントUSBリダイレクト規則設定

汎用USBリダイレクトの設定について詳しくは、「Citrixの汎用USBリダイレクトの設定ガイド」を参照してください。

VHCIカーネルモジュールを構築します

USBリダイレクトはVHCIカーネルモジュール(usb-vhci-hcd.koおよびusb-vhci-iocif.ko)によって異なります。これらのモジュールは、RPMパッケージの一部としてLinux VDAディストリビューションに含まれます。これらは、Linux公式ディストリビューションのカーネルをベースにコンパイルされたもので、次の表にまとめられています:

サポートされているLinuxディストリビューション カーネルバージョン
Amazon Linux 2 4.14.268-205
Debian 11.3 5.10.0-10
Debian 10.9 4.19.0-19
RHEL 8.3 4.18.0-240
RHEL 8.2 4.18.0-240
RHEL 8.1 4.18.0-240
RHEL 7.9、CentOS 7.9 3.10.0-1160
SUSE 15 5.3.18
Ubuntu 20.04 5.4.0-81
Ubuntu 18.04 4.15.0-154

重要:

使用するマシンのカーネルが、Linux VDA用のドライバーに対応していない場合は、USBサービスの起動が失敗することがあります。この場合は、VHCIカーネルモジュールを構築している場合のみ、USBリダイレクト機能を使用できます。

使用するカーネルがCitrixの構築したモジュールに対応しているかを確認する

コマンドラインで次のコマンドを実行し、カーネルが対応しているかを確認します:

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

コマンドが正常に実行される場合は、カーネルモジュールのロードに成功し、バージョンがCitrixによりインストールされたものに対応しています。

コマンドの実行でエラーが生じた場合、カーネルはCitrixのモジュールに対応していないため、再構築の必要があります。

VHCIカーネルモジュールの再構築

カーネルモジュールがCitrixのバージョンに対応していない場合は、次の手順に従います。

  1. Citrixのダウンロードサイトから、LVDAソースコードをダウンロードします。セクション「Linux Virtual Delivery Agent(sources)」に含まれるファイルを選択します。

  2. citrix-linux-vda-sources.zipファイルを抽出します。linux-vda-sources/vhci-hcd-1.15.zipに移動し、unzip vhci-hcd-1.15.zipコマンドを使用してVHCIソースファイルを抽出します。

  3. Linux VDAパッケージがインストールされていることを確認してから、次のコマンドのいずれかを実行します:

    • sudo bash ctxusbcfg.sh dkms

      このコマンドを実行すると、Dynamic Kernel Module Support(DKMS)プログラムを使用してVHCIカーネルモジュールを管理できます。DKMSはSUSEでは使用できません。

      注:

      sudo bash ctxusbcfg.sh dkmsコマンドは、kernel-develプログラムとDKMSプログラムをVDAにインストールします。RHELおよびCentOSにプログラムをインストールする場合、このコマンドはVDAにExtra Packages for Enterprise Linux(EPEL)リポジトリをインストールして有効にします。

      DKMSは、バージョン4.x.yからバージョン5.x.yへのようなカーネルのメジャーアップグレードを実行すると、VHCIカーネルモジュール(usb-vhci-hcd.koおよびusb-vhci-iocif.ko)の構築に失敗する場合があります。DKMSが失敗した場合は、sudo bash ctxusbcfg.sh dkmsを再度実行します。

    • sudo bash ctxusbcfg.sh build

      このコマンドは、DKMSオプションなしでVHCIカーネルモジュールを構築およびインストールします。

USBリダイレクト問題のトラブルシューティング

このセクションでは、Linux VDAの使用におけるさまざまな問題のトラブルシューティングについて説明します。

リダイレクトされたUSBディスクをマウント解除できない

Linux VDAでは、Citrix WorkspaceアプリからリダイレクトされたすべてのUSBディスクを管理者権限で管理し、所有者のみがリダイレクトされたデバイスにアクセスできるようにしています。そのため、管理者権限を持つユーザーだけがデバイスをマウント解除できます。

デバイスをマウント解除できない

USBディスクのリダイレクトを停止するとファイルが失われる

Citrix Workspaceアプリのツールバーを使用してUSBディスクのリダイレクトを直ちに停止すると、ディスク上で変更または作成したファイルが失われる可能性があります。この問題は、ファイルシステムにデータを書き込むとメモリキャッシュがファイルシステムにマウントされることが原因で発生します。データはディスクそのものには書き込まれません。Citrix Workspaceアプリのツールバーを使用してリダイレクトを停止した場合、データがディスクにフラッシュされる時間が残っていないため、データが失われます。この問題を解決するには、ターミナルのsyncコマンドを使用してデータをディスクにフラッシュしてからUSBリダイレクトを停止します。

USBディスクのリダイレクトを停止するとファイルが失われる

Citrix Workspaceアプリのツールバーにデバイスが見つからない場合

Citrix Workspaceアプリのツールバーにデバイスが表示されなくなることがありますが、これはUSBリダイレクトが行われていないことを示します。問題が発生した場合は、次の点を確認してください:

  • ポリシーが、USBリダイレクトを許可する設定になっている
  • カーネルモジュールが、使用するカーネルに対応している

Workspaceアプリツールバーのデバイスタブ

注:

[デバイス] タブはLinux向けCitrix Workspaceアプリで使用できません。

Citrix WorkspaceアプリのツールバーにUSBデバイスが表示されるが [ポリシーの制限] と表記されリダイレクトが失敗する

問題が発生した場合は、次の手順を実行してください:

  • Linux VDAポリシーを、リダイレクトを有効にする設定にします。
  • Citrix Workspaceアプリのレジストリで追加のポリシー制限が構成されているかを確認します。レジストリパスでDeviceRulesを確認し、この設定がデバイスのアクセスを拒否しないようにします:

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

詳しくは、Knowledge Centerの記事「USBデバイスの自動リダイレクトの設定方法」を参照してください。

USBデバイスのリダイレクトは正常に行われるが、セッションでデバイスを使用できない

通常、リダイレクトできるのはサポートされているUSBデバイスのみとなります。他のデバイスがLinux VDAのアクティブなセッションにリダイレクトできる場合もあります。リダイレクトしたデバイスごとに、ユーザーの所有するノードがシステムの /dev パスに作成されます。ただし、ユーザーがデバイスを正常に使用できるかどうかはドライバーと構成によって決定されます。所有(プラグイン)しているもののアクセスできないデバイスを見つけた場合は、そのデバイスを制限されていないポリシーに追加します。

注:

USBドライバーの場合は、Linux VDAがディスクの設定とマウントを行います。ユーザー(およびデバイスをインストールした所有者のみ)は追加の設定なしでディスクにアクセスできます。「サポートされているデバイス一覧」に掲載されていないデバイスについては、これが適用されないことがあります。

USBリダイレクト