Granite Rapids-D GNSS Monitoring and Quality Metrics¶
The GNR-D server platform integrates a GNSS receiver and DPLL logic block which can be used to provide accurate clock signals to the integrated E825 NIC and the external E830 NICs. To support the GNR-D server platform, the integrated GNSS receiver is used as a clock source to synchronize the onboard DPLL.
To ensure that the GNSS signal is not degraded, monitoring and alarming of
satellite and signal quality are required. This GNSS monitoring is configured on
StarlingX using the gnss-monitor
instance type in the PTP configuration.
For details about the gnss-monitor
instance, see
Instance Specific Considerations.
Configure a gnss-monitor Instance¶
Procedure
Create an instance.
~(keystone_admin)]$ system ptp-instance-add test-monitor gnss-monitor
Add parameters to the instance.
~(keystone_admin)]$ system ptp-instance-parameter-add test-monitor satellite_count=8 ~(keystone_admin)]$ system ptp-instance-parameter-add test-monitor signal_quality_db=30 ~(keystone_admin)]$ system ptp-instance-parameter-add test-monitor devices="/dev/ttyACM0 /dev/gnss0" ~(keystone_admin)]$ system ptp-instance-parameter-add test-monitor cmdline_opts="-D 7"
Assign the instance to a host.
~(keystone_admin)]$ system host-ptp-instance-assign controller-0 test-monitor
Apply the configuration.
~(keystone_admin)]$ system ptp-instance-apply
Co-existence of ts2phc and gnss-monitor¶
When a ts2phc
instance is present, gnss-monitor
transparently overrides
the ts2phc.nmea_serialport
parameter in the ts2phc
configuration file
during device monitoring. For example, /dev/ttyACM0
is replaced with
/dev/ttyACM0.pty
. When the device is no longer monitored, the ts2phc
configuration is restored.
Set Threshold on GNSS Device¶
Run the following script to check the satellite count
and
signal-quality-db
thresholds detected by a given GNSS device. This can be
used to determine where to set the thresholds.
For this script to run, a gnss-monitor
instance must be configured and run.
$ sudo python /usr/rootdirs/opt/collectd/extensions/python/ptp_gnss_monitor_cli.py --devices /dev/ttyACM0
Output:
Devices supplied as argument: ['/dev/ttyACM0']
/dev/ttyACM0's gps_data: GpsData(gpsd_running=1, lock_state=1, satellite_count=21,
signal_quality_db=SignalQualityDb(min=40.0, max=51.0, avg=44.571))