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の実装では、CitrixはVHCIのカーネルドライバーを再利用します。ただし、Linux VDAとCitrix Workspaceアプリ間のすべてのUSBデータ転送は、Citrix ICA®プロトコルパッケージにカプセル化されます。
VHCIサービス:
VHCIサービスは、VHCIカーネルモジュールと通信するためにCitrixが提供するオープンソースサービスです。このサービスは、VHCIとCitrix USBサービス間のゲートウェイとして機能します。
USBサービス:
USBサービスは、USBデバイス上のすべての仮想化とデータ転送を管理するCitrixモジュールを表します。
USBリダイレクトの仕組み
通常、USBデバイスがLinux VDAに正常にリダイレクトされると、システム /dev パスに1つ以上のデバイスノードが作成されます。ただし、リダイレクトされたデバイスがアクティブなLinux VDAセッションで使用できない場合があります。USBデバイスは、適切に機能するためにドライバーに依存しており、一部のデバイスには特別なドライバーが必要です。ドライバーが提供されていない場合、リダイレクトされたUSBデバイスはアクティブなLinux VDAセッションからアクセスできません。USBデバイスの接続を確保するには、ドライバーをインストールし、システムを適切に構成してください。
Linux VDAは、クライアントとの間で正常にリダイレクトされるUSBデバイスのリストをサポートしています。さらに、デバイス、特にUSBディスクは適切にマウントされ、ユーザーは追加の構成なしでディスクにアクセスできます。
サポートされるUSBデバイス
| Column 1 | Column 2 | |
| 以下のデバイスは、このバージョンのLinux VDAをサポートすることが検証されています。 | その他のデバイスも自由に使用できますが、予期しない結果が生じる可能性があります。 | |
**注:** | | | | | | Header 1 | Header 2 | | - >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フラッシュドライブ | 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リダイレクトの構成
Citrixポリシーは、USBデバイスリダイレクトを有効にするか無効にするかを制御します。さらに、Delivery Controller™ポリシーを使用してデバイスの種類を指定することもできます。Linux VDAのUSBリダイレクトを構成する場合は、次のポリシーとルールを構成します。
- クライアントUSBデバイスリダイレクトポリシー
- クライアントUSBデバイスリダイレクトルール
USBリダイレクトの有効化
Citrix Studioで、クライアントとの間のUSBデバイスリダイレクトを有効(または無効)にします(ワークステーションホストのみ)。
設定の編集ダイアログで、次の手順を実行します。
- 許可を選択します。
- OKをクリックします。

USBリダイレクトルールの設定
USBリダイレクトポリシーを有効にした後、Citrix Studioを使用して、Linux VDAで許可(または拒否)されるデバイスを指定することにより、リダイレクトルールを設定します。
クライアントUSBデバイスリダイレクトルールダイアログで、次の手順を実行します。
- 新規をクリックしてリダイレクトルールを追加するか、編集をクリックして既存のルールを確認します。
-
ルールを作成(または編集)した後、OKをクリックします。
VHCIカーネルモジュールのビルド
USBリダイレクトは、VHCIカーネルモジュール(usb-vhci-hcd.koおよびusb-vhci-iocif.ko)に依存します。これらのモジュールは、Linux VDAディストリビューションの一部です(RPMパッケージの一部として)。これらは、公式のLinuxディストリビューションカーネルに基づいてコンパイルされ、次の表に示されています。
| サポートされるLinuxディストリビューション | カーネルバージョン |
|---|---|
| RHEL 8.3, CentOS 8.3 | 4.18.0-240 |
| RHEL 8.2, CentOS 8.2 | 4.18.0-240 |
| RHEL 8.1, CentOS 8.1 | 4.18.0-240 |
| RHEL 7.9, CentOS 7.9 | 3.10.0-1160 |
| RHEL 7.8, CentOS 7.8 | 3.10.0-1160 |
| SUSE 12.5 | 4.12.14 |
| Ubuntu 20.04 | 5.4.0-70 |
| Ubuntu 18.04 | 4.15.0-140 |
| Ubuntu 16.04 | 4.4.0-206 |
| Debian 10 | 4.19.0-16 |
-
重要:
-
マシンのカーネルがLinux VDA用にビルドされたドライバーと互換性がない場合、USBサービスが起動に失敗する可能性があります。この場合、独自のVHCIカーネルモジュールをビルドした場合にのみ、USBリダイレクト機能を使用できます。
カーネルがCitrixによってビルドされたモジュールと整合しているかどうかの確認
コマンドラインで次のコマンドを実行し、カーネルが整合しているかどうかを確認します。
- insmod /opt/Citrix/VDA/lib64/usb-vhci-hcd.ko
<!--NeedCopy-->
コマンドが正常に実行された場合、カーネルモジュールは正常にロードされており、バージョンはCitrixによってインストールされたものと整合しています。
コマンドの実行中にエラーが発生した場合、カーネルはCitrixモジュールと整合しておらず、再ビルドする必要があります。
VHCIカーネルモジュールの再ビルド
カーネルモジュールがCitrixバージョンと整合していない場合は、次の手順を実行します。
-
CitrixダウンロードサイトからLVDAソースコードをダウンロードします。「Linux Virtual Delivery Agent (sources)」セクションに含まれるファイルを選択します。
-
citrix-linux-vda-sources.zipファイルを展開します。linux-vda-sources/vhci-hcd-1.15.zipに移動し、
unzip vhci-hcd-1.15.zipコマンドを使用してVHCIソースファイルを展開します。 -
Linux VDAパッケージがインストールされていることを確認し、次のいずれかのコマンドを実行します。
-
sudo bash ctxusbcfg.sh dkmsこのコマンドを使用すると、Dynamic Kernel Module Support (DKMS) プログラムを使用してVHCIカーネルモジュールを管理できます。DKMSはSUSEでは利用できません。
注:
sudo bash ctxusbcfg.sh dkmsコマンドは、VDAにkernel-develおよびDKMSプログラムをインストールします。RHELおよびCentOSにプログラムをインストールする場合、このコマンドはVDAにExtra Packages for Enterprise Linux (EPEL) リポジトリをインストールして有効にします。メジャーなカーネルアップグレード(たとえば、バージョン4.x.yからバージョン5.x.yへのアップグレードなど)を実行する場合、DKMSは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ディスクのマウント解除不可
Citrix WorkspaceアプリからリダイレクトされたすべてのUSBディスクのアクセス制御について、Linux VDAはこれらすべてのデバイスを管理者権限で管理し、所有者のみがリダイレクトされたデバイスにアクセスできるようにします。その結果、ユーザーは管理者権限なしでデバイスをアンマウントできません。

