Не работает правило udev setserial low_latency
Мой сервер работает под управлением 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 всегда отсутствует после запуска?
1 ответ
Я использую следующее:
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-переконфигурирования
Вы можете проверить, что все совпадает, изучив /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. Я не знаю, почему это происходит на некоторых машинах, но для меня это никогда не было проблемой, когда они различаются.