• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login
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.2k 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.
  • B
    bingo600 @jcpingu
    last edited by bingo600 Jun 22, 2021, 7:05 PM Jun 22, 2021, 6:02 PM

    @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

    B J 2 Replies Last reply Jun 22, 2021, 6:43 PM Reply Quote 0
    • B
      bingo600 @bingo600
      last edited by bingo600 Jun 22, 2021, 7:03 PM Jun 22, 2021, 6:43 PM

      @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 Jun 22, 2021, 7:16 PM

        @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?

        B 1 Reply Last reply Jun 22, 2021, 7:22 PM Reply Quote 0
        • B
          bingo600 @jcpingu
          last edited by bingo600 Jun 22, 2021, 7:56 PM Jun 22, 2021, 7:22 PM

          @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 Jun 22, 2021, 7:59 PM Reply Quote 0
          • J
            jcpingu @bingo600
            last edited by Jun 22, 2021, 7:59 PM

            @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 Jun 22, 2021, 8:02 PM

              @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
              • S
                stephenw10 Netgate Administrator
                last edited by stephenw10 Jun 22, 2021, 8:20 PM Jun 22, 2021, 8:20 PM

                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 Jun 22, 2021, 8:28 PM Reply Quote 1
                • J
                  jcpingu @stephenw10
                  last edited by Jun 22, 2021, 8:28 PM

                  @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
                  • S
                    stephenw10 Netgate Administrator
                    last edited by Jun 22, 2021, 9:35 PM

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

                    J 1 Reply Last reply Jun 23, 2021, 1:13 AM Reply Quote 1
                    • J
                      jcpingu @stephenw10
                      last edited by Jun 23, 2021, 1:13 AM

                      @stephenw10
                      Thank you

                      1 Reply Last reply Reply Quote 0
                      45 out of 45
                      • First post
                        45/45
                        Last post
                      Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
                        This community forum collects and processes your personal information.
                        consent.not_received