USBディスクのリダイレクト停止時にファイルが失われる
USBディスクをセッションにリダイレクトし、それを変更しようとすると(たとえば、ディスク上にいくつかのファイルを作成する)、その後、Citrix Workspaceアプリのツールバーを使用してすぐにリダイレクトを停止すると、変更または作成したファイルが失われる可能性があります。この問題は、ファイルシステムにデータを書き込むとき、システムがファイルシステムにメモリキャッシュをマウントするために発生します。データはディスク自体には書き込まれません。Citrix Workspaceアプリのツールバーを使用してリダイレクトを停止すると、データがディスクにフラッシュされる時間が残っておらず、データ損失につながります。この問題を解決するには、USBリダイレクトを停止する前に、ターミナルでsyncコマンドを使用してデータをディスクにフラッシュします。

Citrix Workspaceアプリのツールバーにデバイスがない
Citrix Workspaceアプリのツールバーにデバイスが表示されない場合があります。これはUSBリダイレクトが行われていないことを示します。この問題が発生した場合は、以下を確認してください。
- ポリシーがUSBリダイレクトを許可するように構成されていること
- カーネルモジュールがカーネルと互換性があること

注:
デバイスタブは、Linux版Citrix Workspaceアプリでは利用できません。
Citrix WorkspaceアプリのツールバーにUSBデバイスが表示されるが、ポリシーによって制限されていると表示され、リダイレクトに失敗する
この問題が発生した場合は、次の手順を実行します。
- Linux VDAポリシーを構成してリダイレクトを有効にします。
-
Citrix Workspaceアプリのレジストリに追加のポリシー制限が構成されていないか確認します。レジストリパスのDeviceRulesを確認し、この設定によってデバイスへのアクセスが拒否されていないことを確認します。
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\ICA Client\GenericUSB
USBデバイスは正常にリダイレクトされるが、セッションで使用できない
通常、サポートされているUSBデバイスのみがリダイレクトできます。その他のデバイスもアクティブなLinux VDAセッションにリダイレクトされる場合があります。リダイレクトされたすべてのデバイスについて、システムの /dev パスにユーザーが所有するノードが作成されます。ただし、ユーザーがデバイスを正常に使用できるかどうかは、ドライバーと構成によって決まります。所有されている(接続されている)がアクセスできないデバイスが見つかった場合は、そのデバイスを無制限ポリシーに追加します。
注:
USBドライブの場合、Linux VDAはディスクを構成してマウントします。ユーザー(およびそれをインストールした所有者のみ)は、追加の構成なしでディスクにアクセスできます。これは、サポートされているデバイスリストにないデバイスには当てはまらない場合があります。
