มีกลไกที่มีอยู่ซึ่งซิงโครไนซ์ระบบ linux กับ NTP ขณะออนไลน์หรือไม่และมี RTC ที่คาดการณ์ได้ในขณะออฟไลน์หรือไม่
เราดำเนินการ "นักสะสม" ระยะไกล: ระบบ Linux ในตัวที่รวบรวมและเซ็นเซอร์ข้อมูลเวลา เราต้องการข้อผิดพลาดของนาฬิกาเพื่อให้มีขนาดเล็กพอสมควรพูดน้อยกว่า 5 วินาที โดยปกติเราจะใช้ NTP เพื่อซิงค์นาฬิกาของพวกเขาและใช้งานได้ดีตราบใดที่ระบบออนไลน์
ปัญหาคือนักสะสมบางคนมีลิงค์ที่ไม่ดีมากซึ่งสามารถลงไปได้หลายชั่วโมงหลายวันหรือหลายสัปดาห์ นั่นไม่ได้หยุดการรวบรวมข้อมูลในตัวเครื่อง แต่หากไม่มี NTP นาฬิการะบบ Linux จะลอยได้ไม่ดีและคาดเดาไม่ได้
OTOH RTC ของฮาร์ดแวร์ก็ลอยแรงเช่นกัน แต่ในอัตราคงที่ อัตราดริฟท์ RTC แตกต่างกันไปในแต่ละบอร์ด แต่มีค่าคงที่ต่อบอร์ดและสามารถวัดได้
ฉันเดาว่าสิ่งที่เราต้องการคือกลไกที่ทำสิ่งต่อไปนี้:
- วัดอัตราการดริฟท์ RTC ของบอร์ดก่อนการปรับใช้
- ปรับเวลาของระบบอย่างต่อเนื่อง / สม่ำเสมอผ่าน NTP เมื่อทำได้
- ปรับเวลาของระบบเป็นประจำจาก RTC เมื่อไม่สามารถใช้ NTP ได้ นำอัตรา RTC ที่เป็นที่รู้จักมาพิจารณา
- ตัวเลือก: วัดและบันทึกอัตราการล่องลอยของ RTC อย่างต่อเนื่องขณะออนไลน์ (1)
ด้วย 'กลไก' ฉันหมายถึงบางส่วนที่ได้รับการดูแลรักษาเป็นอย่างดีมีเอกสารชิ้นส่วนซอฟต์แวร์และ / หรือการตั้งค่าที่สามารถจัดการทั้งสองสถานะ "ออนไลน์" กับ "ออฟไลน์" ตรวจสอบให้แน่ใจว่านาฬิการะบบถูกซิงโครไนซ์กับแหล่งเวลาที่ถูกต้อง rtc) ตรวจจับการเปลี่ยนแปลงสถานะและแก้ไขการดริฟท์ RTC ไม่สำคัญว่าจะมีการใช้งานเป็นพิเศษ / การกำหนดค่าปลั๊กอิน ntpd เป็น daemon ที่แยกต่างหากเป็นงาน cron หรืออื่น ๆ
ฉันได้ดูที่Chronyแต่ตามเอกสารของมันพยายามที่จะทำนายการดริฟท์ของนาฬิการะบบซึ่งในกรณีของเราลอยไปไกลกว่า RTC มาก Chrony ดูเหมือนว่าจะใช้ RTC เพื่อให้เวลาในการรีบูตเท่านั้น
(1) หมายเหตุ ntpd เปิดใช้งานโหมด '11 -minute 'ของเคอร์เนล (อัปเดต rtc จากนาฬิการะบบทุก 11 นาที) ดูเหมือนว่าจะไม่มีวิธีใดในการใช้เมล็ดในปัจจุบันและ ntpd เพื่อป้องกันโหมด 11 นาที ดังนั้นข้อมูลดริฟท์ rtc ใด ๆ จะหายไปขณะที่ ntpd กำลังทำงาน (thx @billthor)
การปรับปรุง / แก้ไข:
- เรากำลังพิจารณาที่จะเพิ่มนาฬิกาวิทยุภายนอกสำหรับสัญญาณ MSF หรือ DCF77 (เราอยู่ในยุโรป) ผ่าน USB หรืออนุกรม แต่เราค่อนข้างจะรักษาฮาร์ดแวร์ให้ผอม
- นักสะสมของเราอยู่ในอาคารบ่อยครั้งที่อยู่ในห้องใต้ดิน ดังนั้นการเพิ่มนาฬิกา GPS จะไม่ช่วย
- เราใช้ Debian 7 นั่นหมายถึง hwclock จาก util-linux-2.20.1, ntpdate-4.2.6p5, ntpd จาก ntp-4.2.6.p5, chrony-1.24 (อาจเป็น 1.30)
- หมายเหตุว่าปัญหาของเราไม่ได้ว่าเราไม่ได้รู้วิธีการใช้
ntpdate(8)
,hwclock(8)
,date(1)
ฯลฯ โปรดดูส่วนเพิ่มเข้ามาในตัวเอียงเกี่ยวกับสิ่งที่ผมหมายถึงกับ 'กลไก' - เพิ่มเชิงอรรถเกี่ยวกับ '11 -minute mode '
- นี่คือการสนทนาที่น่าสนใจมากเกี่ยวกับออฟไลน์ซิงค์และ RTC ดริฟท์