On Tuesday, May 14, 2013 08:51:11 AM [email protected] wrote:
> Hi Vadim,
> 
> Have you tried using a UDEV rule (/etc/udev/rules.d) to create a persistent
> state for the port? What I would do is add a persistent rule for the serial
> converter so that it either has a persistent device name, or a persistent
> syslink (e.g. "ups0" could be a symlink to /dev/ttyUSBx).

Hello, yes I have.

That however doesn't fix the problem. When the USB device resets, the 
filehandle 
becomes invalid. The new USB device isn't the same file, symlink or not, so it 
needs to be reopened.


Udev helps fix things if the UPS driver restarts, but that doesn't happen 
because the driver gets stuck in a loop trying to read from the now invalid 
filehandle.

So there are two possible fixes here: make the driver abort, and hope it gets 
restarted by systemd or whatever other init system is in place, or make the 
driver itself reconnect.

I tried the first option, but so far it's not working well. USB is slow, and it 
takes a few seconds for the serial port to start working after the reset, 
during which the driver aborts instantly if it tries to open it. So what 
results is a series of very quick restarts, until the system decides that 
something is wrong and disables the service.

So I'm working on the second. I've been a bit busy with other issues, but I'm 
getting back to it now.


_______________________________________________
Nut-upsdev mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/nut-upsdev

Reply via email to