Raspberry Pi ใช้เวลาจากที่ไหน?


44

ฉันไม่จำเป็นต้องตั้งนาฬิกา (นอกเหนือจากเขตเวลา) บน Raspberry Pi มันได้รับเวลาจากที่ไหน? มันแม่นยำแค่ไหน?


การติดตั้งใหม่ช่วยให้สามารถรับเวลาจากแหล่งที่มาที่หลากหลาย สำหรับรายละเอียดและเหตุผลที่คุณควรเปลี่ยนเป็น time.nist.gov โปรดดูคำถาม & คำตอบนี้: raspberrypi.stackexchange.com/questions/68811/…
SDsolar

คำตอบ:


45

Raspbian รับเวลาจากNTP Server ("เซิร์ฟเวอร์เวลา")

ถอด Raspberry Pi ของคุณออกอย่างสมบูรณ์ดึงสายเคเบิลเครือข่ายออกแล้วเริ่ม Raspberry Pi ขึ้นอีกครั้ง คุณจะเห็นว่าวันที่และเวลาไม่ถูกต้อง

หากคุณต้องการ / ต้องการวันที่และเวลาที่จะไม่ถูกรีเซ็ตโดยไม่ต้องเสียบเข้ากับอินเทอร์เน็ตคุณจะต้องใช้นาฬิกาเรียลไทม์ (RTC) - ตัวอย่างเช่นสิ่งนี้ - ซึ่งจะทำให้เวลาเป็นปัจจุบันโดยใช้แบตเตอรี่ เพื่อรันนาฬิกา นี่คือวิธีที่คอมพิวเตอร์ของคุณเก็บเวลาเมื่อไม่มีการขับเคลื่อน

อัพเดท เพียงหมายเหตุด้านข้างว่านาฬิกา RTC ด้านบนไม่ใช่วิธีเดียวที่จะรักษาเวลาที่แม่นยำระหว่างการสูญเสียพลังงาน คุณสามารถใช้โมดูลจีพีเอสและขอที่สูงถึงหมุด GPIO

ความแม่นยำ มันค่อนข้างแม่นยำแม้ว่าเวลาของนาฬิกาของคุณจะปิดไปสักหน่อย อาจใช้เวลานานถึง 3 ชั่วโมงในการแก้ไขตัวเองเนื่องจากการเปลี่ยนแปลงจากเซิร์ฟเวอร์จะค่อยๆนำไปใช้กับนาฬิกาในเครื่องของคุณ ความเสถียรของเครือข่ายมีผลกระทบมากที่สุดต่อความถูกต้องเนื่องจากเครือข่ายที่คาดเดาไม่ได้ (บางสิ่งที่ไร้สายมากขึ้นเช่น3G ) จะทำให้ยากที่จะแม่นยำ ที่จะนำมันเพียง: ความถูกต้องสวยดีแตกต่างของเวลาระหว่างคอมพิวเตอร์และเวลาจริง (จาก NTP Server) ของคุณเป็นปกติน้อยกว่า 100 มิลลิวินาที


1
คำตอบที่ดี ขอบคุณสำหรับลิงค์เกี่ยวกับนาฬิกาฮาร์ดแวร์
Scoop

1
คำตอบที่ดี; มันสามารถปรับปรุงได้โดยการกล่าวถึงความถูกต้องของโปรโตคอล NTP
อเล็กซ์แชมเบอร์เลน

@AlexChamberlain ขอบคุณสำหรับหัวขึ้นฉันจะเพิ่ม แต่มันลดลงอย่างสมบูรณ์ใจของฉัน ฉันได้เพิ่มตอนนี้
Vincent P

ในขณะที่ Pi ของฉันเชื่อมต่อกับเครือข่ายฉันสังเกตว่าเวลานั้นผ่านไป 30 นาทีแล้ว ntpd เปิดใช้งานโดยค่าเริ่มต้นหรือฉันต้องทำด้วยตนเองหรือไม่
andig

อาจเป็นเช่นนั้นจนกระทั่ง Raspberry Pi 3 ฉันซื้อหนึ่งสองเดือนที่แล้วและการอัปเดตเวลา NTP ถูกเมาอย่างน้อยใน Raspbian Jessie อย่างเป็นทางการ ฉันเปิดสามเธรดพร้อมปัญหานั้นและทุกคนดูไร้สาระ ฉันต้องซื้อโมดูลฮาร์ดแวร์เพื่อให้ทันเวลาเพื่อแก้ไขปัญหา
Pygmalion

21

