/dev/ttyUSB0 spontaneously changes to /dev/ttyUSB1

Jonathan Ryshpan jonrysh at pacbell.net
Tue Jun 5 21:10:23 UTC 2012


This is a problem which is being kicked around on another mailing list,
devoted to the wview weather server, without very good results, so I
have taken the liberty of putting it to a wider audience:

I have a system with a device (a Davis VantagePro2 weather console)
attached to a USB port.  When the system starts, the device is visible
as /dev/ttyUSB0.  A wview server attaches to /dev/ttyUSB0 and runs fine
till suddenly the device disappears from /dev/ttyUSB0 and appears
as /dev/ttyUSB1, at which time the server fails.  

I suspect (though without much evidence) that the reason for the device 
moving around is that there is a brief interruption of service from the
device, so that it appears to the computer that a *new* device has 
appeared, which it has to find a device name for before it had deleted
the old name of the device.

I have tried the obvious, to open what ought to be the permanent
location of the device, namely:
        /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
But the software stops working when the change takes place, evidently
because
        /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
is a dynamically updated symbolic link to /dev/ttyUSB0 or /dev/ttyUSB1,
as the case may be.  The server can only be made to work again by
restarting it.

Does anyone know of a way to keep the USB device open at a known
location, maybe by creating a permanent entry in /dev, and bypassing
udev?  Any more theories about what, in general, is happening?

Thanks - jon




More information about the users mailing list