Raspberry Pi не будет обновлять время

12

Я купил Raspberry Pi 3 примерно два месяца назад, и с тех пор время никогда не обновлялось . Подробности:

  1. Операционная система - свежая установка Raspbian Jessie (4.1.19-v7 +).
  2. Подключение к интернету через родной Wi-Fi и никаких других проблем со связью.
  3. Никаких проблем с брандмауэром, так как обновление времени работает как чудо на машине с Windows в той же локальной сети.
  4. Часовой пояс установлен правильно.

Я впервые начал с nptdate. Когда я попытался принудительно обновить,

sudo /etc/init.d/ntp stop
sudo ntpd -q -g
sudo /etc/init.d/ntp start

терминал застыл при второй команде. Последнее сообщение /var/log/syslogбыло:

Listening on routing socket on fd #22 for interface updates

/etc/ntp.conf содержание:

driftfile /var/lib/ntp/ntp.drift

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

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

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

restrict 127.0.0.1
restrict ::1

Мне кажется, что у ntpпакета есть проблема. Как настроить обновление времени, так как моя Raspberry включена только днем, а задержка времени накапливается ночью?

Пигмалион
источник
1
Какой дистрибутив вы используете? Эти древние ссылки не имеют ничего общего с нынешним Raspbian. Как долго вы ждете после загрузки? Что вы делаете, чтобы подтвердить, что «время не будет обновляться»?
Milliways
Это Raspbian, если вы спрашиваете об этом. Независимо от того, как долго я жду, он не обновляется. Я использую команду «дата» и наблюдаю за часами в углу.
Пигмалион
ntpdизменился в какой-то момент в последние несколько лет, чтобы пользователю было труднее форсировать изменения. Учитывая простоту его назначения, это одно из самых худших, самых тупых приложений всех времен. Кто-то должен просто написать базовую реализацию только для клиента для автономных систем конечных пользователей. Это не могло занять больше дня, включая чтение RFC. Я чувствую к тебе. Я ненавижу эту вещь (за исключением того, что это обычно работает для меня, поэтому я не беспокоюсь ...). Удачи.
Златовласка
Тем не менее, я думаю, вы могли бы добавить более подробное объяснение того, что именно происходит. Конечно, он много кричит, когда не может подключиться к серверу, и это будет в системном журнале. Посмотрите sudo grep ntp /var/log/syslogили, после загрузки, journalctl | grep ntp.
Златовласка
@goldilocks sudo grep ntp /var/log/syslogвозвращает кучу bad peer from pool x.debian.pool.ntp.orgошибок. После перезапуска journald | grep ntpвозвращается bash: journald: command not foundи sudo grep ntp /var/log/syslogвозвращает кучу can't find host x.debian.pool.ntp.org: name or service not knownошибок иno servers can be used, exiting
Pygmalion

Ответы:

6

Вам нужно попытаться обновить время с помощью USB-ключа Wi-Fi. Если он будет работать нормально, используйте tcpdumpи посмотрите, как обрабатывается пакет с обеих сторон: на Raspberry Pi 3 и точке доступа Wi-Fi, к которой он подключается.

Насколько я знаю, внутренний Wi-Fi в Raspberry Pi 3 используется для тихой потери пакетов.

Как /etc/network/interfacesдолжно выглядеть:

# Wired adapter #1
auto eth0
    iface eth0 inet static
    address 192.168.0.3
    netmask 255.255.255.0
    gateway 192.168.0.1
    dns-servers 8.8.8.8,8.8.4.4
    post-up /usr/sbin/ntpdate -4 1.2.3.4

Не забывайте ведущие пробелы !

Алексей Веснин
источник
Комментарии не для расширенного обсуждения; этот разговор был перенесен в чат .
Ганима
Я нашел решение, как «восстановить» ntpd в этой теме: raspberrypi.org/forums/viewtopic.php?f=28&t=141454 . Я до сих пор не знаю, как сделать это автоматически при загрузке RPi3.
Пигмалион
@Pygmalion, как я уже говорил, - ntpD= NTP Daemon - не требуется для простой настройки времени хоста ... Он предназначен для распределения времени по сети, т. Е. Если у вас есть несколько узлов, вам это обязательно нужно. Но для одной конечной точки настройка времени ntpdateсделана. Он даже отделен в самом дереве исходников ntp
Алексей Веснин
12
sudo sntp -s time.google.com

Это сработало для меня.

Nicky
источник
9

Я пробовал несколько способов с помощью ntp, chrony ... Наконец-то исправили с помощью следующего метода.

Получите дату с любого известного веб-сайта, такого как Google, чтобы установить время вашей машины при каждой загрузке.

  1. Открыть файл rc.local

    sudo nano /etc/rc.local

  2. Добавьте следующую строку в файл rc.local

    sudo date -s "$(wget -qSO- --max-redirect=0 www.google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

  3. Перезагрузите Rpi

    sudo reboot

Shamshu
источник
Мне понравилось решение. Это сработало, но я был бы счастлив с решением NTP. Я попробовал их, но я не смог пройти через это.
AG
Я могу понять это отчаяние - это именно то, что я также делал в некоторых случаях (дата из заголовка HTTP), но сейчас я нахожусь в закрытой сети без доступа в Интернет и без серверов HTTP, только сервер NTP.
Томаш Гандор
4

Если вы установите часовой пояс в raspi-configRaspberry Pi автоматически обновит время при загрузке, если он подключен к интернету.

  1. sudo raspi-config
  2. Выбрать Internationalisation Options
  3. Выбрать I2 Change Timezone
  4. Выберите свой географический район
  5. Выберите ближайший город
  6. Выбрать Finish
  7. Выберите, Yesчтобы перезагрузить сейчас
mwd27
источник
Конечно, я установил часовой пояс в самый первый день.
Пигмалион
1
Я также установил часовой пояс в самый первый день, но мой Pi недавно перестал обновлять время при перезагрузке, точно так же, как у вас возникла проблема. Я перезапустил raspi-configвчера, и время обновлялось правильно при каждой перезагрузке с тех пор, даже если я некоторое время оставлял отключенным питание. Я предлагаю вам попробовать? Дайте мне знать, как вы
поживаете
Я прошу прощения. Я сделал, как вы предложили, но это не удалось.
Пигмалион
О, это позор. Я продолжу думать ...
mwd27
3

Следующая команда обязательно сработает

sudo date -s"Sep 11 12:50"
satven
источник
1
Спасибо за ваш ответ. Я думаю, что вопрос об автоматическом обновлении с использованием NTP, и ваш ответ, похоже, касается одноразовой установки часов.
Бекс,
2

Я обнаружил, что использование следующего работало как один через WiFi.

sudo sntp -s 0.debian.pool.ntp.prg
Дэвид
источник
1

В меню «Приложения» / «Настройки» / «Raspberry Pi» я перешел на вкладку «Локализация» и выбрал значения для «Задать локаль», «Задать часовой пояс» и «Задать страну WiFi».

Нажмите кнопку ОК, и время теперь правильно.

Скотт Н
источник
1

Мне пришлось немного подождать, потому что это не сразу установило правильное время. Это после того, как я установил правильный часовой пояс, включил доступ в Интернет и перезагрузил компьютер.

bakalolo
источник
О настройке правильного времени посмотрите на Что вызывает пробелы в логах? ,
Инго