Здравствуйте. Надо поднять локальный NTP сервер класса stratum 1. Использую Geos 5m gps модуль, на котором есть PPS. Поднял Gpsd демон, данные он получает, а вот сигнал PPS нет. Для указания девайсов используется device tree. GPS демон выдает следующее.
Sep 20 11:03:22 localhost.localdomain systemd[1]: Starting GPS (Global Positioning System) Daemon...
Sep 20 11:03:22 localhost.localdomain systemd[1]: Started GPS (Global Positioning System) Daemon.
Sep 20 11:03:40 localhost.localdomain gpsd[1974]: gpsd:ERROR: /dev/pps0: device activation failed.
Sep 20 11:03:40 localhost.localdomain gpsd[1974]: gpsd:ERROR: /dev/pps0: activation failed, freeing device
PPS tools следующее.
[root@localhost ~]# ppstest /dev/pps0
trying PPS source "/dev/pps0"
found PPS source "/dev/pps0"
ok, found 1 source(s), now start fetching data...
source 0 - assert 1600600961.355050557, sequence: 1876 - clear 0.000000000, sequence: 0
source 0 - assert 1600600962.355043151, sequence: 1877 - clear 0.000000000, sequence: 0
source 0 - assert 1600600963.355042594, sequence: 1878 - clear 0.000000000, sequence: 0
[root@localhost ~]# ppscheck /dev/pps0
# Seconds nanoSecs Signals
PPS ioctl(TIOCMIWAIT) failed: 25 Inappropriate ioctl for device
Вот кусок device tree, используется 0 gpio в emio, который настроен на p21 пин.
gpio0: gpio@e000a000 {
compatible = "xlnx,zynq-gpio-1.0";
#gpio-cells = <2>;
clocks = <&clkc 42>;
gpio-controller;
interrupt-controller;
#interrupt-cells = <2>;
interrupt-parent = <&intc>;
interrupts = <0 20 4>;
reg = <0xe000a000 0x1000>;
};
&gpio0 {
emio-gpio-width = <1>;
gpio-mask-high = <0x0>;
gpio-mask-low = <0x5600>;
};
pps {
compatible = "pps-gpio";
gpios = <&gpio0 54 0>;
assert-falling-edge;
};