Как я могу сохранить системное время?

42

Я знаю, что Raspberry Pi не поставляется с системными часами, чтобы сэкономить деньги. Как я могу сохранить системное время, хотя?

ACarter
источник

Ответы:

41

Программное решение

Самый популярный метод хранения системного времени - это демон сетевого протокола времени (NTPd).

NTPd является наиболее распространенным методом синхронизации программных часов системы GNU / Linux с интернет-серверами времени с использованием сетевого протокола времени.

NTPd уже должен быть установлен и установлен в операционной системе по умолчанию, Debian Squeeze. Вам нужно будет установить и настроить его вручную, хотя для Arch Linux.

Сначала вы должны установить NTP.

$ sudo pacman -S ntp

Теперь вы можете вручную обновить его через командную строку.

$ sudo ntpd -qg

Или вы можете добавить его в список демонов при запуске, добавив его в свой /etc/rc.confфайл. Вот так.

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

Обратите внимание, что вам нужно отключить hwclock, поставив перед ним восклицательный знак ( !) в списке демонов.


Подсказка от mlp : если вы добавите ntpdateв свой список демонов, время будет исправлено после загрузки намного быстрее. Таким образом, ваш список демонов будет выглядеть так.

# /etc/rc.conf
DAEMONS=(!hwclock ntpd ntpdate)
Сообщество
источник
ntpdate устарела: support.ntp.org/bin/view/Dev/DeprecatingNtpdate
Гергей Фехервари,
1
/etc/rc.conf также не рекомендуется.
rubenvb
1
если /etc/rc.conf устарел, какова альтернатива? Это именно то, что мне нужно.
Джонатан С. Фишер
1
@exabrial systemctl enable ntpd.serviceпохож на добавление к /etc/rc.conf.
Лекенштейн
У свежих установок есть время, чтобы забрать время из разных источников, которые могут быть много прыжков от часов Master. Подробности и причину, по которой вы должны изменить его на time.nist.gov, см. В следующих
вопросах и ответах
16

Аппаратное решение

Если вы хотите гарантировать, что время на RPi всегда правильное или хотите поддерживать время без сетевого подключения, вам нужно будет купить плату расширения с часами реального времени (RTC): есть хотя бы одна доступная и хотя бы один в разработке.

Доступные платы расширения RTC

Платы расширения RTC в разработке

Алекс Чемберлен
источник
3

Для не сетевых приложений (или там, где сетевое время может быть недостаточно хорошим), вы можете установить часы RTC (ответ @Alex Chamberlain) на время, полученное от GPS-приемника или VLF-приемника (в NW Europe это будет RFB MSF) , Оба могут быть отличными решениями для устройств, развернутых в полевых условиях (роботы, полевой мониторинг и т. Д.).

Оба решения также сделали бы хорошие проекты хобби. Я помню создание приемника Rugby MSF в 1980-х годах. Приемный GPS-приемник («шайба») будет давать время и дату в предложениях NMEA 0183 - тогда это будет простой проект кодирования для извлечения этой информации.

winwaed
источник
1
Для интереса, сигнал времени MSF теперь фактически транслируется с радиостанции Anthorn в Камбрии, а не с регби.
Tomfanning
1
В данный момент я не живу в Великобритании, я некоторое время не ездил по трассе М1: так они срубили «лес»? (Я предполагаю, что близлежащие военно-морские мачты в Давентри все еще там)
winwaed
Не уверен - я не на той стороне страны для М1. Тем не менее, по словам en.wikipedia.org/wiki/Rugby_Radio_Station , радиостанция по регби перестала работать в середине 2007 года со ссылками на снос, включая фотографию. И здесь есть видео: youtube.com/watch?v=bx2lhSUuGqU . Однако в Google Street View по-прежнему видны мачты, которые, я уверен, являются более новыми изображениями, чем в 2007 году.
Tomfanning
И, оглядываясь на Википедию, нет никаких упоминаний о «военно-морских» мачтах в Давентри, поэтому я должен ошибаться - просто очень старый (теперь демонтированный) передатчик в Империю. Так что теперь диск M1 стал еще скучнее!
winwaed
3

Установите демон NTP в 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
Tjoe
источник
0

Если вы не хотите, чтобы в вашей системе постоянно работал NTP, вы можете использовать один из нескольких вариантов для установки времени:

  • ntpdate - после установки он настраивает систему на получение времени, когда появляется какой-либо интерфейс (хотя «устарел», он все еще довольно широко используется).
  • rdate - более простой и легкий подход, хотя и немного менее точный.
  • tlsdate - более безопасный вариант, в котором в качестве источника времени используется сервер TLS / SSL.

Очевидно, что ваши часы не будут такими же точными, как при использовании NTP, так как все часы смещаются, а также поскольку эти приложения используют только один источник времени, они могут потенциально привести к неправильной настройке времени, если в выбранном источнике возникнут проблемы.

Пирз
источник