NOTE
この記事は最終更新日から1年以上が経過しています。内容が古くなっている可能性があります。
環境
u-blox M10S <UART, PPS-GPIO> Raspberry Pi 4B + Ubuntu 22.04 + chrony (NTP)この Raspberry Pi HAT GR-M10-RP は UART が結線されている。PPS は引き出してあるが結線されていないので PPS と GPIO18 を接続する。とりあえずクリップで接続しているだけで、決して推奨しているわけではない。電源を切って接続すること。
いろいろインストールする。
$ sudo apt update
$ sudo apt install gpsd gpsd-tools pps-tools chronyPPS-GPIO モジュールを読み込む設定。
$ sudo vi /etc/modules
pps-gpioUART を有効にして、PPS-GPIO モジュールを紐付ける設定。
$ sudo vi /boot/firmware/config.txt
[all]
...
# Enable the UART port
enable_uart=1
# Associate GPS 1PPS with the GPIO18
dtoverlay=pps-gpio,gpiopin=18再起動する。
$ sudo rebootPPS デバイスが生えて信号が取れてくるか確認。
$ sudo 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 1680849684.999999591, sequence: 10165 - clear 0.000000000, sequence: 0
source 0 - assert 1680849685.999998084, sequence: 10166 - clear 0.000000000, sequence: 0
source 0 - assert 1680849687.000001170, sequence: 10167 - clear 0.000000000, sequence: 0
source 0 - assert 1680849687.999997829, sequence: 10168 - clear 0.000000000, sequence: 0NMEA がワラワラ取れていることを確認。
$ gpsmon -n /dev/ttS0gpsd を設定。
$ sudo vi /etc/default/gpsd
DEVICES="/dev/ttyS0 /dev/pps0"
GPSD_OPTIONS="-n"
USBAUTO="false"gpsd を再起動。
$ sudo systemctl restart gpsd.serviceデバイスを指定せず NMEA が取れていることを確認。
$ gpsmon -nchrony を設定。
$ sudo vi /etc/chrony/chrony.conf
pool ntp.ubuntu.com iburst maxsources 4
pool ntp.nict.jp iburst maxsources 4
refclock PPS /dev/pps0 lock NMEA refid GPSchrony を再起動。
$ sudo systemctl restart chrony.service$ chronyc sources -v
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
#* GPS 0 4 77 14 +291ns[ +637ns] +/- 243ns
^- prod-ntp-3.ntp4.ps5.cano> 2 6 37 27 -1629us[-1629us] +/- 125ms
^- prod-ntp-3.ntp4.ps5.cano> 2 6 37 26 -5502us[-5502us] +/- 131ms
^- alphyn.canonical.com 2 6 37 27 +1522us[+1522us] +/- 133ms
^- prod-ntp-4.ntp4.ps5.cano> 2 6 37 27 -4972us[-4972us] +/- 126ms
^- ntp-a2.nict.go.jp 1 6 37 28 +1090us[+1090us] +/- 5824us
^- 2001:ce8:78::2 1 6 37 29 +589us[ +589us] +/- 10ms
^- ntp-a3.nict.go.jp 1 6 37 29 -2611us[-2611us] +/- 5687us
^- ntp-a2.nict.go.jp 1 6 37 28 -166us[ -166us] +/- 3466us同期してなかったら数分待つと同期する。
参考にしたページのリンク