Dari mana Raspberry Pi mendapatkan waktu?


44

Saya tidak perlu mengatur jam (selain zona waktu) pada Raspberry Pi. Dari mana mendapatkan waktu? Tentang seberapa akurat itu?


Instalasi baru memilikinya mengambil waktu dari berbagai sumber. Untuk detail, dan untuk alasan mengapa Anda harus mengubahnya ke time.nist.gov, lihat T&J ini: raspberrypi.stackexchange.com/questions/68811/…
SDsolar

Jawaban:


45

Raspbian mendapatkan waktu dari NTP Server ("server waktu").

Cabut Raspberry Pi Anda sepenuhnya, cabut kabel jaringan dan nyalakan Raspberry Pi lagi. Anda akan melihat bahwa tanggal dan waktu salah.

Jika Anda ingin / memerlukan tanggal dan waktu untuk tidak diatur ulang tanpa terhubung ke internet, Anda akan memerlukan Real Time Clock (RTC) - misalnya, sesuatu seperti ini - yang akan menjaga waktu saat ini, dengan menggunakan baterai untuk menjalankan jam. Ini, juga, bagaimana komputer Anda menjaga waktu saat tidak sedang dihidupkan.

PEMBARUAN Hanya catatan tambahan bahwa jam RTC di atas bukan satu-satunya cara untuk menjaga waktu akurat antara kehilangan daya. Anda juga bisa menggunakan modul GPS dan menghubungkannya ke pin GPIO.

Akurasi Ini cukup akurat, meskipun jika waktu jam Anda tidak aktif sedikit. Diperlukan waktu hingga 3 jam untuk memperbaikinya sendiri, karena perubahan dari server diterapkan secara bertahap ke jam lokal Anda. Stabilitas jaringan memiliki dampak terbesar pada ketepatan, karena jaringan yang tidak dapat diprediksi (sesuatu yang lebih nirkabel, seperti 3G ) akan membuatnya sangat sulit untuk menjadi akurat. Sederhananya: Akurasi cukup bagus, perbedaan waktu antara komputer Anda dan waktu aktual (dari NTP Server) biasanya kurang dari 100 ms .


1
jawaban bagus. terima kasih atas tautan tentang jam perangkat keras
Scoop

1
Jawaban bagus; ini dapat ditingkatkan dengan menyebutkan keakuratan protokol NTP.
Alex Chamberlain

@AlexChamberlain Terima kasih untuk kepala, saya akan menambahkannya tapi itu benar-benar menyelinap di pikiran saya. Saya sudah menambahkannya sekarang.
Vincent P

Sementara Pi saya terhubung ke jaringan, saya memperhatikan bahwa waktu telah berubah oleh 30 menit sekarang. Apakah ntpd diaktifkan secara default atau apakah saya perlu melakukan ini secara manual?
andig

Mungkin begitu, sampai Raspberry Pi 3. Saya membeli satu dua bulan yang lalu dan pembaruan waktu NTP kacau, setidaknya pada Raspbian Jessie resmi. Saya membuka tiga utas dengan masalah itu dan semua orang tidak mengerti. Saya harus membeli modul perangkat keras untuk menjaga waktu untuk menyelesaikan masalah.
Pygmalion

21

Jawaban Morgan memberi saya petunjuk yang saya butuhkan untuk menyelesaikan masalah.

  1. Pergi ke http://support.ntp.org/bin/view/Servers/NTPPoolServers
    Pilih wilayah Anda, maka negara Anda dan daftar server akan ditampilkan.

  2. Edit file /etc/ntp.conf Anda mis

    sudo vim /etc/ntp.conf

    Ganti daftar server dengan yang Anda temukan di halaman web. misalnya

    server 0.dk.pool.ntp.org
    server iburst 1.dk.pool.ntp.org
    server iburst 2.dk.pool.ntp.org
    server iburst 3.dk.pool.ntp.org iburst

    Simpan dan keluar.

  3. Nyalakan kembali ntp deamon.

    sudo /etc/init.d/ntp restart

  4. periksa apakah tanggalnya benar.

    date
    Kamis 20 Juni 13:39:20 CEST 2013

Di salah satu server saya tanggal diubah segera. Yang lain saya harus menunggu beberapa minuts.


2
Jika Anda berada di UK (atau negara lain) maka Anda dapat mengubah kode negara dua huruf sesuai .eg server 0.uk.pool.ntp.org iburst
Pierz

Langkah 4 tidak bekerja untuk saya sampai setelah sekitar 15 menit. Atau mungkin karena saya berlari ntpq -p. Saya menggunakan: "Raspbian GNU / Linux 7 (wheezy)" dan "Linux raspberrypi 4.1.7+ # 817 PREEMPT Sab 19 Sep Sep 15:25:36 BST 2015 armv6l GNU / Linux"
Peter Mortensen

