USB Passthrough struggles

xtraorange

New Member
Feb 27, 2023
7
0
1
I have a brother printer connected to my proxmox machine, which I can view using lsusb on the host. I have the device passed through to the VM (Ubuntu Server) in the USB Device settings. On the Monitor tab, running info usbhost lists the printer. However within the VM, I can't get the printer (or any other USB devices) to list using lsusb or any other similar command.

I have fully shut down and started the VM. I've rebooted the proxmox machine. I've tried all options for passing through the USB (3.0 on and off, both port and device passthrough). I just cannot seem to get the device to be available on the machine.

Any suggestions? I'm at a loss, and my Google fu just isn't strong enough for this one.
 
Hi there,

can you share lsusb from the host, as well as the config of the VM with us (/etc/pve/qemu-server/<ID>.conf)?
 
Hi there,

can you share lsusb from the host, as well as the config of the VM with us (/etc/pve/qemu-server/<ID>.conf)?
lsusb on Host:
Code:
Bus 003 Device 002: ID 8087:8000 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 004: ID 04f9:0061 Brother Industries, Ltd HL-L2300D series
Bus 002 Device 003: ID 0557:2419 ATEN International Co., Ltd
Bus 002 Device 002: ID 0557:7000 ATEN International Co., Ltd Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Config:
Code:
agent: 1
boot: order=ide2;scsi0;net0;ide0
cipassword: <redacted>
ciuser: james
cores: 1
ide0: local-lvm:vm-201-cloudinit,media=cdrom,size=4M
ide2: none,media=cdrom
ipconfig0: ip=dhcp
machine: q35
memory: 1024
meta: creation-qemu=6.2.0,ctime=1659112874
name: docker-networking
net0: virtio=12:E9:6A:0C:0B:2A,bridge=vmbr0,firewall=1
numa: 0
onboot: 1
ostype: l26
scsi0: local-lvm:vm-201-disk-0,format=raw,size=32G
scsihw: virtio-scsi-pci
serial0: socket
smbios1: uuid=048ff77b-1e54-49da-b2b0-13863a17f4c5
sockets: 1
sshkeys: <redacted>
usb0: host=04f9:0061
vga: serial0
vmgenid: bcea37e7-eecc-4b17-a797-e98381771b32
 
Do you know if PCIe passthrough is possible when the USB controller is part of the motherboard? Is that still treated as PCIe even though it's integrated?
Yes, many devices are "just" PCIe or USB devices on the motherboard (or even on the nowadays highly integrated CPU). For example: my on-board Bluetooh is USB but the WiFi on the same chip is PCIe (and both passthrough nicely). Note that you cannot share devices from the same IOMMU group, so check your groups with this console command: for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done.
 
  • Like
Reactions: asianpianoman
Yes, many devices are "just" PCIe or USB devices on the motherboard (or even on the nowadays highly integrated CPU). For example: my on-board Bluetooh is USB but the WiFi on the same chip is PCIe (and both passthrough nicely). Note that you cannot share devices from the same IOMMU group, so check your groups with this console command: for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done.
I think I might be in over my head a bit.

This is the output I pull from the host machine for that command:
Code:
IOMMU group * 00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v3 Processor DRAM Controller [8086:0c08] (rev 06)
00:14.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI [8086:8c31] (rev 05)
00:19.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection I217-LM [8086:153a] (rev 05)
00:1a.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 [8086:8c2d] (rev 05)
00:1c.0 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 [8086:8c10] (rev d5)
00:1c.1 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #2 [8086:8c12] (rev d5)
00:1d.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 [8086:8c26] (rev 05)
00:1f.0 ISA bridge [0601]: Intel Corporation C222 Series Chipset Family Server Essential SKU LPC Controller [8086:8c52] (rev 05)
00:1f.2 SATA controller [0106]: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] [8086:8c02] (rev 05)
00:1f.3 SMBus [0c05]: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller [8086:8c22] (rev 05)
00:1f.6 Signal processing controller [1180]: Intel Corporation 8 Series Chipset Family Thermal Management Controller [8086:8c24] (rev 05)
01:00.0 PCI bridge [0604]: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge [1a03:1150] (rev 03)
02:00.0 VGA compatible controller [0300]: ASPEED Technology, Inc. ASPEED Graphics Family [1a03:2000] (rev 30)
03:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03)
 
This is the output I pull from the host machine for that command:
IOMMU group *...
IOMMU is not enabled and you won't be able to do PCI(e) passthrough. Check the Proxmox manual to enable it (and also in the motherboard BIOS) before attempting to pass real hardware to a VM (with all the caveats that usually apply).
Your motherboard has two USB controllers. In my (limited) experience, you might be able to passthrough 00:14.0 (if you enable IOMMU!), but I don't know which USB ports are connected to it (which will no longer be available to the Proxmox host or other VMs).
 
IOMMU is not enabled and you won't be able to do PCI(e) passthrough. Check the Proxmox manual to enable it (and also in the motherboard BIOS) before attempting to pass real hardware to a VM (with all the caveats that usually apply).
Your motherboard has two USB controllers. In my (limited) experience, you might be able to passthrough 00:14.0 (if you enable IOMMU!), but I don't know which USB ports are connected to it (which will no longer be available to the Proxmox host or other VMs).
I went through the steps I found in the documentation, but when I get to the point of doing the update-initramfs command, it keeps indicating "No /etc/kernal/proxmox-boot-uuids found, skipping ESP sync"
 
I went through the steps I found in the documentation, but when I get to the point of doing the update-initramfs command, it keeps indicating "No /etc/kernal/proxmox-boot-uuids found, skipping ESP sync"
That is no necessarily a problem but it's hard to say without any context. I assume your Proxmox was installed some time before proxmox-boot-tool was added? The on-line manual is for the latest Proxmox version. What Proxmox version are you running (pveversion)?
 
That is no necessarily a problem but it's hard to say without any context. I assume your Proxmox was installed some time before proxmox-boot-tool was added? The on-line manual is for the latest Proxmox version. What Proxmox version are you running (pveversion)?
5.15.39-3-pve
 
As a measure of debugging, I tried connecting and forwarding another device (usb receiver). No success there either.