我的工作系统 (Ubuntu 16.04 x64) 将 GNSS 接收器连接到串行端口 /dev/ttyS6,并通过该端口提供 PPS 信号。早期的 ldattach 18 /dev/ttyS6 创建了 /dev/pps0(如预期的那样)。但从本周一开始它就不再创建 pps 设备 (/dev/pps0)。
dmesg | grep -i pps 显示该设备已创建,然后在不到一秒的时间内被删除。
[ 1.018267] pps_core: LinuxPPS API ver. 1 registered
[ 1.018268] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
[ 1007.490177] pps_ldisc: PPS line discipline registered
[ 1007.490404] pps pps0: new PPS source serial6
[ 1007.490412] pps pps0: source "/dev/ttyS6" added
[ 1007.729611] pps pps0: removed
我花了一整天的时间,但还是没找到解决方案。如果需要任何其他信息,请告诉我。任何线索都将不胜感激。
PS 没有任何 udev 规则或 systemd 服务可以自动启动 pps 设备。并且没有其他正在运行的 ldattach 实例。
UP: dmesg 日志中没有 grep 的部分
[ 44.196119] aufs au_opts_verify:1623:dockerd[2636]: dirperm1 breaks the protection by the permission bits on the lower branch
[ 1007.490177] pps_ldisc: PPS line discipline registered
[ 1007.490404] pps pps0: new PPS source serial6
[ 1007.490412] pps pps0: source "/dev/ttyS6" added
[ 1007.729611] pps pps0: removed
[ 1540.200506] pps pps0: new PPS source serial6
UP:ldattach -d 输出
[grin@grinDesktop ~]$ sudo ldattach -d 18 /dev/ttyS6
ldattach: opened /dev/ttyS6
ldattach: set to raw 0 ---: cflag=0x14b2
ldattach: line discipline set to 18
解决方案:原因在于连接不可靠(与 PCI-E 卡上的串行端口连接)。重新连接电缆后,问题就解决了。谢谢大家的帮助。=)