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

kylepyke

New Member
Jan 17, 2026
2
0
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