Raspberry Pi'de zaman nasıl tutulur?


17

En son Raspbian sürümüyle Raspberry Pi'de zaman nasıl tutulur? NTP sunucusundaki dahili saati ne ayarlar? Hiçbir NTP sunucusu yoksa ne olur?

Programımdan zamanın NTP'den ayarlanıp ayarlanmadığını belirlemeye çalışıyorum ve kullanıcıdan ayarlamamasını isteyin.



4
Eğer time.now <2010 yılından - ise, zaman ayarlanmamıştır. Başka bir şey bilmenize gerek yok. Güç kesintilerinde zaman tasarrufu yapılmaz ve UNIX / POSIX spesifikasyonlarına göre 1970 olacaktır. Zamanın yanlış olup olmadığını öğrenmek için NTP'yi sorgulamanız ve yerel saati karşılaştırmanız gerekir. Zaman sunucusu sormadan zamanın senkronize olup olmadığını belirleyemezsiniz.
Piotr Kula

4
RPi geçerli kapanma zamanını son kapatma zamanından ayarladığından time.now <2010 çalışmazsa. Bu nedenle, zamanın nasıl ayarlandığını bilmek istiyorum, böylece gerekirse bu davranışı devre dışı bırakabilirim.
Guy

balkabağı - bu soru iç saatin kaymasıyla nasıl ilişkilidir?
Guy

1
Belki de bu sorular arasında örtüşmeyi önlemek için bu sorunun başlığı daha belirgin olmalıdır.
XTL

Yanıtlar:


22

Raspbian'ın zaman işleyişi için iki yazılım çözümü vardır. Yana NTP ağ bağlantısı gerektirir ve bu sizin Ahududu Pi ağa bağlı değilse oldukça işe yaramaz, aynı zamanda kullandığı sahte-hwclock yapabilirsiniz . Geçerli saati periyodik olarak kaydeder ve başlangıçta yükler.

pi@raspberrypi ~ $ cat /etc/fake-hwclock.data 
2012-08-15 03:17:01

Bu çok doğru değil, ancak her yeniden başlatmadan sonra 1970'e geri dönme zaman sorununu ortadan kaldıracak.


İyi tahmin Jivings! :-)
Piotr Kula

@ asalamon74: Sahte hwclock'u nasıl devre dışı bırakacağınızı ekleyebilir misiniz veya kaldırılması mı gerekiyor?
Guy

2

Programınızdan NTP istatistiklerini günlüğe kaydedebilir ve günlükleri ayrıştırabilirsiniz.

NTP arka plan programı ayarları dosyada saklanır /etc/ntp.conf. statsdirNTP istatistik günlüğünü etkinleştirmek için direktifli uncomment satırı Başvurulan dizinin mevcut olduğundan ve kullanıcı için yazılabilir olduğundan emin olun ntpd.


1

Zamanın bir NTP sunucusu tarafından ayarlanıp ayarlanmadığını kontrol etmek için ntpq -p'yi kullanmayı deneyebilirsiniz * gibi bir şey elde edersiniz *:

$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*223.212.138.2    .MRS.           1 u  424  512  377    4.080   -4.551  21.857
+ts0.tttsc.nvm.e  .GPS.           1 u  387  512  363    1.304   -7.563  28.405
+218.89.10.3      217.13.17.82    2 u  334  512  377    1.853   -4.562  19.474

NTP sunucusuna ulaşıldığında ve böylece zamanı ayarladıysanız, 'erişim' bazı satırlarda> 0 olur. 8 bit sekizli, yani 0,1,3,7,17,37,77,177,377

Veya bu - 'stratum' <16 veya sync_ntp'yi grep edebilirsiniz (bu açıkça RPi'de değil)

$ ntpq -c rl
associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync,
version="ntpd 4.2.6p5@1.2349-o Mon Jul 18 09:22:49 UTC 2013 (1)",
processor="x86_64", system="Linux/2.6.32-431.29.2.el6.x86_64", leap=00,
stratum=4, precision=-21, rootdelay=40.242, rootdisp=315.102,
refid=192.168.1.123,
reftime=d82131cd.fbb96c5e  Thu, Nov 27 2014 13:14:53.983,
clock=d82138e6.fd03bdd1  Thu, Nov 27 2014 13:45:10.988, peer=61770, tc=9,
mintc=3, offset=5.214, frequency=52.475, sys_jitter=12.217,
clk_jitter=23.319, clk_wander=1.373
$

Alternatif olarak (ntpstat'ın RPi'de hemen kullanılamayacağını düşünüyorum)

$ ntpstat
synchronised to NTP server (192.168.1.123) at stratum 4
   time correct to within 310 ms
   polling server every 512 s

ve burada da açıklanan çıkış kodlarını kullanın http://www.cyberciti.biz/faq/linux-unix-bsd-is-ntp-client-working/ RPi'ye özgü değil ...

* Zaman sunucusu adresleri gerçek değil


-1

Zaman işleyişi tamamen yazılımda. NTP kullanılmadan zaman işleyişi yoktur.

Saatin ayarlanmış olup olmadığını kontrol etmek istiyorsanız date, Pi'nin varsayılan olarak ayarlayacağı Unix dönemini gösterip göstermediğini görmek için kullanın.


2
Yanlış. RPi, ağ bağlantısı olmadığında geçerli saati son kapatma saatinden ayarlar. Bu yüzden saat, her zaman doğru zamandan daha önce rastgele bir zamandır, zorunlu olarak Unix dönemi değildir.
Guy

2
Pi'imde bu kesinlikle doğru değil. Bir ağ bağlantısı olmadan önyükleme yaparsam, zaman çağıdır. Bunu şimdi görebiliyorum.
Jivings

2
Muhtemelen dağılıma bağlıdır.
Alex Chamberlain

1
@AlexChamberlain Tuhaf bir tutarsızlık görünüyor.
Jivings

1
@Jivings Raspbian'da denilen bir yazılım parçası varsa fake-hwclock, muhtemelen Arch'de olmayacak. Arch'ın görmezden geldiği tür tüy gibi geliyor.
Alex Chamberlain
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.