Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Building a Stratum 1 NTP Server Using Odroid C2

    Scheduled Pinned Locked Moved Off-Topic & Non-Support Discussion
    45 Posts 4 Posters 7.1k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      jcpingu @stephenw10
      last edited by

      @stephenw10
      This is my ntp.conf file. Based on bingo600 comments above. Is there anything else that needs to happen here?

      server 127.127.20.0 mode 81 minpoll 4 maxpoll 4 prefer
      fudge 127.127.20.0 flag1 1 refid GPS

      security

      restrict default kod limited nomodify nopeer
      restrict -6 default kod limited nomodify nopeer

      Local users may interrogate the NTP server fully.

      restrict 127.0.0.1
      restrict -6 ::1

      stats

      driftfile /var/lib/ntp/ntp.drift

      Enable statistics logging.

      statsdir /var/log/ntpstats/
      statistics loopstats peerstats clockstats
      filegen loopstats file loopstats type day enable
      filegen peerstats file peerstats type day enable
      filegen clockstats file clockstats type day enable

      leap file

      leapfile /var/lib/ntp/leap-seconds.list

      1 Reply Last reply Reply Quote 0
      • stephenw10S
        stephenw10 Netgate Administrator
        last edited by

        No, I think it's working as expected.
        That error will always appear when you restart ntpd for any reason. I would only vbe concerned if it is still logging new errors after running for some time.

        Steve

        1 Reply Last reply Reply Quote 1
        • bingo600B
          bingo600 @jcpingu
          last edited by bingo600

          @jcpingu

          Try to put in a few ntp pool servers for reference.

          Add this to your ntp.conf

          # Internet time servers for sanity
          server 0.pool.ntp.org iburst prefer 
          server 1.pool.ntp.org iburst 
          server 2.pool.ntp.org iburst 
          server 3.pool.ntp.org iburst
          

          From here:
          http://doc.ntp.org/4.2.6/drivers/driver20.html

          It seems like the $GNRMC is not a supported sentence , and that either
          $GPZDA or $GPZDG must be sent for the NTP system to be fully autonomous. As in being able to set date/time fully via NTP.

          What GPS model do you have ?
          Is it from "China" ... Where most Ublox'es are "fakes"

          This is not an "all bad" mesage , as the PPS still will keep your clock extremely accurate (sub seconds) . You just need a bit of help setting the seconds.

          But it's strange that the nmea driver is so picky.
          Maybe gpsd would help here

          /Bingo

          If you find my answer useful - Please give the post a šŸ‘ - "thumbs up"

          pfSense+ 23.05.1 (ZFS)

          QOTOM-Q355G4 Quad Lan.
          CPUĀ  : Core i5 5250U, Ram : 8GB Kingston DDR3LV 1600
          LANĀ  : 4 x Intel 211, DiskĀ  : 240G SAMSUNG MZ7L3240HCHQ SSD

          bingo600B J 2 Replies Last reply Reply Quote 0
          • bingo600B
            bingo600 @bingo600
            last edited by bingo600

            @bingo600

            The NTP nmea refdriver doc is "buggy"

            I just had a quick glance at the source
            https://github.com/ntp-project/ntp/blob/master-no-authorname/ntpd/refclock_nmea.c

            08de05e8-b0c3-4db4-9d95-939ec3e666a3-image.png

            And it's comparing the last 3 (4) characters in the sentence so any RMC works

            And it seems like it's parsing/setting the date from RMC sentenses too.
            The only thing ZDA is providing "extra" is YYYY vs YY from RMC.

            c398f0a9-851a-409d-903c-f38f9d323831-image.png

            It should be possible to make a working NTP system with just RMC sentences , if NTP has been updated to assume that YY (21) means 2021.
            Which i expect the unfold_century function does.

            /Bingo

            If you find my answer useful - Please give the post a šŸ‘ - "thumbs up"

            pfSense+ 23.05.1 (ZFS)

            QOTOM-Q355G4 Quad Lan.
            CPUĀ  : Core i5 5250U, Ram : 8GB Kingston DDR3LV 1600
            LANĀ  : 4 x Intel 211, DiskĀ  : 240G SAMSUNG MZ7L3240HCHQ SSD

            1 Reply Last reply Reply Quote 0
            • J
              jcpingu @bingo600
              last edited by

              @bingo600 said in Building a Stratum 1 NTP Server Using Odroid C2:

              ntp pool servers

              Does it matter where the ntp pool servers are inserted in the ntp.conf file?

              bingo600B 1 Reply Last reply Reply Quote 0
              • bingo600B
                bingo600 @jcpingu
                last edited by bingo600

                @jcpingu

                This guy puts it after the drift file

                # Drift file to remember clock rate across restarts
                driftfile /var/lib/ntp/ntp.drift
                # Servers
                pool uk.pool.ntp.org iburst
                

                And have a look here
                https://lintut.com/how-to-verify-ntp-setup-is-working-properly-in-linux-or-unix-server/

                Verifying a stratum1 server might not be "super easy"

                Use
                ntpstat

                My box says (No GPS installed) :

                ntpstat
                synchronised to NTP server (80.71.132.xxx) at stratum 2 
                   time correct to within 48 ms
                   polling server every 1024 s
                
                

                And
                ntpq -p

                ntpq -p
                     remote           refid      st t when poll reach   delay   offset  jitter
                ==============================================================================
                -n1.taur.xx      .PPS0.           1 u  753 1024  377    7.164   -0.397   0.383
                *80.71.132.10x.i .GPS.            1 u  985 1024  377    1.862   -0.114   0.111
                +mmo2.ntp.xx  .PPS.            1 u  141 1024  377    2.827   -0.571   0.479
                 5.103.139.163.s .GPS.            1 u   8d 1024    0    3.267    0.348   0.000
                -82.180.61.122   193.204.114.233  2 u  735 1024  377   40.205    0.981   0.419
                +grape.inet.xx.n 68.166.61.255    2 u  315 1024  377    1.207   -0.107   0.089
                
                

                The peer with the * in front (here 80.71.132.10x.i ) is the one that is used (synced to) right now.

                o = pps peer
                * = sys peer
                # = too distant
                + = selected
                x = false ticker
                - = discarded
                
                

                Show the output of your ntpq -p

                If you find my answer useful - Please give the post a šŸ‘ - "thumbs up"

                pfSense+ 23.05.1 (ZFS)

                QOTOM-Q355G4 Quad Lan.
                CPUĀ  : Core i5 5250U, Ram : 8GB Kingston DDR3LV 1600
                LANĀ  : 4 x Intel 211, DiskĀ  : 240G SAMSUNG MZ7L3240HCHQ SSD

                J 2 Replies Last reply Reply Quote 0
                • J
                  jcpingu @bingo600
                  last edited by

                  @bingo600
                  here's ntpq -p output
                  5e7ce23a-d697-4082-8c35-3fddfeaf0d2b-image.png

                  1 Reply Last reply Reply Quote 0
                  • J
                    jcpingu @bingo600
                    last edited by

                    @bingo600
                    Here's systemctl status ntp output, still showing clock unsync error:
                    d7d84c61-17bb-4d92-8b92-7e1cd34d61be-image.png

                    1 Reply Last reply Reply Quote 0
                    • stephenw10S
                      stephenw10 Netgate Administrator
                      last edited by stephenw10

                      That error is when you started the ntp daemon. It has no data at that point, it will never sync. It's expected.

                      That output from ntpq looks good. You just need to wait for more peers with greater reach values.

                      Steve

                      J 1 Reply Last reply Reply Quote 1
                      • J
                        jcpingu @stephenw10
                        last edited by

                        @stephenw10
                        My question now is do I really need these? or was my original ntp.conf was just fine without these...

                        Internet time servers for sanity

                        server 0.pool.ntp.org iburst prefer
                        server 1.pool.ntp.org iburst
                        server 2.pool.ntp.org iburst
                        server 3.pool.ntp.org iburst

                        1 Reply Last reply Reply Quote 0
                        • stephenw10S
                          stephenw10 Netgate Administrator
                          last edited by

                          I would keep some external servers defined. More sources in agreement is going to make ntp happier, faster šŸ˜‰

                          J 1 Reply Last reply Reply Quote 1
                          • J
                            jcpingu @stephenw10
                            last edited by

                            @stephenw10
                            Thank you

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post
                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.