Difference between revisions of "USB Physical Port Mapping"
Jump to navigation
Jump to search
(Created page with "Currently (Stable verstion is Proxmox 1.9) it's possible to map hardware usb port in a following way: 1. Find out physical port parameters (bus and port) qm monitor NNN qm> …") |
|||
(19 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | + | The main reason to use physical USB port mapping is to be able to connect several usb devices which have the same IDs to different virtual machines (device-1 to VM1, device-2 to VM2, etc). | |
− | + | == Map hardware USB port == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === Find out physical port parameters (bus and port) === | |
− | |||
− | 3. | + | ==== Through Qemu/KVM tool (simpler) ==== |
− | qm monitor | + | '''qm monitor ''<VM_ID>''''' |
− | + | qm> '''info usbhost''' | |
− | + | <span style="color:#FF0000">Bus 3</span>, Addr 2, <span style="color:#FF0000">Port 1.2</span>, Speed 1.5 Mb/s | |
− | + | Vendor Specific: USB device 0529:0001, HASP 2.17 | |
− | + | Bus 5, Addr 3, Port 2, Speed 12 Mb/s | |
+ | Class 00: USB device 0624:0248, USB Composite Device-0 | ||
+ | |||
+ | * Example: Bus 3, Port 1.2 => <span style="color:#FF0000">3-1.2</span> | ||
+ | |||
+ | ==== Or from the host ==== | ||
+ | '''lsusb -t''' | ||
+ | /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M | ||
+ | /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M | ||
+ | /: '''Bus 03'''.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M | ||
+ | |__ '''Port 1''': Dev 4, If 0, Class=vend., Driver=usbfs, 1.5M | ||
+ | |__ Port 2: Dev 5, If 0, Class=vend., Driver=usbfs, 1.5M | ||
+ | /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M | ||
+ | /: '''Bus 01'''.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M | ||
+ | |__ '''Port 1''': Dev 2, If 0, Class=hub, Driver=hub/4p, 480M | ||
+ | |__ '''Port 3''': Dev 5, If 0, Class=comm., Driver=usbfs, 480M | ||
+ | |__ Port 3: Dev 5, If 1, Class=data, Driver=usbfs, 480M | ||
+ | |||
+ | * Example 1: Bus 3, Port 1 => <span style="color:#FF0000">3-1</span> | ||
+ | * Example 2: Bus 1, Port 1, Port 3 => <span style="color:#FF0000">1-1.3</span> | ||
+ | |||
+ | === Add the device to the VM === | ||
+ | |||
+ | ==== Proxmox 2.x and later ==== | ||
+ | |||
+ | Edit the VM's configuration file '''/etc/pve/qemu-server/''<VM_ID>''.conf''' and add this line: | ||
+ | * Example: | ||
+ | usb0: host=<span style="color:#FF0000">3</span>-<span style="color:#FF0000">1.2</span> | ||
+ | * Examples 1 & 2: | ||
+ | usb0: host=<span style="color:#FF0000">3</span>-<span style="color:#FF0000">1</span> | ||
+ | usb1: host=<span style="color:#FF0000">1</span>-<span style="color:#FF0000">1.3</span> | ||
+ | |||
+ | ==== Proxmox 1.x ==== | ||
+ | |||
+ | * Example 1: | ||
+ | args: -device usb-host,hostbus=<span style="color:#FF0000">3</span>,hostport=<span style="color:#FF0000">1.2</span> | ||
+ | * Example 1: | ||
+ | args: -device usb-host,hostbus=<span style="color:#FF0000">3</span>,hostport=<span style="color:#FF0000">1</span> | ||
+ | * Example 2: | ||
+ | args: -device usb-host,hostbus=<span style="color:#FF0000">1</span>,hostport=<span style="color:#FF0000">1.3</span> | ||
+ | |||
+ | === Stop and restart the VM === | ||
+ | |||
+ | Stop and start the VM (a reboot is not enought). | ||
+ | |||
+ | Check that the USB devices are seen by the VM: | ||
+ | |||
+ | '''qm monitor ''<VM_ID>''''' | ||
+ | qm> '''info usb''' | ||
+ | Device 0.2, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet | ||
+ | Device 0.3, Port 2, Speed 12 Mb/s, Product QEMU USB Hub | ||
+ | <span style="color:#FF0000">Device 1.1, Port 1, Speed 1.5 Mb/s, Product HASP 2.17</span> | ||
+ | <span style="color:#FF0000">Device 1.0, Port 2, Speed 480 Mb/s, Product USB Host Device</span> | ||
+ | |||
+ | == References == | ||
+ | |||
+ | * [[Manual: vm.conf|man vm.conf]] | ||
+ | * http://www.kraxel.org/cgit/qemu/tree/docs/usb2.txt | ||
+ | |||
+ | == See also == | ||
+ | |||
+ | * [[USB Devices in Virtual Machines]] - general aspects about assigning USB devices to VMs |
Revision as of 12:33, 20 January 2016
The main reason to use physical USB port mapping is to be able to connect several usb devices which have the same IDs to different virtual machines (device-1 to VM1, device-2 to VM2, etc).
Map hardware USB port
Find out physical port parameters (bus and port)
Through Qemu/KVM tool (simpler)
qm monitor <VM_ID> qm> info usbhost Bus 3, Addr 2, Port 1.2, Speed 1.5 Mb/s Vendor Specific: USB device 0529:0001, HASP 2.17 Bus 5, Addr 3, Port 2, Speed 12 Mb/s Class 00: USB device 0624:0248, USB Composite Device-0
- Example: Bus 3, Port 1.2 => 3-1.2
Or from the host
lsusb -t /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M |__ Port 1: Dev 4, If 0, Class=vend., Driver=usbfs, 1.5M |__ Port 2: Dev 5, If 0, Class=vend., Driver=usbfs, 1.5M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/4p, 480M |__ Port 3: Dev 5, If 0, Class=comm., Driver=usbfs, 480M |__ Port 3: Dev 5, If 1, Class=data, Driver=usbfs, 480M
- Example 1: Bus 3, Port 1 => 3-1
- Example 2: Bus 1, Port 1, Port 3 => 1-1.3
Add the device to the VM
Proxmox 2.x and later
Edit the VM's configuration file /etc/pve/qemu-server/<VM_ID>.conf and add this line:
- Example:
usb0: host=3-1.2
- Examples 1 & 2:
usb0: host=3-1 usb1: host=1-1.3
Proxmox 1.x
- Example 1:
args: -device usb-host,hostbus=3,hostport=1.2
- Example 1:
args: -device usb-host,hostbus=3,hostport=1
- Example 2:
args: -device usb-host,hostbus=1,hostport=1.3
Stop and restart the VM
Stop and start the VM (a reboot is not enought).
Check that the USB devices are seen by the VM:
qm monitor <VM_ID> qm> info usb Device 0.2, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet Device 0.3, Port 2, Speed 12 Mb/s, Product QEMU USB Hub Device 1.1, Port 1, Speed 1.5 Mb/s, Product HASP 2.17 Device 1.0, Port 2, Speed 480 Mb/s, Product USB Host Device
References
See also
- USB Devices in Virtual Machines - general aspects about assigning USB devices to VMs