Ntp

執行 setserial low_latency 的 udev 規則不起作用

  • October 20, 2014

我的伺服器執行 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"

您是否使用 udevadm: 測試了您的 udev 規則?

# 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

注意:有時 setserial 中的條目會說 8250 而不是 16550A。我不知道為什麼在某些機器上會發生這種情況,但是當它們不同時,這對我來說從來都不是問題。

引用自:https://serverfault.com/questions/638067