คำตอบของมอร์แกนให้คำแนะนำที่ฉันต้องการเพื่อแก้ปัญหา

  1. ไปที่http://support.ntp.org/bin/view/Servers/NTPPoolServers
    เลือกภูมิภาคของคุณจากนั้นประเทศของคุณและรายการเซิร์ฟเวอร์จะปรากฏขึ้น

  2. แก้ไขไฟล์ /etc/ntp.conf ของคุณเช่น

    sudo vim /etc/ntp.conf

    แทนที่รายการเซิร์ฟเวอร์ด้วยเซิร์ฟเวอร์ที่คุณพบในเว็บเพจ เช่น

    เซิร์ฟเวอร์ 0.dk.pool.ntp.org
    เซิร์ฟเวอร์ iburst 1.dk.pool.ntp.org
    เซิร์ฟเวอร์ iburst 2.dk.pool.ntp.org
    เซิร์ฟเวอร์ iburst 3.dk.pool.ntp.org iburst

    บันทึกและออก.

  3. รีสตาร์ท ntp deamon

    sudo /etc/init.d/ntp ทำการรีสตาร์ท

  4. ตรวจสอบว่าวันที่ถูกต้อง

    วันที่
    พฤหัสบดี มิ.ย. 20 13:39:20 CEST 2013

หนึ่งในเซิร์ฟเวอร์ของฉันวันที่มีการเปลี่ยนแปลงในระดับกลาง ในที่อื่นฉันต้องรอสองนาที


2
หากคุณอยู่ในสหราชอาณาจักร (หรือประเทศอื่น) คุณสามารถเปลี่ยนรหัสประเทศที่เป็นตัวอักษรสองตัวให้เหมาะกับ .eg server 0.uk.pool.ntp.org iburst
Pierz

ขั้นตอนที่ 4 ไม่ทำงานสำหรับฉันจนกระทั่งหลังจากประมาณ 15 นาที ntpq -pหรือบางทีอาจเป็นเพราะฉันวิ่ง ฉันใช้: "Raspbian GNU / Linux 7 (เสียงดังกึกก้อง)" และ "Linux raspberrypi 4.1.7+ # 817 PREEMPT วันเสาร์ 19 ก.ย. 15:25:36 BST 2015 armv6l GNU / Linux"
Peter Mortensen

อาจจะhwclockหรือfake-hwclockรบกวน (แต่ส่วน "/etc/rc.conf" ล้าสมัย)
Peter Mortensen


และหลังจากปิดไป 5 นาทีมันก็อยู่ข้างหลัง 5 นาที ( ntpq -pไม่ได้สร้างความแตกต่าง)
Peter Mortensen

14

หากคุณมีfake-hwclockแพ็คเกจมันจะทำเคล็ดลับการบันทึกเวลาเพื่อป้องกันไม่ให้นาฬิกาถูกรีเซ็ต นั่นจะไม่เพิ่มเวลาในขณะที่อุปกรณ์ปิดอยู่ดังนั้นอุปกรณ์จะล้าหลัง นาฬิกาภายในจะลอยเล็กน้อยในขณะที่

หากคุณมีการเชื่อมต่ออินเทอร์เน็ต (หรือ lan กับเซิร์ฟเวอร์) และเรียกใช้ ntp (ntpd / ntpdate) คุณจะได้รับเวลาผ่านเครือข่ายตามคำตอบอื่น ๆ เมื่อซิงโครไนซ์มันค่อนข้างแม่นยำจริงๆ เซิร์ฟเวอร์ออนไลน์จะให้ฉันทามติ "เวลาโลก"


fake-hwclockเกี่ยวกับการที่น่าสนใจ ทำไมบางคนต้องการตรึงนาฬิกาเมื่อปิดเครื่อง? ฉันไม่สามารถนึกถึงกรณีการใช้งานสำหรับสิ่งนั้นได้ มีอะไรบ้าง
Scoop

2
@Scoop เพราะทางเลือกจะลืมเวลาดังนั้นมันจะรีเซ็ต ซึ่งจะทำให้เกิดการประทับเวลาบันทึกใด ๆ ที่ดูเหมือนจะมาจากอนาคต ฯลฯ "แช่แข็ง" นาฬิกาทำให้แน่ใจว่าเวลาที่พร้อมก้าวไปข้างหน้าแม้ว่านับปิด :)
XTL

1
การมี ntp หรือวิธีอื่นในการตั้งค่านาฬิกาแน่นอนจะยังคงใช้งานได้และ Fake-hwclock จะทำงานเมื่อบูตและปิดเครื่องเท่านั้น
XTL

1
สำหรับfake-hwclockบน Arch Linux ให้ใช้archplusplus.co.uk/post/40202081414/…
levinalex

2
ดูเหมือนว่าแพ็คเกจนี้จะได้รับการติดตั้งเป็นค่าเริ่มต้นบน Raspbian ทันที
Pierz

11

