[SOLVED] QEMU USB Passthrough: No /dev/serial/by-id, and device still listed on host?

kylepyke

New Member
Jan 17, 2026
2
1
1
On PVE 9.1.4, I'm trying to pass a Z-wave USB dongle to a QEMU VM (Ubuntu 25.04):

Screenshot 2026-01-26 at 11.42.47 PM.png

The device is seen by both the host and VM, via lsusb :

Host:
Code:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 003 Device 003: ID 1a86:55d4 QinHeng Electronics 800 Z-Wave Stick
Bus 003 Device 004: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 003 Device 005: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 003 Device 006: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
Bus 003 Device 007: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 002: ID 2109:0812 VIA Labs, Inc. VL812 Hub
Bus 004 Device 003: ID 0bda:8156 Realtek Semiconductor Corp. USB 10/100/1G/2.5G LAN
Bus 004 Device 004: ID 2109:0812 VIA Labs, Inc. VL812 Hub
Bus 004 Device 005: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS578 SATA 6Gb/s

VM:
Code:
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 009 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 009 Device 002: ID 1a86:55d4 QinHeng Electronics 800 Z-Wave Stick
Bus 010 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Neither the host or VM has symlinks at /dev/serial/by-id and neither have any ttyUSB devices.

This dongle was attached to a separate LXC, however, I've removed the mount entry, shutdown the LXC, and rebooted. I just need to pass this stick through so it can be referenced by path in the VM. Ideas?
 
Last edited:
What's lsusb -vt say? Also try journalctl -fk, re-plug the stick and share what was logged.
 
This is most likely due to the Cloud-Init image you appear to be using. Try creating a regular Ubuntu VM (non Cloud-Init).
 
Thank you! I actually JUST figured this out, remembering a similar issue I had with GPU passthrough. This VM was created from the Proxmox Helper Scripts which installs a minimal kernal, meaning I didn't have the necessary generic USB drivers. Going to leave this here for others:

Run usb-devices, and look to see what driver your device is using. It should look like this:

Code:
T:  Bus=09 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
D:  Ver= 1.10 Cls=02(commc) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=1a86 ProdID=55d4 Rev=04.43
S:  Manufacturer=Zooz
S:  Product=800 Z-Wave Stick
S:  SerialNumber=533D004242
C:  #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=134mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=01 Driver=cdc_acm
E:  Ad=83(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm
E:  Ad=02(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms

The Driver=cdc_acm is the important part. If it says Driver=(none), this should work:

Code:
sudo apt update
sudo apt install --reinstall linux-image-generic linux-headers-generic
sudo reboot
 
  • Like
Reactions: Impact
The Driver=cdc_acm is the important part. If it says Driver=(none), this should work:

Code:
sudo apt update
sudo apt install --reinstall linux-image-generic linux-headers-generic
sudo reboot
Thank you! I was struggling getting passthrough working in my Domoticz virtual machine, trying to connect an RFXcom or RFLink. Turned out passthrough was fine but my Linux image did not have the proper drivers and thus I got Driver=(none). The reinstall you suggested fixed my issue.