My server runs Ubuntu 14.04.1. I created udev rules in /etc/udev/rules.d/09-pps.rules
to get GPS with PPS support work.
KERNEL=="ttyS0", SYMLINK+="gps0", MODE="0666"
KERNEL=="ttyS0", RUN+="/bin/setserial -q /dev/%k low_latency"
KERNEL=="ttyS0", RUN+="/usr/sbin/ldattach pps /dev/%k"
/dev/pps0
will appear at startup. All right.
If I check _low_latency_ flag it looks like
$ sudo setserial -a /dev/ttyS0
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4
Baud_base: 115200, close_delay: 50, divisor: 0
closing_wait: 3000
Flags: spd_normal skip_test
$ sudo setserial /dev/ttyS0 low_latency
$ sudo setserial -a /dev/ttyS0
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4
Baud_base: 115200, close_delay: 50, divisor: 0
closing_wait: 3000
Flags: spd_normal skip_test low_latency
Why is low_latency always missing after startup?
Best Answer
I use the following:
Did you test your udev rule with udevadm:?
Update
Your setserial configuration might be a problem. Check the configuration of setserial:
I selected "autosave always." Try "autosave always" and then verify the low_latency setting before rebooting. If that does not work try selecting "kernel" when you do the dpkg-reconfigure
You can verify that things match up by investigating /var/lib/setserial.
When I reboot setserial says:
Which matches what is found in /var/lib/setserial
NB: Sometimes the entry in setserial will say 8250 instead of 16550A. I do not know why this happens on some machines but it has never been an issue for me when they differ.