Мой сервер работает под управлением Ubuntu 14.04.1. я создал udev правила в /etc/udev/rules.d/09-pps.rules
чтобы получить GPS с поддержкой PPS.
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
появится при запуске. Отлично. Если я проверю флаг _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
$ 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
Почему после запуска всегда отсутствует low_latency?
Я использую следующее:
KERNEL=="ttyS0", RUN+="/bin/setserial /dev/ttyS0 low_latency"
KERNEL=="ttyS0", SYMLINK+="gps0", RUN+="/usr/sbin/ldattach pps /dev/ttyS0"
KERNEL=="pps0", OWNER="root", GROUP="dialout", MODE="0660", SYMLINK+="gpspps0"
Вы проверяли свое правило udev с помощью udevadm :?
# udevadm test /sys/class/tty/ttyS0
Ваша конфигурация setserial может быть проблемой. Проверьте конфигурацию setserial:
# dpkg-reconfigure -p low setserial
Я выбрал «всегда автосохранение». Попробуйте «всегда автосохранение», а затем проверьте настройку low_latency перед перезагрузкой. Если это не сработает, попробуйте выбрать «ядро» при выполнении команды dpkg-reconfigure.
Вы можете убедиться, что все совпадает, исследуя / var / lib / setserial.
Когда я перезагружаюсь, setserial говорит:
# setserial -G /dev/ttyS0
/dev/ttyS0 uart 16550A port 0x03f8 irq 4 baud_base 115200 spd_normal skip_test low_latency
Что соответствует тому, что находится в / var / lib / setserial
# cat /var/lib/setserial/autoserial.conf |grep -v ^\#
/dev/ttyS0 uart 16550A port 0x03f8 irq 4 baud_base 115200 spd_normal skip_test low_latency
NB: Иногда в записи setserial будет указано 8250 вместо 16550A. Я не знаю, почему это происходит на некоторых машинах, но для меня никогда не было проблемой, когда они различаются.