Mungkin hwclockatau fake-hwclocksedang mengganggu (tetapi bagian "/etc/rc.conf" sudah ketinggalan zaman)
Peter Mortensen


Dan setelah shutdown 5 menit, tertinggal 5 menit ( ntpq -ptidak ada bedanya).
Peter Mortensen

14

Jika Anda memiliki fake-hwclockpaket , itu juga akan melakukan trik penghematan stempel waktu untuk mencegah jam disetel ulang. Itu tidak akan memajukan waktu saat perangkat mati, sehingga akan tertinggal. Jam internal juga akan sedikit melayang saat dinyalakan.

Jika Anda memiliki koneksi Internet (atau lan dengan server) dan menjalankan ntp (ntpd / ntpdate), Anda bisa mendapatkan waktu melalui jaringan, seperti yang ditunjukkan oleh jawaban lain. Ketika disinkronkan, itu benar-benar sangat akurat. Server online juga akan memberi Anda konsensus "waktu dunia".


menarik tentang fake-hwclock. Mengapa seseorang ingin membekukan jam ketika mesin mati? Saya tidak bisa memikirkan use case untuk itu. Disana?
Sendok

2
@ Sink karena alternatifnya adalah lupa waktu, sehingga akan mengatur ulang. Ini akan menyebabkan stempel waktu yang terekam tampak berasal dari masa depan dll. "Membekukan" jam memastikan waktu terus bergerak maju, bahkan jika hitungannya dimatikan :)
XTL

1
Memiliki ntp atau cara lain untuk mengatur jam tentu masih akan bekerja dan jam palsu hanya berjalan saat boot dan shutdown.
XTL

1
untuk fake-hwclockdi Arch Linux, gunakan archplusplus.co.uk/post/40202081414/…
levinalex

2
Paket ini sekarang tampaknya telah diinstal sebagai standar pada Raspbian sekarang.
Pierz

11

Raspberry Pi tidak memiliki real time clock (RTC) terintegrasi untuk efektivitas biaya: lihat pertanyaan "Mengapa tidak ada real time clock (RTC)?" di FAQ resmi . Ini berarti bahwa ketika Anda mencabut Raspberry Pi, ia kehilangan waktunya. Ketika Anda menyalakannya kembali, waktu diinisialisasi ke 1 Januari 1970 (alias zaman Unix ).

Raspberry Pi mengatur waktunya melalui jaringan dengan NTP , sebuah protokol untuk sinkronisasi jam antar komputer. Protokol ini banyak digunakan melalui Internet untuk memastikan komputer memiliki waktu yang sama dan sangat andal karena beberapa mesin didedikasikan untuk perhitungan waktu dengan jam atom .

ntpdadalah daemon (perangkat lunak di latar belakang) meluncurkan waktu boot, dan bertanggung jawab untuk menyinkronkan waktu menggunakan protokol NTP. ntpddapat dikonfigurasi dengan file /etc/ntp.conf. Misalnya, ini adalah tempat Anda dapat mengatur server untuk meminta waktu.


Tidak ingat kapan terakhir kali? Saya mematikan Raspberry Pi seminggu yang lalu dan datesekarang menunjukkan tanggal tua minggu itu ditambah, saya pikir, beberapa jam tambahan dari uptime kemarin dan hari ini (setelah beberapa restart kemarin dan hari ini). (Raspbian, sesuai dengan pertengahan 2015).
Peter Mortensen

Jalankan cat /etc/fake-hwclock.datadan Anda akan melihat waktu terakhir fake-hwclockdisimpan waktu (jelas, pada waktu shutdown). fake-hwclockdigunakan pada RPi untuk meniru jam nyata. Saya pikir Anda mem-boot RPi Anda tanpa akses Internet atau tanpa ntpdmulai memperbarui waktu. Bisakah Anda mengonfirmasi itu?
Morgan Courbet

5

Peregangan Raspbian: NTP tidak diinstal secara default

Tampaknya ada sedikit perubahan dengan Raspbian Stretch. Singkatnya, ntp tidak lagi diinstal. Menjalankan dpkg -l | grep ntptidak menghasilkan apa-apa.

Rupanya, Stretch meninggalkan ntpaplikasi yang mendukung systemd. Periksa man timesyncdentri untuk spesifikasi pengaturan konfigurasi. timesyncdmasih menggunakan server ntp untuk memperbarui waktu. Jika Anda ingin mengkonfigurasi server ini secara manual, Anda dapat melakukannya di /etc/systemd/timesyncd.conffile.


1
Setelah melakukan pengeditan, restart layanan dengan sudo systemctl restart timesyncddan setelah itu periksa log oleh journalctl -u timesyncd -ffirewall perusahaan terkadang memblokir port. Dalam kasus seperti itu, gunakan URL server ntp perusahaan yang disediakan.
typelogic

Saya percaya nama daemon yang benar adalah systemd-timesyncd, sehingga perintah untuk me-restart akan menjadisystemctl restart systemd-timesyncd
chb

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.