Passed-through USB port changes the bus number after restart

apax

Member
Apr 3, 2019
11
5
23
60
Dear experts,

There have been several answers to questions similar to mine suggesting to use device vendorid:deviceid, but this does not work in my case.
I am running PVE 7.4-17 and my VM use pass-through for individual USB disks.

This is the proxmox server usb configuration:
root@proxmoxserver:~# lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp. Integrated Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 007: ID 0bc2:ab38 Seagate RSS LLC Backup Plus Hub (Mass Storage)
Bus 003 Device 006: ID 0bc2:ab45 Seagate RSS LLC Backup+ Hub
Bus 003 Device 005: ID 0bc2:ab38 Seagate RSS LLC Backup Plus Hub (Mass Storage)
Bus 003 Device 004: ID 0bc2:ab45 Seagate RSS LLC Backup+ Hub

This is the VM configuration:
root@proxmoxserver:~# cat /etc/pve/qemu-server/201.conf balloon: 3072 boot: c bootdisk: scsi0 cores: 3 memory: 7424 name: backupserver net0: virtio=CE:28:2E:13:88:EF,bridge=vmbr0 numa: 0 onboot: 1 ostype: l26 scsi0: nasserver:201/vm-201-disk-0.qcow2,size=32G scsihw: virtio-scsi-pci smbios1: uuid=44085c4b-349c-4522-b1f0-f1f7508caad0 sockets: 1 vmgenid: a4ee3a12-5d3a-4596-a449-8133d0ba2f6a usb1: host=3-3.2.1,usb3=yes usb2: host=3-3.3.1,usb3=yes

and the QM monitoe output for this VM:
root@proxmoxserver:~# qm monitor 201 Entering QEMU Monitor for VM 201 - type 'help' for help qm> info usbhost Bus 3, Addr 7, Port 3.3.1, Speed 5000 Mb/s Class 00: USB device 0bc2:ab38, Backup+ Hub BK Bus 3, Addr 5, Port 3.2.1, Speed 5000 Mb/s Class 00: USB device 0bc2:ab38, Backup+ Hub BK Bus 2, Addr 3, Port 8, Speed 12 Mb/s Class e0: USB device 8087:0a2a qm> info usb Device 0.2, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet, ID: tablet Device 1.1, Port 2, Speed 5000 Mb/s, Product Backup+ Hub BK, ID: usb6 Device 1.2, Port 3, Speed 5000 Mb/s, Product Backup+ Hub BK, ID: usb7

the problem is that after reboot host=3-3.2.1 and host=3-3.3.1 sometimes become host=2-3.2.1 and host=2-3.3.1 ! and I cannot use the syntax
usb1: host=0bc2:ab38,usb3=yes usb2: host=0bc2:ab38,usb3=yes

Because the vendorid:deviceid (0bc2:ab38), is identical for the two disks and does not work.

Any suggestion on how to uniquely identify USB disks for passthrough to Virtual machines in proxmox ?

Thanks Alberto.
 
the problem is that after reboot host=3-3.2.1 and host=3-3.3.1 sometimes become host=2-3.2.1 and host=2-3.3.1 !
Interesting, I have never seen this happen before. I would assume both busses are connected to the same USB controller chip or maybe the BIOS initializes them in random order?
Can you find USB ports on your system that are connected to a different USB root chip? I use a USB flash drive and ls -l /dev/disk/by-path/ to find out which port goes to which controller. Or add a USB PCIe add-in card that most likely does not exhibit such behavior?

Note that USB passthrough has a lot of CPU overhead and does not work well for low-latency or high-bandwidth devices. Maybe do a PCIe passthrough of a whole USB controller instead? But that comes with it own set of caveats...
 
  • Like
Reactions: apax

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!