USBパススルー
ここでいうUSBパススルーは物理鯖であるホストに繋いだUSBを仮想マシン側が認識できる技術
要は仮想マシンでも手元にあるUSB機器使いたいよね、って話
環境
やり方
最初はまだUSB機器を接続しないこと!
ここでのSSH作業はすべて親であるProxmox側でやる。
まずは接続先のVMIDを調べておく
qm monitor <VM_ID>
次のコマンドでホスト側のUSB一覧が表示される
info usbhost
当然何も接続されていなければ何も表示されない
ここでUSBを接続してもう一度実行 認識すればこのように表示されるはず
qm> info usbhost Bus 2, Addr 7, Port 1.6, Speed 480 Mb/s Class 00: USB device 1307:0165, series
必要なのは Bus番号とPort番号であり、Busが2、Portが1.6といえる
最後に/etc/pve/qemu-server/<VM_ID>.confにUSB情報を記述する
構文はusb0: host=<Bus_num>-<Port_num>
となり、上の例だとusb0: host=2-1.6
と記述する。
他の例
- Bus 2, Port 1 => 2-1
- Bus 1, Port 1, Port 3 => 1-1.3
記述先は必ず[to2]
より上に書くこと!
boot: dcn bootdisk: virtio0 <略> virtio0: local2:115/vm-115-disk-1.qcow2,format=qcow2,size=58G usb0: host=2-1.6 ←コレ! [to2] boot: dcn bootdisk: virtio0 cores: 2 <略>
そして最後にStop→Start OSによる再起動では認識できないので注意
確認
さっきのqm
コマンドで今度はクライアント側を確認
qm monitor <VM_ID> qm> info usb Device 0.2, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet Device 1.2, Port 1, Speed 480 Mb/s, Product series
仮想マシン側からでも
user@ubuntu:~$ lsusb Bus 001 Device 002: ID 1307:0165 Transcend Information, Inc. 2GB/4GB Flash DriveBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 002: ID 0627:0001 Adomax Technology Co., Ltd Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub