Bagaimana saya bisa menjaga waktu sistem?

42

Saya tahu bahwa Raspberry Pi tidak dilengkapi dengan jam sistem untuk menghemat uang. Bagaimana saya bisa menjaga waktu sistem?

ACarter
sumber

Jawaban:

41

Solusi Perangkat Lunak

Metode yang paling populer untuk menjaga waktu sistem adalah melalui Network Time Protocol daemon (NTPd).

NTPd adalah metode paling umum untuk menyinkronkan jam perangkat lunak sistem GNU / Linux dengan server waktu internet menggunakan Network Time Protocol.

NTPd harus sudah diinstal dan diatur pada sistem operasi default, Debian Squeeze. Anda harus menginstal dan mengkonfigurasinya secara manual untuk Arch Linux.

Pertama, Anda harus menginstal NTP.

$ sudo pacman -S ntp

Sekarang Anda dapat memperbaruinya secara manual melalui baris perintah.

$ sudo ntpd -qg

Atau Anda dapat menambahkannya ke daftar daemon saat memulai dengan menambahkannya ke /etc/rc.conffile Anda . Seperti itu.

# /etc/rc.conf
DAEMONS=(!hwclock ntpd)

Perhatikan bahwa Anda perlu menonaktifkan hwclockdengan mendahului dengan tanda seru ( !) di daftar daemon.


Protip dari mlp : Jika Anda menambah ntpdatedaftar daemon Anda, waktu akan diperbaiki setelah booting lebih cepat. Jadi daftar daemon Anda akan terlihat seperti itu.

# /etc/rc.conf
DAEMONS=(!hwclock ntpd ntpdate)
Komunitas
sumber
ntpdate tidak digunakan lagi: support.ntp.org/bin/view/Dev/DeprecatingNtpdate
Gergely Fehérvári
1
/etc/rc.conf juga tidak digunakan lagi.
rubenvb
1
jika /etc/rc.conf sudah tidak digunakan lagi, apa alternatifnya? Inilah yang saya butuhkan.
Jonathan S. Fisher
1
@exabrial systemctl enable ntpd.servicemirip dengan menambahkan /etc/rc.conf.
Lekensteyn
Instalasi baru memilikinya mengambil waktu dari berbagai sumber yang dapat banyak lompatan dari jam Master. Untuk perincian, dan untuk alasan mengapa Anda harus mengubahnya ke time.nist.gov, lihat T&J ini: raspberrypi.stackexchange.com/questions/68811/…
SDsolar
16

Solusi Perangkat Keras

Jika Anda ingin menjamin bahwa waktu pada RPi selalu benar atau ingin mempertahankan waktu tanpa koneksi jaringan, Anda perlu membeli papan ekspansi dengan Real Time Clock (RTC) di atasnya: setidaknya ada satu yang tersedia dan setidaknya satu dalam pengembangan.

Papan Ekspansi RTC yang Tersedia

Papan Ekspansi RTC dalam Pembangunan

Alex Chamberlain
sumber
3

Untuk aplikasi non-jaringan (atau di mana waktu jaringan mungkin tidak cukup baik), Anda dapat mengatur jam RTC Anda (jawaban @Alex Chamberlain) dengan waktu yang berasal dari penerima GPS atau penerima VLF (di NW Eropa ini akan menjadi Rugby MSF) . Keduanya bisa menjadi solusi yang sangat baik untuk perangkat yang digunakan di lapangan (robot, pemantauan lapangan, dll).

Kedua solusi juga akan membuat proyek hobi yang baik. Saya ingat membangun receiver Rugby MSF pada 1980-an. Penerima GPS rak ("keping") akan memberikan waktu dan tanggal dalam kalimat-kalimat NMEA 0183 - maka itu akan menjadi proyek pengkodean sederhana untuk mengekstrak informasi ini.

dimenangkan
sumber
1
Yang menarik, sinyal waktu MSF sebenarnya sekarang disiarkan dari Stasiun Radio Anthorn di Cumbria, bukan Rugby.
Tomfanning
1
Tidak tinggal di Inggris saat ini, saya belum mengusir M1 untuk sementara waktu: Jadi apakah mereka telah menurunkan 'hutan'? (Saya menganggap tiang-tiang angkatan laut terdekat di Daventry masih ada di sana)
ditangguhkan
Tidak yakin - Saya berada di sisi negara yang salah untuk M1. Namun, Stasiun Radio Rugby tampaknya telah berhenti aktif pada pertengahan 2007 menurut en.wikipedia.org/wiki/Rugby_Radio_Station - dengan referensi pembongkaran, termasuk foto. Dan ada video di sini: youtube.com/watch?v=bx2lhSUuGqU . Namun, ada tiang-tiang yang masih terlihat di Google Street View, yang saya cukup yakin adalah citra yang lebih baru daripada 2007.
tomfanning
Dan melihat-lihat di Wikipedia, tidak ada menyebutkan tiang-tiang "angkatan laut" di Daventry jadi saya pasti salah - hanya pemancar yang sangat lama (sekarang dibongkar) ke Kekaisaran. Jadi sekarang drive M1 bahkan lebih membosankan!
Menang
3

Instal daemon NTP di Arch Linux dengan systemd:

sudo pacman -S ntp
sudo systemctl enable ntpd
sudo systemctl start ntpd

Pastikan juga zona waktu Anda diatur dengan benar, dalam kasus saya:

sudo rm /etc/localtime
sudo ln -s  /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
tjoe
sumber
0

Jika Anda tidak ingin NTP berjalan di sistem Anda sepanjang waktu, Anda dapat menggunakan salah satu dari beberapa opsi berbeda untuk mengatur waktu:

  • ntpdate - Setelah terinstal, ia mengatur sistem untuk memperoleh waktu ketika antarmuka apa pun muncul (meskipun 'usang' itu masih cukup banyak digunakan).
  • rdate - Pendekatan bobot yang lebih sederhana dan ringan, meski sedikit kurang akurat.
  • tlsdate - Opsi yang lebih aman yang menggunakan server TLS / SSL sebagai sumber waktu.

Jelas jam Anda tidak akan seakurat menggunakan NTP karena semua jam melayang, dan juga karena aplikasi ini hanya menggunakan sumber waktu tunggal, mereka berpotensi menghasilkan pengaturan waktu yang salah jika sumber yang mereka pilih memiliki masalah.

Pierz
sumber