在树莓派PI上设置时间-一天出去-有什么用?


8

因此,我了解到 Raspberry PI在Internet服务器上工作起来有些不可思议,但并没有得到它的时间,我需要在本地时间链接上以及可能在/ etc / timezoneinfo上挥洒些神奇的灰尘,以使其正常工作。

问题是-似乎要整整一天,我认为它已配置为正确的时区。请参见以下屏幕截图:

时区

注意右上角的日期,并将其与终端中的日期以及后面显示日期和时间的浏览器进行比较。还要注意,我对Google进行了ping操作,它恢复正常,因此可以连接互联网。

我在欧洲中部时间,所以我根据页面完成了所有这一切:

cd /etc
sudo rm localtime
sudo ln -s /usr/share/zoneinfo/CET localtime
export TZ=CET
sudo vi timezone
CET

而且这仍然是奇怪的约会。那么,有什么用呢?如何获得正确的时间信息?

我尝试重新启动ntpd:

/etc/init.d/ntp restart

并检查同行:

$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 94.136.21.140   73.121.249.250   2 u   27   64    1  1432.35   -7.155 140.072
 ns4.nosuchhost. 131.130.251.107  2 u   30   64    1  1700.38  118.357  18.616
 ntp1.sil.at     183.183.106.246  3 u   37   64    0    0.000    0.000   0.001
 fetchmail.media 83.64.124.251    2 u  20h   64    0    0.000    0.000   0.001

运行ntptime可以得到:

ntp_gettime() returns code 5 (ERROR)
  time d56c8b65.3a5f0000  Wed, Jun 19 2013 21:56:21.228, (.228012),
  maximum error 16000000 us, estimated error 16000000 us, TAI offset 0
ntp_adjtime() returns code 5 (ERROR)
  modes 0x0 (),
  offset 0.000 us, frequency -28.937 ppm, interval 1 s,
  maximum error 16000000 us, estimated error 16000000 us,
  status 0x4041 (PLL,UNSYNC,MODE),
  time constant 7, precision 1.000 us, tolerance 500 ppm,

时间仍然不对,我看到一个错误!但是我该如何解决呢?

Answers:


6

ping到Google看起来还不错,但是您从中得到什么结果ntptime呢?

$ ntptime
ntp_gettime() returns code 0 (OK)
  time d56c8aa0.a60e5194  Thu, Jun 20 2013  4:53:04.648, (.648656024),
  maximum error 817308 us, estimated error 952 us, TAI offset 0
$

另外,要更改您的时区,建议的方法是运行sudo raspi-config,然后使用4 Internationalisation OptionsI2 Change Timezone完成操作,而不是手动编辑配置文件。


哦,我收到一个错误-请参阅问题更新。我从这里去哪里?
kmp

啊哈-谢谢!使用raspi-config工具并进行这种设置将它投入了生活,现在我有了正确的时间:-)
kmp

1
恭喜你!=)
lenik

2

只是模糊的相关,但是由于Raspberry Pi没有RTC,因此安装chrony很方便,它可以根据NTP服务器的延迟或领先程度来调整时钟的速率

假设您的时钟慢了3分钟。计时不会使系统的时钟向前跳3分钟,而是会使时钟的滴答声似乎比实际每秒钟的秒数快1秒,因此系统的时间将逐渐“漂移”回正确的时间。这避免了应用程序,日志文件等中令人讨厌的中断。

sudo apt-get install chrony

还有一个示例显示我的Pi的频率每分钟被16.671脉冲校正:

# pi@flux:/home/pi (master)
# chronyc
chrony version 1.24, copyright (C) 1997-2002 Richard P. Curnow
chrony comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions.
See the GNU General Public License version 2 for details.

chronyc> tracking
Reference ID    : 193.175.73.151 (char-ntp-pool.charite.de)
Stratum         : 3
Ref time (UTC)  : Thu Jun 20 23:37:27 2013
System time     : 0.000000445 seconds fast of NTP time
Frequency       : 0.000 ppm fast
Residual freq   : -16.671 ppm
Skew            : 1000000.000 ppm
Root delay      : 0.032029 seconds
Root dispersion : 18.442499 seconds
chronyc> 

认为NTP上的线程可以从此技巧中受益。抱歉,这不是主题。


感谢您的贡献!如果差异太大,ntpd实际上也会缓慢地漂移时间。
lenik

这就是为什么要将其设置为查询Stratum-1 NTP服务器time.nist.gov的原因,如下所述:全新安装使它可以从各种来源(可能与主时钟多跳)获取时间。有关详细信息,以及为什么你应该将其更改为time.nist.gov的原因,看到这个Q&A: raspberrypi.stackexchange.com/questions/68811/...
SDsolar

2

重新启动NTP守护程序

我所有的配置,时区,互联网连接都正常,守护程序也正在运行,但是时间不对。所以这就是我解决的方法。

sudo /etc/init.d/ntp restart

瞧!正确的时间。


1

您将要确保您的Pi从主时钟获取时间,而不是从默认设置的池中获取时间。

该时间服务器名为time.nist.gov

使用此URL最好的部分是它很聪明,可以找到最快的时间服务器来为您提供最佳结果。

我将向您介绍此Stack Exchange上的问答,而不是重复整个过程,该问答显示了更改的难易程度:

全新安装可使其从各种来源获取时间,这些来源可能与Master时钟相距很多跳。有关详细信息以及您将其更改为time.nist.gov的原因,请参阅以下问答:

如何设置Raspbian使用主时间服务器time.nist.gov?

Windows计算机也是如此。默认情况下,它们也设置为池,结果相同。修复它们的过程包括在上面引用的同一篇文章中。


0

可能是由于Raspberry Pi没有RTC(实时时钟)这一事实。因此,如果您关闭设备,则下次打开设备时,时间将是错误的。人们确实为Pi制作了RTC。可能并不是最好的,但这里却是一个

电池可以为IC提供电源,以使时钟保持畅通。


谢谢您的回答,但问题是-如果它具有电源并且已连接到Interent,那么它应该只能够获得时间,不是吗-没有任何额外的理由。
kmp

也许是一次性的,而计算机(Raspberry Pi)应该可以让时间持续下去。我这样做是因为台式计算机就是这种方式。我很确定Pi或计算机不会不断检查并重置时间。您可能必须告诉计算机(pi)刷新或更新时间。
亚历克斯

0

您也可以查看该命令sudo dpkg-reconfigure tzdata。这样您就可以轻松更改时区。每当看到时间问题,这就是我所使用的。


0

如果没有互联网连接,则可能需要手动设置时间:

sudo date -s "Tue Feb 28 18:02:54 GMT 2017"

-1

这是一个您可以设置在启动时运行的脚本,以修复您的时间

#######!/bin/bash
#######Visit www.timeapi.org to find the correct url for your timezone. Then replace the url in the first line

time=$(wget http://www.timeapi.org/utc/in+two+hours?format=%25d%20%25b%20%25Y%20%25I:%25M:%25S -q -O -)
echo "Time set to:"
sudo date -s "\`echo $time`"

您不需要sudo date-这就是ntpd目的。
Frank Kusters '16

欢迎使用Raspberry Pi SE。请浏览raspberrypi.stackexchange.com/Tour,以充分利用本网站。恐怕是,投票率下降的主要原因是,这与有效的答案相差甚远。您可以将其编辑为更现实的解决方案,或者完全删除此解决方案。
SDsolar
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.