Откуда у Raspberry Pi время?

44

Мне не нужно устанавливать часы (кроме часового пояса) на Raspberry Pi. Откуда у него время? О том, насколько это точно?

совок
источник
У свежих установок это забирает время из разных источников. Подробности и причину, по которой вы должны изменить его на time.nist.gov, см. В следующих
вопросах и ответах

Ответы:

45

Raspbian получает время с NTP-сервера («сервер времени»).

Полностью отключите Raspberry Pi, вытяните сетевой кабель и снова запустите Raspberry Pi. Вы увидите, что дата и время неверны.

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

ОБНОВЛЕНИЕ Обратите внимание, что приведенные выше часы RTC - не единственный способ сохранить точное время между потерями мощности. Вы также можете использовать модуль GPS и подключить его к контактам GPIO.

Точность Это довольно точно, хотя, если время ваших часов совсем немного. Самостоятельное исправление может занять до 3 часов, поскольку изменения с сервера постепенно применяются к вашим локальным часам. Стабильность сети оказывает наибольшее влияние на точность, так как непредсказуемая сеть (что-то более беспроводное, например, 3G ) сильно затруднит точность. Проще говоря: точность довольно хорошая, разница во времени между вашим компьютером и фактическим временем (с NTP-сервера) обычно составляет менее 100 мс .

Винсент П
источник
1
хороший ответ. спасибо за ссылку об аппаратных часах
Scoop
1
Хороший ответ; это можно улучшить, упомянув о точности протокола NTP.
Алекс Чемберлен
@AlexChamberlain Спасибо за заголовки, я собирался добавить это, но это полностью ускользнуло от меня. Я добавил это сейчас.
Винсент П
Хотя мой Pi подключен к сети, я замечаю, что время сократилось на 30 минут. Ntpd включен по умолчанию или мне нужно сделать это вручную?
andig
Может быть, так, до Raspberry Pi 3. Я купил один два месяца назад, и обновление времени NTP прикручено, ну, по крайней мере, на официальной Raspbian Джесси. Я открыл три темы с этой проблемой, и все не имеют понятия. Мне пришлось покупать аппаратный модуль за время, чтобы решить проблему.
Пигмалион
21

Ответ Моргана дал мне подсказку, необходимую для решения проблемы.

  1. Перейдите по адресу http://support.ntp.org/bin/view/Servers/NTPPoolServers.
    Выберите свой регион, затем отобразится ваша страна и список серверов.

  2. Отредактируйте ваш файл /etc/ntp.conf, например

    sudo vim /etc/ntp.conf

    Замените список серверов тем, который вы нашли на веб-странице. например

    сервер 0.dk.pool.ntp.org iburst
    сервер 1.dk.pool.ntp.org iburst
    сервер 2.dk.pool.ntp.org iburst
    сервер 3.dk.pool.ntp.org iburst

    Сохранить и выйти.

  3. Перезапустите NTP Деймон.

    sudo /etc/init.d/ntp restart

  4. проверьте правильность даты.

    дата
    чт июнь 20 13:39:20 CEST 2013

На одном из моих серверов дата была изменена сразу. В другой мне пришлось подождать пару минут.

user1682960
источник
2
Если вы находитесь в Великобритании (или другой стране) , то вы можете просто изменить двухсимвольный код страны в костюме .eg server 0.uk.pool.ntp.org iburst
Пирз
Шаг 4 не работал для меня примерно через 15 минут. Или, может быть, потому что я побежал ntpq -p. Я использую: «Raspbian GNU / Linux 7 (wheezy)» и «Linux raspberrypi 4.1.7+ # 817 PREEMPT Сб 19 сентября 15:25:36 BST 2015 armv6l GNU / Linux»
Питер Мортенсен
Возможно hwclockили fake-hwclockвмешивается (но часть "/etc/rc.conf" устарела)
Питер Мортенсен
ntpq -pЧасть от ответа на Как раз держится на Raspberry Pi? ,
Питер Мортенсен
И после 5-минутного отключения он был на 5 минут позади ( ntpq -pничего не изменилось).
Питер Мортенсен
14

