Raspberry Pi ไม่มีนาฬิกาฮาร์ดแวร์ ฉันจะบังคับให้ NTPD อัปเดตวันที่ / เวลาทันทีหลังจากบูตทุกครั้งได้อย่างไร
Raspberry Pi ไม่มีนาฬิกาฮาร์ดแวร์ ฉันจะบังคับให้ NTPD อัปเดตวันที่ / เวลาทันทีหลังจากบูตทุกครั้งได้อย่างไร
คำตอบ:
apt-get install ntpdate
ทำ
ntpdate
จะทำงานเมื่อมีการต่อเชื่อมอีเธอร์เน็ตและตั้งเวลาจากเซิร์ฟเวอร์ ntp (ดู/etc/default/ntpdate
)
หากntpd
ใช้งานอยู่ ntpdate จะไม่ทำอะไรเลย แต่ntpdate
จะทำงานก่อนการntpd
บูทเครื่อง - ดังนั้นจึงควรกำหนดเวลาในการบูทเครื่องเมื่อมีการเชื่อมต่ออีเธอร์เน็ต
Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linux
ไม่มีมันด้วย
หากนาฬิกาของคุณปิดคุณอาจต้องบังคับให้ ntp ซิงค์โดยทำดังนี้
sudo /etc/init.d/ntp stop
sudo ntpd -q -g
sudo /etc/init.d/ntp start
หลังจากค้นหารอบ ๆ วิธีการนี้ใช้ได้ผลสำหรับฉัน อย่างที่คุณทราบ Raspberry Pi 3 ได้ปิดใช้งาน NTP ตามค่าเริ่มต้น ดังนั้นเพียงแค่พิมพ์สิ่งนี้การสนับสนุน NTP จะถูกเปิดใช้งาน:
sudo timedatectl set-ntp True
ตรวจสอบผลลัพธ์ด้วย timedatectl status
ในกรณีที่มีการเตือนคุณอาจต้องวิ่งsudo timedatectl set-local-rtc true
ด้วย
หากคุณตั้งค่าโซนเวลาในraspi-config
Raspberry Pi จะอัปเดตเวลาในการบูตโดยอัตโนมัติหากเชื่อมต่อกับอินเทอร์เน็ต
sudo raspi-config
Internationalisation Options
I2 Change Timezone
Finish
Yes
จะรีบูตทันทีI2 Change Timezone
ตัวเลือกไม่มีอยู่อีกต่อไป
ดูฟอรั่มโพสต์เวลาไม่ซิงค์บน Pi 3 และมีการดองเกิลอย่างเป็นทางการ
ntpdส่งเสียงแพ็กเก็ต IP / UDP ด้วยฟิลด์ ToS ที่ตั้งค่าเป็น 0xc0 ดังนั้นจึงค่อนข้างคล้ายกับปัญหาอื่น ๆ ที่ฉัน (และคนอื่น ๆ ) มีกับ Raspberry Pi3 เมื่อทำงานผ่านอินเตอร์เฟซภายใน Wi-Fi
เป็นวิธีแก้ปัญหาเพิ่มคำสั่ง
/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00
ไปที่ไฟล์
/etc/rc.local
ก่อนถึงทางออก 0 บรรทัด ถัดไปรีบูตและตรวจสอบ
ควรอัปเดตเวลาอยู่แล้ว เซิร์ฟเวอร์ NTPD ควรเริ่มต้นหลังไฟล์ swap และก่อนหน้า SSHD
ตรวจสอบไฟล์ /etc/ntp.conf ของคุณเพื่อให้แน่ใจว่ามีการกำหนดค่า
ควรมีเซิร์ฟเวอร์อย่างน้อยหนึ่งรายการ ฉันใช้ time.nrc.ca สำหรับเซิร์ฟเวอร์ของฉัน
หน้าคู่มือสำหรับ ntp.conf อยู่ที่นี่: http://linux.die.net/man/5/ntp.conf
ลูกชายของฉัน Rasberry Pi จะไม่อัปเดตเวลานอกกรอบและหลังจากลองทำตามคำแนะนำทั้งหมดข้างต้นฉันสามารถนำไปอัปเดตด้วยตนเองได้ แต่ไม่ใช่โดยอัตโนมัติ ในที่สุดหลังจากดูที่อื่นเช่นกันโดยไม่ประสบความสำเร็จฉันพบว่าไฟล์ ntp.conf ที่มาพร้อมกับ Rasberry Pi มีบรรทัดต่อไปนี้แสดงความคิดเห็น:
#restrict 127.0.0.1
#restrict ::1
ฉันใช้
sudo nano /etc/ntp.conf
ในเทอร์มินัลเพื่อแก้ไขไฟล์ ntp conf เป็น:
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
นั่นแก้ไขปัญหาให้เราได้ มันอัปเดตกับทั้ง WiFi และสายเคเบิลอีเธอร์เน็ต ฉันไม่ทราบว่าจะอัปเดตด้วย WiFi หรือไม่หากเปลี่ยนเป็น rc.local ที่แนะนำข้างต้นตามเวลาที่ฉันพบวิธีแก้ไขปัญหาข้างต้นฉันได้ทำการเปลี่ยนแปลงแล้วและไม่ได้ยกเลิก
ฉันพบtimedatectl
แอปพลิเคชันเพื่อช่วยฉันเมื่อฉันมีปัญหาที่คล้ายกัน มันถูกติดตั้งโดยค่าเริ่มต้นและ '--help' จะให้ภาพรวมที่ดีและเรียบง่ายเกี่ยวกับวิธีการใช้เครื่องมือ
หมายเหตุ: ตรวจสอบให้แน่ใจว่าเขตเวลาของคุณตั้งค่าไว้อย่างถูกต้องซึ่งเครื่องมือนี้สามารถทำได้เช่นกัน
นี่เป็นวิธีที่ฉันได้รับ หลายคำตอบเหล่านี้ดูเหมือนจะบ่งบอกถึงสิ่งที่ไม่ได้ตรวจสอบเมื่อฉันดูระบบ Raspian ของฉัน:
$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
ฉันไม่มีอะไรที่ปรากฏในบันทึกที่ระบุว่าtimedatectl
กำลังทำอะไรอยู่หรือntp
กำลังทำการซิงค์กับสถานะของ NIC หรือ NTPD นั้นถูกติดตั้ง / กำหนดค่าด้วยซ้ำ
ในที่สุดฉันเพิ่งเพิ่มสิ่งนี้ไปยัง/etc/rc.local
:
$ cat /etc/rc.local
logger "Beginning force syncing NTP..."
service ntp stop
ntpd -gq
service ntp start
logger "Finished force syncing NTP..."
และติดตั้งntp
:
$ sudo apt-get install ntp
ซึ่งผลลัพธ์ในสิ่งนี้ใน/var/log/syslog
:
Aug 5 09:10:20 pi-hole ntp[526]: Starting NTP server: ntpd.
Aug 5 09:10:20 pi-hole ntpd[555]: proto: precision = 1.458 usec (-19)
Aug 5 09:10:20 pi-hole ntpd[555]: Listen and drop on 0 v6wildcard [::]:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 2 lo 127.0.0.1:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 3 eth0 192.168.1.85:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 4 lo [::1]:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listening on routing socket on fd #22 for interface updates
Aug 5 09:10:21 pi-hole ntpd[555]: ntpd exiting on signal 15 (Terminated)
Aug 5 09:10:21 pi-hole ntp[661]: Stopping NTP server: ntpd.
Aug 5 09:10:21 pi-hole ntpd[674]: ntpd 4.2.8p10@1.3728-o Sat Mar 10 18:03:33 UTC 2018 (1): Starting
Aug 5 09:10:21 pi-hole ntpd[674]: Command line: ntpd -gq
Aug 5 09:10:21 pi-hole ntpd[674]: proto: precision = 0.625 usec (-21)
Aug 5 09:10:21 pi-hole ntpd[674]: Listen and drop on 0 v6wildcard [::]:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 2 lo 127.0.0.1:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 3 eth0 192.168.1.85:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 4 lo [::1]:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listening on routing socket on fd #22 for interface updates
Aug 5 09:10:34 pi-hole ntpd[674]: Soliciting pool server 198.98.57.16
Aug 5 09:10:35 pi-hole ntpd[674]: Soliciting pool server 74.82.59.149
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 23.131.160.7
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 52.37.26.163
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 204.2.134.163
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 96.126.100.203
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 199.223.248.101
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 66.228.42.59
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 208.75.89.4
Aug 5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 204.2.134.164
Aug 5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 104.236.116.147
Aug 5 09:10:38 pi-hole ntpd[674]: Soliciting pool server 204.9.54.119
Aug 5 09:10:48 pi-hole ntpd[674]: ntpd: time set +6.769186 s
Aug 5 09:10:49 pi-hole ntpd[853]: ntpd 4.2.8p10@1.3728-o Sat Mar 10 18:03:33 UTC 2018 (1): Starting
Aug 5 09:10:49 pi-hole ntpd[853]: Command line: /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 111:114
Aug 5 09:10:49 pi-hole ntp[844]: Starting NTP server: ntpd.
Aug 5 09:10:49 pi-hole ntpd[856]: proto: precision = 0.625 usec (-21)
Aug 5 09:10:49 pi-hole ntpd[856]: Listen and drop on 0 v6wildcard [::]:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 2 lo 127.0.0.1:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 3 eth0 192.168.1.85:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 4 lo [::1]:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listening on routing socket on fd #22 for interface updates
Aug 5 09:10:49 pi-hole root: Finished force syncing NTP...
Failed to start ntp.service: Unit ntp.service not found.
และ ntpd ก็ไม่มีอยู่เช่นกัน ในที่สุด Pi ก็ได้เวลา (ฉันกำลังมองหาสิ่งนี้เพราะ HTTPS ของฉันหยิกล้มเหลวโดยไม่ต้อง -k เมื่อทำงานก่อนหน้านั้น)
apt-get install ntp
คุณไม่จำเป็นต้องใช้ ntp เพื่อแก้ไขปัญหา มีสคริปต์ที่อ่านวันที่จากเซิร์ฟเวอร์และคุณต้องกำหนดวันที่ให้เป็นผลลัพธ์ของสคริปต์นั้น (Raspberry Pi ของคุณต้องเชื่อมต่อกับอินเทอร์เน็ต) จากนั้นคุณต้องเรียกใช้คำสั่งนั้นเมื่อเริ่มต้น
ขั้นที่ 1:ดึงวันที่จากเซิร์ฟเวอร์
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
ขั้นที่ 2:เรียกใช้คำสั่งเมื่อเริ่มต้นด้วยการเพิ่มลงในไฟล์/etc/rc.local
(ทำงานบน Ubuntu 16.04)
sudo gedit /etc/rc.local
เครดิต:
ฉันใช้สิ่งต่อไปนี้กับรูปภาพเริ่มต้นเพื่อซิงค์เวลาโดยไม่ต้องติดตั้งแพ็คเกจเพิ่มเติม
timedatectl set-local-rtc 0
timedatectl set-ntp 1
timedatectl status