Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

16.3. USB デバイス

このセクションでは、USB デバイスの処理に必要なコマンドを扱います。

16.3.1. ゲスト仮想マシンへの USB デバイスの割り当て

Web カラグラフ、カードリーダー、ディスクドライブ、キーボード、マウスなどのほとんどのデバイスは、USB ポートとケーブルを使用してコンピューターに接続します。このようなデバイスをゲスト仮想マシンに渡す方法は 2 つあります。
  • USB パススルーの使用 - ゲスト仮想マシンをホストするホストの物理マシンにデバイスを物理的に接続する必要があります。この場合、SPICE は必要ありません。ホストの USB デバイスは、コマンドラインまたは virt-manager でゲストに渡すことができます。「virt manager 「USB デバイスのゲスト仮想マシンへの割り当て」 」を参照してください。virt-manager 方向は、デバイスのホットプラグまたはホットアンプラグには適していません。USB 手順20.4「ゲスト仮想マシンで使用するために USB デバイスのホットプラグ」
  • USB リ方向の使用: データセンターで実行しているホストの物理マシンがある場合には、USB リ方向を使用することが推奨されます。ユーザーは、ローカルマシンまたはシンクライアントから、履歴仮想マシンに接続します。このローカルマシンには SPICE クライアントがあります。ユーザーは、任意の USB デバイスをシンクライアントにアタッチでき、SPICE クライアントはデバイスをデータセンターのホストの物理マシンにリダイレクトするので、シンクライアントで実行しているゲスト仮想マシンが使用できます。virt-manager を介した手順は、「USB リダイレクション」

16.3.2. USB デバイスリダイレクトでの制限の設定

リダイレクトから特定のデバイスを絞り込み、フィルタープロパティーを -device usb-redir に渡します。filter プロパティーはフィルタールールで構成される文字列を取ります。ルールの形式は以下のとおりです。
<class>:<vendor>:<product>:<version>:<allow>
-1 の値を使用して、特定のフィールドの値を受け入れます。| を区切り文字として使用し、同じコマンドラインで複数のルールを使用できます。デバイスがルールに渡されていないと一致する場合は、リダイレクトできません。

例16.1 ゲスト仮想マシンによるリダイレクトを制限する例

  1. ゲスト仮想マシンを用意します。
  2. ゲスト仮想マシンのドメイン XML ファイルに以下のコードの抜粋を追加します。
        <redirdev bus='usb' type='spicevmc'>
          <alias name='redir0'/>
          <address type='usb' bus='0' port='3'/>
        </redirdev>
        <redirfilter>
          <usbdev class='0x08' vendor='0x1234' product='0xBEEF' version='2.0' allow='yes'/>
          <usbdev class='-1' vendor='-1' product='-1' version='-1' allow='no'/>
        </redirfilter>
    
  3. ゲスト仮想マシンを起動し、以下のコマンドを実行して設定の変更を確認します。
    #ps -ef | grep $guest_name
    -device usb-redir,chardev=charredir0,id=redir0,/
    filter=0x08:0x1234:0xBEEF:0x0200:1|-1:-1:-1:-1:0,bus=usb.0,port=3
  4. USB デバイスをホストの物理マシンにプラグインし、virt-manager を使用してゲスト仮想マシンに接続します。
  5. メニューの USB デバイス選択をクリックすると、「Some USB devices are blocked by host policy」というメッセージが表示されます。OK をクリックして確定し、続行します。
    フィルターは有効になります。
  6. フィルターが正常に USB デバイスベンダーおよび製品を適切に確認するには、ホスト物理マシンのドメイン XML で以下の変更を加えて、USB リダイレクトを許可します。
       <redirfilter>
          <usbdev class='0x08' vendor='0x0951' product='0x1625' version='2.0' allow='yes'/>
          <usbdev allow='no'/>
        </redirfilter>
    
  7. ゲスト仮想マシンを再起動してから、virt-viewer を使用してゲスト仮想マシンに接続します。USB デバイスがゲスト仮想マシンにトラフィックをリダイレクトするようになりました。