Raspberry Pi tidak memiliki jam perangkat keras. Bagaimana saya memaksa NTPD untuk memperbarui tanggal / waktu segera setelah setiap boot?
Saya menjalankan Raspbian dan Raspberry Pi terhubung menggunakan kabel Ethernet .
Raspberry Pi tidak memiliki jam perangkat keras. Bagaimana saya memaksa NTPD untuk memperbarui tanggal / waktu segera setelah setiap boot?
Saya menjalankan Raspbian dan Raspberry Pi terhubung menggunakan kabel Ethernet .
Jawaban:
Lakukan apt-get install ntpdate
.
ntpdate
akan berjalan ketika antarmuka Ethernet ditampilkan, dan mengatur waktu dari server ntp (lihat /etc/default/ntpdate
).
Jika ntpd
sedang berjalan, ntpdate tidak akan melakukan apa-apa, namun ntpdate
akan berjalan sebelum ntpd
saat bootup - jadi ini akan berfungsi untuk mengatur waktu saat booting selama ada koneksi Ethernet.
Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linux
tidak memilikinya juga.
Jika jam Anda mati, Anda mungkin perlu memaksa ntp untuk menyinkronkan dengan melakukan:
sudo /etc/init.d/ntp stop
sudo ntpd -q -g
sudo /etc/init.d/ntp start
Setelah mencari-cari, metode ini berhasil untuk saya. Seperti yang Anda tahu, Raspberry Pi 3 memiliki NTP dinonaktifkan secara default. Jadi dengan hanya mengetik ini, dukungan NTP akan diaktifkan:
sudo timedatectl set-ntp True
Periksa hasil dengan timedatectl status
Dalam hal peringatan, Anda mungkin harus lari sudo timedatectl set-local-rtc true
juga.
Jika Anda mengatur Zona Waktu di raspi-config
Raspberry Pi akan secara otomatis memperbarui waktu saat boot, jika terhubung ke internet.
sudo raspi-config
Internationalisation Options
I2 Change Timezone
Finish
Yes
untuk reboot sekarangI2 Change Timezone
tidak ada lagi
Lihat posting forum Waktu tidak disinkronkan pada Pi 3 dan dengan dongle resmi .
ntpd memancarkan paket IP / UDP dengan bidang ToS diatur ke 0xc0. Jadi itu sangat mirip dengan masalah lain yang saya (dan banyak lainnya) miliki dengan Raspberry Pi3 ketika dioperasikan melalui antarmuka internal Wi-Fi.
Sebagai solusinya, tambahkan perintah
/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00
ke file
/etc/rc.local
sebelum garis 0 keluar. Selanjutnya, reboot dan periksa.
Seharusnya sudah memperbarui waktu. Server NTPD harus dimulai tepat setelah file swap dan sebelum SSHD.
Periksa file /etc/ntp.conf Anda untuk memastikannya dikonfigurasi.
Seharusnya daftar setidaknya satu server. Saya menggunakan time.nrc.ca untuk server saya.
Halaman manual untuk ntp.conf ada di sini: http://linux.die.net/man/5/ntp.conf
Rasberry Pi anak saya tidak akan memperbarui waktu di luar kotak dan setelah mencoba semua saran di atas saya bisa mendapatkannya untuk memperbarui secara manual tetapi tidak secara otomatis. Akhirnya setelah mencari di tempat lain juga tanpa keberhasilan, saya menemukan bahwa file ntp.conf yang datang dengan Rasberry Pi memiliki baris berikut sebagai berikut:
#restrict 127.0.0.1
#restrict ::1
Saya menggunakan
sudo nano /etc/ntp.conf
di terminal untuk mengedit file ntp conf sekarang menjadi:
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
Itu memecahkan masalah bagi kami. Ini memperbarui dengan WiFi dan kabel ethernet. Saya tidak tahu apakah itu akan diperbarui dengan WiFi tanpa perubahan ke rc.local yang disarankan di atas, karena pada saat saya menemukan solusi di atas saya sudah membuat perubahan itu dan saya belum membatalkannya.
Saya menemukan timedatectl
aplikasi untuk membantu saya ketika saya mengalami masalah serupa. Itu diinstal secara default dan '--help' memberikan gambaran yang cukup bagus dan sederhana tentang cara menggunakan alat ini.
Catatan: pastikan zona waktu Anda diatur dengan benar, yang dapat dilakukan alat ini juga.
Inilah pendekatan yang akhirnya saya ambil. Banyak dari jawaban ini tampaknya menunjukkan hal-hal yang tidak cocok ketika saya melihat sistem Raspian saya:
$ 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"
Saya tidak memiliki apa pun yang muncul di log yang menunjukkan bahwa timedatectl
sedang melakukan sesuatu, atau yang ntp
sedang disinkronkan pada status NIC, atau NTPD bahkan diinstal / dikonfigurasi.
Pada akhirnya saya hanya menambahkan ini ke /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..."
Dan diinstal ntp
:
$ sudo apt-get install ntp
Yang menghasilkan ini dalam /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.
Dan ntpd juga tidak ada. Pi pasti akhirnya mendapatkan waktu. (Saya melihat ini karena ikal HTTPS saya gagal tanpa -k ketika dijalankan sebelum itu)
apt-get install ntp
Anda tidak perlu menggunakan ntp untuk menyelesaikan masalah. Ada skrip yang membaca tanggal dari server dan Anda hanya perlu mengatur tanggal untuk menjadi hasil skrip tersebut (Raspberry Pi Anda harus terhubung ke internet). Kemudian, Anda perlu menjalankan perintah itu saat startup.
Langkah1: Ambil tanggal dari server.
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
Langkah2: Jalankan perintah saat startup dengan menambahkannya ke file /etc/rc.local
(Bekerja pada Ubuntu 16.04).
sudo gedit /etc/rc.local
KREDIT: