Не работает правило 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. Я не знаю, почему это происходит на некоторых машинах, но для меня это никогда не было проблемой, когда они различаются.

Другие вопросы по тегам