आप लिनक्स पर प्रोग्राम घड़ी से हार्डवेयर घड़ी कैसे सेट करते हैं?

लिनक्स सिस्टम समय निर्धारित करने के लिए स्टेम (2) कॉल प्रदान करता है। हालांकि, यह सिस्टम के समय को अपडेट करेगा, यह नई सिस्टम समय से मेल खाने के लिए BIOS हार्डवेयर घड़ी सेट नहीं करता है।

लिनक्स सिस्टम आमतौर पर शटडाउन पर और आवधिक अंतराल पर सिस्टम समय के साथ हार्डवेयर घड़ी को सिंक करते हैं। हालांकि, अगर मशीन इन स्वचालित सिंकों में से एक से पहले पावर-साइक्लेड हो जाती है, तो मशीन पुनरारंभ होने पर समय गलत होगा।

जब आप सिस्टम समय सेट करते हैं तो हार्डवेयर घड़ी को अपडेट कैसे किया जाता है?

11
प्रोग्रामिंग भाषा क्यों मायने रखती है? क्या आपके पास अलग-अलग भाषाओं के लिए अलग-अलग उत्तर हैं /
जोड़ा लेखक Kristopher Johnson, स्रोत
एक प्रोग्रामिंग भाषा निर्दिष्ट करें।
जोड़ा लेखक Lightness Races in Orbit, स्रोत
एर ................. हाँ।
जोड़ा लेखक Lightness Races in Orbit, स्रोत

5 उत्तर

विवरण के लिए आरटीसी मैन-पेज देखें, लेकिन यदि आप रूट के रूप में लॉग इन हैं, तो ऐसा कुछ:

    struct       rtc_time {
        int         tm_sec;      
        int         tm_min;      
        int         tm_hour;     
        int         tm_mday;     
        int         tm_mon;      
        int         tm_year;     
        int         tm_wday; /* unused */
        int         tm_yday; /* unused */
        int         tm_isdst;/* unused */
    };

struct rtc_time rt;
/* set your values here */
fd = open("/dev/rtc", O_RDONLY);
ioctl(fd, RTC_SET_TIME, &rt);
close(fd);
14
जोड़ा
रूट की आवश्यकता नहीं है, आरटीसी (4) के अनुसार केवल CAP_SYS_TIME क्षमता।
जोड़ा लेखक Erik Westrup, स्रोत

कॉलम() को कॉल करने के बाद, ऐसा करें:

system("/sbin/hwclock --systohc");

अधिक जानकारी के लिए hwclock (8) मैन पेज देखें।

9
जोड़ा
ध्यान दें कि यदि आपका आरटीसी यूटीसी समय का उपयोग करने के लिए सेटअप है, तो आपको अन्यथा - utc या - localtime जोड़ने की आवश्यकता है।
जोड़ा लेखक Julien Hirel, स्रोत

मैं यह भी इंगित करना चाहूंगा कि हार्डवेयर घड़ी केवल एक बिंदु के लिए सटीक है (मैंने सिस्टम देखा है जो दिन में कुछ सेकंड खोले/प्राप्त करेंगे)।

क्या आपने समय घड़ी के विरुद्ध अपनी घड़ी को सिंक करने के लिए नेटवर्क टाइम डिमन सेट अप करने पर विचार किया है?

माना जाता है कि यह सिंक्रनाइज़ेशन तब तक नहीं होता जब तक कि डिमन शुरू नहीं होता है, इसलिए आपकी हार्डवेयर घड़ी को सिंक में रखने से भी बिजली के बीच और समय सर्वर के विरुद्ध समय डिमन सिंक हो जाता है।

2
जोड़ा
मेरे अनुभव से, उनमें से अधिकतर बदलाव, मॉथबोर्ड बैटरी पर कम वोल्टेज के कारण हैं। अगर यह मिशन महत्वपूर्ण नहीं है तो मैं एक अनूठी सेवा स्थापित करने से पहले इसे जांचने का सुझाव दूंगा।
जोड़ा लेखक Manuel Ferreria, स्रोत

मैं hwclock के स्रोत कोड को पढ़कर शुरू करूंगा।

2
जोड़ा
बस इसका उपयोग करने के बजाय कोड क्यों पढ़ा?
जोड़ा लेखक Kristopher Johnson, स्रोत
@iny, मेरा मतलब था "स्रोत को क्यों पढ़ा जाए, जब आप आसानी से hwclock को कॉल कर सकते थे?" ज़ैन के पास इसका अच्छा जवाब था।
जोड़ा लेखक Kristopher Johnson, स्रोत
आप एक एम्बेडेड सिस्टम के लिए लिख रहे हैं और किसी अन्य प्रोग्राम के लिए जगह नहीं है। या शायद आप जिज्ञासा के लिए जानना चाहते हैं।
जोड़ा लेखक Zan Lynx, स्रोत
"स्ट्रेस हवलॉक" चलाना शायद किसी की जिज्ञासा को पूरा करने का सबसे तेज़ तरीका है।
जोड़ा लेखक sigjuice, स्रोत
वह मूल प्रश्न का उत्तर था। मुझे नहीं पता कि इसकी आवश्यकता क्यों है।
जोड़ा लेखक iny, स्रोत

यदि पाठ संपादक कुबंटू से अलग है (केट संपादक में डिफ़ॉल्ट है), टर्मिनल में sudo कमांड के साथ स्वयं का उपयोग करें।

  1. run terminal
  2. copy and paste this command sudo kate /etc/default/rcS press Enter
  3. enter user password (your login password) press Enter
  4. text editor will open on the desktop
  5. change the line UTC=yes to UTC=no
  6. and click save (at top of text editor tab bar)
  7. reboot
0
जोड़ा