रास्पबेरी पाई पर समय कैसे रखा जाता है?


17

नवीनतम रास्पबियन रिलीज के साथ एक रास्पबेरी पाई पर समय कैसे रखा जाता है? एनटीपी सर्वर से आंतरिक घड़ी क्या सेट करती है? जब कोई NTP सर्वर उपलब्ध नहीं होता है तो क्या होता है?

अपने कार्यक्रम से मैं यह निर्धारित करने की कोशिश कर रहा हूं कि क्या एनटीपी से समय निर्धारित किया गया है और उपयोगकर्ता से यह निर्धारित करने के लिए कहें कि क्या यह नहीं है।



4
यदि वर्ष 2010 की तुलना में time.now <- तो समय निर्धारित नहीं है। आपको किसी और चीज को जानने की जरूरत नहीं है। पावर डाउन पर समय की बचत नहीं होती है और यह UNIX / POSIX विनिर्देश के अनुसार 1970 होगा। यह पता लगाने के लिए कि क्या समय गलत है, आपको NTP से क्वेरी करने और स्थानीय समय की तुलना करने की आवश्यकता है। आप निर्धारित नहीं कर सकते हैं कि समय सर्वर से पूछे बिना समय के बाहर हो गया है।
पायोत्र कुला

4
if time.now <2010 काम नहीं करेगा क्योंकि RPI वर्तमान समय को अंतिम शटडाउन समय से सेट करता है। यही कारण है कि मैं जानना चाहता हूं कि समय कैसे निर्धारित किया जाता है ताकि यदि आवश्यक हो तो मैं इस व्यवहार को अक्षम कर सकूं।
गाइ

pumkin - यह प्रश्न आंतरिक घड़ी के बहाव से कैसे संबंधित है?
गाइ

1
हो सकता है इन सवालों के बीच ओवरलैप से बचने के लिए इस सवाल का शीर्षक अधिक विशिष्ट होना चाहिए।
XTL

जवाबों:


22

रास्पबियन में टाइमकीपिंग के लिए दो सॉफ्टवेयर सॉल्यूशंस हैं। चूंकि NTP को नेटवर्क कनेक्शन की आवश्यकता है और यह काफी बेकार है यदि आपका रास्पबेरी पाई नेटवर्क से जुड़ा नहीं है, तो यह नकली-hwlock का भी उपयोग करता है । यह वर्तमान घड़ी को समय-समय पर बचाता है और इसे स्टार्टअप पर लोड करता है।

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

यह बहुत सटीक नहीं है, लेकिन प्रत्येक रिबूट के बाद 1970 में वापस यात्रा करने की समय की समस्या को समाप्त कर देगा।


अच्छा अनुमान Jivings! :-)
पायोटर कुला

@ asalamon74: क्या आप नकली-hwclock को अक्षम करने के लिए जोड़ सकते हैं या इसे अनइंस्टॉल करने की आवश्यकता होगी?
गाइ

2

आप एनटीपी आंकड़े लॉग कर सकते हैं और फिर अपने प्रोग्राम से लॉग पार्स कर सकते हैं।

एनटीपी डेमॉन सेटिंग्स फ़ाइल में संग्रहीत हैं /etc/ntp.confstatsdirNTP आंकड़ों को लॉग करने में सक्षम करने के निर्देश के साथ Uncomment लाइन । सुनिश्चित करें कि संदर्भित निर्देशिका मौजूद है और उपयोगकर्ता के लिए उपयुक्त है ntpd


1

यह जांचने के लिए कि क्या NTP सर्वर द्वारा समय निर्धारित किया गया है, आप ntpq -p का उपयोग करके देख सकते हैं कि आपको कुछ ऐसा मिलेगा *:

$ 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

यदि एनटीपी सर्वर पहुँच गया है और इस प्रकार समय सेट कर दिया गया है तो 'पहुंच' कुछ पंक्ति में 0 होगी। यह 8 बिट्स ऑक्टल स्लाइडिंग है, यानी 0,1,3,7,17,37,77,177,377

या यह - आप 'स्ट्रैटम' <16 या सिंक_पेंट को प्राप्त कर सकते हैं (यह स्पष्ट रूप से आरपीआई पर नहीं है)

$ 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
$

वैकल्पिक रूप से (मुझे लगता है कि आरपीटी पर तुरंत उपलब्ध नहीं)

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

और बाहर निकलने के कोड का उपयोग करें यहाँ भी समझाया गया है http://www.cyberciti.biz/faq/linux-unix-bsd-is-ntp-client-working/ बेशक आरपीआई विशिष्ट नहीं ...

* समय सर्वर पते वास्तविक नहीं हैं


-1

सभी समय सॉफ्टवेयर में है। NTP का उपयोग किए बिना कोई टाइमकीपिंग नहीं है।

यदि आप जांचना चाहते हैं कि क्या घड़ी सेट की गई है, dateतो यह देखने के लिए उपयोग करें कि क्या यह यूनिक्स युग दिखाता है, जो कि पाई डिफ़ॉल्ट है।


2
गलत। जब नेटवर्क कनेक्शन नहीं होता है, तो RPI वर्तमान समय को अंतिम बंद समय से सेट करता है। इसलिए घड़ी हमेशा सही समय की तुलना में कुछ यादृच्छिक समय से पहले होती है, विशेष रूप से यूनिक्स युग में नहीं।
लड़के

2
यह निश्चित रूप से मेरे पाई पर सच नहीं है। यदि मैं इसे नेटवर्क कनेक्शन के बिना बूट करता हूं तो समय युग है। मैं इसे अभी देख सकता हूं।
Jivings

2
यह शायद वितरण पर निर्भर करता है।
एलेक्स चेम्बरलेन

1
@AlexChamberlain एक अजीब विसंगति लगता है।
Jivings

1
@ जिविंग यदि रास्पियन नामक सॉफ्टवेयर का एक टुकड़ा है fake-hwclock, तो यह संभवतः आर्क पर नहीं होगा। इस तरह की फुलझड़ी आर्क की तरह लग रही है।
एलेक्स चैंबरलेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.