ฉันรู้ว่า Raspberry Pi ไม่ได้มาพร้อมกับนาฬิการะบบเพื่อประหยัดเงิน ฉันจะรักษาเวลาระบบได้อย่างไร
ฉันรู้ว่า Raspberry Pi ไม่ได้มาพร้อมกับนาฬิการะบบเพื่อประหยัดเงิน ฉันจะรักษาเวลาระบบได้อย่างไร
คำตอบ:
วิธีที่นิยมที่สุดในการรักษาเวลาของระบบคือผ่าน Network Time Protocol daemon (NTPd)
NTPd เป็นวิธีการทั่วไปในการซิงโครไนซ์นาฬิกาซอฟต์แวร์ของระบบ GNU / Linux กับเซิร์ฟเวอร์เวลาอินเทอร์เน็ตโดยใช้โปรโตคอลเวลาเครือข่าย
ควรติดตั้ง NTPd แล้วและตั้งค่าบนระบบปฏิบัติการเริ่มต้น Debian Squeeze คุณจะต้องติดตั้งและกำหนดค่าด้วยตนเองสำหรับ Arch Linux
ก่อนอื่นคุณควรติดตั้ง NTP
$ sudo pacman -S ntp
ตอนนี้คุณสามารถอัพเดตได้ด้วยตนเองผ่านทางบรรทัดคำสั่ง
$ sudo ntpd -qg
หรือคุณสามารถเพิ่มลงในรายการ daemons เมื่อเริ่มต้นโดยเพิ่มลงใน/etc/rc.conf
ไฟล์ของคุณ ชอบมาก ๆ
# /etc/rc.conf
DAEMONS=(!hwclock ntpd)
โปรดทราบว่าคุณต้องปิดการใช้งานhwclock
โดยนำหน้าด้วยเครื่องหมายอัศเจรีย์ ( !
) ในรายการ daemons
protip จากMLP :ถ้าคุณเพิ่มntpdate
ไปยังรายการของภูตเวลาที่จะได้รับการแก้ไขหลังจากบูตได้เร็วขึ้นมาก ดังนั้นรายการ daemons ของคุณจะเป็นเช่นนั้น
# /etc/rc.conf
DAEMONS=(!hwclock ntpd ntpdate)
systemctl enable ntpd.service
/etc/rc.conf
หากคุณต้องการรับประกันว่าเวลาใน RPi นั้นถูกต้องเสมอหรือต้องการรักษาเวลาโดยไม่ต้องเชื่อมต่อเครือข่ายคุณจะต้องซื้อบอร์ดเสริมพร้อมนาฬิกาเวลาจริง (RTC): มีอย่างน้อยหนึ่งรายการ และอย่างน้อยหนึ่งในการพัฒนา
สำหรับแอปพลิเคชันที่ไม่ได้เชื่อมต่อกับเครือข่าย (หรือเวลาเครือข่ายอาจไม่ดีพอ) คุณสามารถตั้งค่านาฬิกา RTC ของคุณ (คำตอบของ @Alex Chamberlain) ตามเวลาที่ได้รับจากตัวรับสัญญาณ GPS หรือตัวรับสัญญาณ VLF (ใน NW Europe . ทั้งคู่อาจเป็นโซลูชันที่ยอดเยี่ยมสำหรับอุปกรณ์ที่ปรับใช้ฟิลด์ (หุ่นยนต์การตรวจสอบภาคสนามและอื่น ๆ )
วิธีแก้ปัญหาทั้งสองจะทำให้โครงการงานอดิเรกที่ดี ฉันจำได้ว่าสร้างผู้รับ Rugby MSF ในปี 1980 ตัวรับสัญญาณ GPS ชั้นวาง ("เด็กซน") จะให้เวลาและวันที่ในประโยค NMEA 0183 - จากนั้นจะเป็นโครงการเข้ารหัสแบบง่าย ๆ ในการดึงข้อมูลนี้
ติดตั้ง NTP daemon บน Arch Linux ด้วย systemd:
sudo pacman -S ntp
sudo systemctl enable ntpd
sudo systemctl start ntpd
ตรวจสอบให้แน่ใจด้วยว่าเขตเวลาของคุณตั้งค่าไว้ถูกต้องในกรณีของฉัน:
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
หากคุณไม่ต้องการให้ NTP ทำงานบนระบบของคุณตลอดเวลาคุณสามารถใช้หนึ่งในสองตัวเลือกต่าง ๆ เพื่อกำหนดเวลา:
เห็นได้ชัดว่านาฬิกาของคุณจะไม่ถูกต้องเช่นเดียวกับการใช้ NTP ตั้งแต่นาฬิกาทั้งหมดจะเบี่ยงเบนไปและเนื่องจากแอปเหล่านี้ใช้แหล่งเวลาเพียงแหล่งเดียวเท่านั้น