Raspberry Pi ไม่มีนาฬิกาเรียลไทม์รวม (RTC) เพื่อความประหยัด: ดูคำถาม "ทำไมไม่มีนาฬิกาเรียลไทม์ (RTC)" ในคำถามที่พบบ่อยอย่างเป็นทางการ หมายความว่าเมื่อคุณถอด Raspberry Pi ออกมันจะเสียเวลา เมื่อคุณให้พลังงานกลับมาเวลาจะถูกเตรียมใช้งานจนถึงวันที่ 1 มกราคม 1970 (aka Unix epoch )

Raspberry Pi กำหนดเวลาผ่านเครือข่ายด้วยNTPซึ่งเป็นโปรโตคอลสำหรับการซิงโครไนซ์นาฬิการะหว่างคอมพิวเตอร์ โปรโตคอลนี้ถูกนำมาใช้กันอย่างแพร่หลายผ่านทางอินเทอร์เน็ตเพื่อให้แน่ใจว่าคอมพิวเตอร์มีในเวลาเดียวกันและมีความน่าเชื่อถือสูงตั้งแต่บางเครื่องจะทุ่มเทให้กับการคำนวณเวลากับนาฬิกาอะตอม

ntpdเป็น daemon (ซอฟต์แวร์ที่อยู่เบื้องหลัง) เปิดตัวเวลาบูตและรับผิดชอบการซิงโครไนซ์เวลาโดยใช้โปรโตคอล NTP สามารถกำหนดค่าด้วยไฟล์ntpd /etc/ntp.confตัวอย่างเช่นที่นี่คุณสามารถตั้งเซิร์ฟเวอร์เพื่อขอเวลาได้


จำครั้งสุดท้ายไม่ได้เหรอ? ฉันปิด Raspberry Pi เมื่อสัปดาห์ที่แล้วและdateตอนนี้แสดงวันที่ในสัปดาห์บวกด้วยฉันคิดว่าบางชั่วโมงพิเศษจากเวลาทำงานเมื่อวานและวันนี้ (หลังจากรีสตาร์ทเมื่อวานและวันนี้) (Raspbian ซึ่งตรงกับช่วงกลางปี ​​2015)
Peter Mortensen

เรียกใช้cat /etc/fake-hwclock.dataแล้วคุณจะเห็นเวลาที่fake-hwclockบันทึกครั้งสุดท้าย(เห็นได้ชัดในเวลาปิดเครื่อง) fake-hwclockใช้กับ RPi เพื่อเลียนแบบนาฬิกาจริง ฉันคิดว่าคุณบูท RPi ของคุณโดยไม่ต้องเชื่อมต่ออินเทอร์เน็ตหรือไม่ได้ntpdเริ่มอัพเดทเวลา คุณยืนยันได้ไหม
Morgan Courbet

5

Raspbian Stretch: NTP ไม่ได้ติดตั้งโดยค่าเริ่มต้น

ดูเหมือนว่ามีการเปลี่ยนแปลงเล็กน้อยกับ Raspbian Stretch ในระยะสั้น ntp ไม่ได้ติดตั้งอีกต่อไป วิ่งdpkg -l | grep ntpกลับไม่มีอะไร

เห็นได้ชัดว่าเหยียดละทิ้งntpแอปพลิเคชันเพื่อ systemd ตรวจสอบman timesyncdรายการเฉพาะสำหรับการตั้งค่าการกำหนดค่า timesyncdยังคงใช้เซิร์ฟเวอร์ ntp เพื่ออัปเดตเวลา หากคุณต้องการกำหนดค่าเซิร์ฟเวอร์เหล่านี้ด้วยตนเองคุณสามารถทำได้ใน/etc/systemd/timesyncd.confไฟล์


1
หลังจากทำการแก้ไขแล้วให้เริ่มบริการใหม่อีกครั้งsudo systemctl restart timesyncdหลังจากนั้นตรวจสอบบันทึกโดยjournalctl -u timesyncd -fบางครั้งไฟร์วอลล์ขององค์กรจะปิดกั้นพอร์ต ในกรณีเช่นนี้ให้ใช้ URL เซิร์ฟเวอร์องค์กร ntp ที่ให้มา
typelogic

ฉันเชื่อว่าชื่อภูตที่ถูกต้องคือsystemd-timesyncdคำสั่งให้เริ่มต้นใหม่systemctl restart systemd-timesyncd
chb

3

หากเข้าสู่ระบบหรือเวลาการเก็บรักษาครับคือสิ่งที่คุณกำลังมองหาคุณอาจต้องการที่จะเพิ่มนาฬิกาเวลาจริงชิปเช่นDS1307


มีโซลูชั่น RTC ที่เหมาะสมเป็นธรรมเช่นนี้ที่จะซื้อเช่นเป็นcjemicros.co.uk/micros/individual/newprodpages/...
Pierz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.