我的服务器运行Ubuntu 14.04.1。 我在/etc/udev/rules.d/09-pps.rules
创build了udev规则来获取带有PPS支持工作的GPS。
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
为什么在启动后总是缺lesslow_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"
你用udevadmtesting了你的udev规则吗?
# udevadm test /sys/class/tty/ttyS0
你的setserialconfiguration可能是一个问题。 检查setserial的configuration:
# dpkg-reconfigure -p low setserial
我select了“自动保存”。 尝试“自动保存总是”,然后在重新启动之前validationlow_latency设置。 如果这不起作用,请尝试在执行dpkg-reconfigure时select“内核”
您可以通过调查/ var / lib / setserial来validation事情是否匹配。
当我重新启动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。 我不知道为什么在一些机器上会发生这种情况,但是当它们不同时它对我来说从来就不是问题。