Если у вас есть fake-hwclockпакет , он также сделает трюк с сохранением метки времени, чтобы предотвратить сброс часов. Это не будет опережать время, пока устройство выключено, поэтому оно будет отставать. Внутренние часы также будут дрейфовать при включении.

Если у вас есть интернет-соединение (или локальная сеть с сервером) и вы запускаете ntp (ntpd / ntpdate), вы можете получить время по сети, как указывают другие ответы. Когда синхронизировано, это действительно довольно точно. Онлайн серверы также дадут вам консенсус "мирового времени".

XTL
источник
интересно о fake-hwclock. Почему кто-то хочет заморозить часы, когда машина выключена? Я не могу придумать вариант использования для этого. Есть?
Совок
2
@ Scoop Потому что альтернатива забывает время, поэтому он будет сброшен. Это приведет к тому, что все записанные временные метки появятся в будущем и т. Д. «Замораживание» часов гарантирует, что время будет двигаться вперед, даже если отсчет отключен :)
XTL
1
Конечно, наличие ntp или другого способа установки часов будет работать, а fake-hwclock работает только при загрузке и выключении.
XTL
1
для fake-hwclockна Arch Linux, использование archplusplus.co.uk/post/40202081414/...
levinalex
2
Похоже, этот пакет теперь установлен по умолчанию на Raspbian.
Pierz
11

Raspberry Pi не имеет встроенных часов реального времени (RTC) для экономической эффективности: см. Вопрос «Почему нет часов реального времени (RTC)?» в официальном FAQ . Это означает, что когда вы отключаете Raspberry Pi, он теряет время. Когда вы включаете его снова, время инициализируется до 1 января 1970 года (или эпохи Unix ).

Raspberry Pi устанавливает время по сети с NTP , протоколом для синхронизации часов между компьютерами. Этот протокол широко используется в Интернете, чтобы обеспечить одинаковое время на компьютерах, и обладает высокой надежностью, поскольку некоторые машины предназначены для вычисления времени с атомными часами .

ntpdявляется демоном (программным обеспечением в фоновом режиме), запускающим время загрузки, и он отвечает за синхронизацию времени с использованием протокола NTP. ntpdможно настроить с помощью файла /etc/ntp.conf. Например, здесь вы можете настроить серверы для запроса времени.

Морган Курбе
источник
Разве это не помнит последний раз? Я отключил Raspberry Pi неделю назад и dateтеперь показывает эту недельную дату плюс, я думаю, несколько дополнительных часов с момента работы вчера и сегодня (после некоторого перезапуска вчера и сегодня). (Распбиан, соответствует середине 2015 года).
Питер Мортенсен
Запустите, cat /etc/fake-hwclock.dataи вы увидите, когда в последний раз fake-hwclockэкономили время (очевидно, во время выключения). fake-hwclockиспользуется на RPi, чтобы подражать реальным часам. Я думаю, что вы загрузили свой RPi без доступа в Интернет или не ntpdначали обновлять время. Вы можете это подтвердить?
Морган Курбе
5

Raspbian Stretch: NTP по умолчанию не установлен

Похоже, что с Raspbian Stretch произошли некоторые изменения. Короче говоря, ntp больше не устанавливается. Бег dpkg -l | grep ntpничего не возвращает.

Судя по всему, Stretch отказалась от ntpприложения в пользу systemd. Проверьте man timesyncdзапись для специфики настроек конфигурации. timesyncdвсе еще использует ntp-серверы для обновления времени. Если вы хотите настроить эти серверы вручную, вы можете сделать это в /etc/systemd/timesyncd.confфайле.

b_laoshi
источник
1
После внесения изменений перезапустите службу, sudo systemctl restart timesyncdа после этого проверяйте журналы, journalctl -u timesyncd -fиногда корпоративные брандмауэры блокируют порт. В таких случаях используйте предоставленный корпоративный URL-адрес ntp-сервера.
typelogic
Я верю, что правильное имя демона systemd-timesyncdsystemctl restart systemd-timesyncd
таково
3

Если ведение журнала или время хранения в автономном режиме является то , что вы ищете, вы можете добавить Real Time Clock фишки, как DS1307 .

Мариус Бутук
источник
Там довольно разумные решения РТК , как это , чтобы купить , например , cjemicros.co.uk/micros/individual/newprodpages/...
Пирз