Cannot pass /dev/ttyACM0 to VM?

justjosh

Member
Nov 4, 2019
93
0
11
58
Probably thread number #100000 on this with no solution.

When I pass the USB device by device or by port to a VM, /dev/ttyACM0 disappears from proxmox host as well.

Remove the passthrough, it shows up again under the proxmox host.

I can pass using lxc.mount to an LXC but I need it to persist through reboots so I'm trying the VM route.

I've found that the same question has been asked many times over the years but there's always no solution.
 
i do not get it completely. what do you want to achieve?
if you do usb passthrough the device is not available anymore for the host so the devnode is removed (the vm should now handle that itself)
if it is a simple serial port, you can passthrough a serial port to the vm also with 'serialX' configs (see 'man qm' for details)
 
i do not get it completely. what do you want to achieve?
if you do usb passthrough the device is not available anymore for the host so the devnode is removed (the vm should now handle that itself)
if it is a simple serial port, you can passthrough a serial port to the vm also with 'serialX' configs (see 'man qm' for details)
The dev node should pop up on the VM level but it is not. The USB stick only generates /dev/ttyACM0 but no /dev/ttyS0 so I cannot pass it through serialX. The software on the VM only reads from /dev/ttyACM0. Supposedly ttySX and ttyACMX have different functions hence the different names.

Unless you mean that I should create a symlink from ttyACM0 to ttyS0 on the host level then pass that through to the VM, then create another symlink on the child level back from ttyS0 to ttyACM0, which is a lot of extra work for a simple task.

Code:
# ls -l /dev/serial/by-id
total 0
lrwxrwxrwx 1 root root 13 Oct 20 16:27 usb-Texas_Instruments_XDS110__03.00.00.13__Embed_with_CMSIS-DAP_L43002MO-if00 -> ../../ttyACM0
lrwxrwxrwx 1 root root 13 Oct 20 16:27 usb-Texas_Instruments_XDS110__03.00.00.13__Embed_with_CMSIS-DAP_L43002MO-if03 -> ../../ttyACM1

This is created automatically on the host level if I do not passthrough. When I passthrough USB device/port to the VM, /dev/serial does not even exist.
 
Last edited:
Supposedly ttySX and ttyACMX have different functions hence the different names.

No, they have not. The ACM comes from the chip vendor, but both are character devices and that matters. If you have software that strictly relies on the more official ttyS0 name, just symlink it or copy the device file.

I use serial in LXC and VMs regularly and never had any problem with it, as do hundreds of other people.

When I passthrough USB device/port to the VM, /dev/serial does not even exist.
Why should it, the device is not present anymore. Usage is mutually exclusive.
 
No, they have not. The ACM comes from the chip vendor, but both are character devices and that matters. If you have software that strictly relies on the more official ttyS0 name, just symlink it or copy the device file.

I use serial in LXC and VMs regularly and never had any problem with it, as do hundreds of other people.


Why should it, the device is not present anymore. Usage is mutually exclusive.
It does not appear for the VM. The serial port is not created like it is on the host.
 
Still looking for a solution. Pretty annoying to have to remap the USB device to the CT every reboot (5 or 6 steps).
 

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!