opkg install ntp-systemd
systemctl enable ntpdate.service
systemctl enable ntpd.service
Редактировать /etc/ntp.conf и прокомментировать следующие строки (не запасной вариант на качестве аппаратных часов, не существует, и потому, что Ntpdate служба использовать команду «пЪрд -q»)
#server 127.127.1.0
#fudge 127.127.1.0 stratum 14
Два установлены службы:
/lib/systemd/system/ntpd.service:
[Unit]
Description=Network Time Service
After=network.target
[Service]
Type=forking
PIDFile=/run/ntpd.pid
ExecStart=/usr/bin/ntpd -p /run/ntpd.pid
/lib/systemd/system/ntpdate.service:
[Unit]
Description=Network Time Service (one-shot ntpdate mode)
Before=ntpd.service
[Service]
Type=oneshot
ExecStart=/usr/bin/ntpd -q -g -x
RemainAfterExit=yes
пЪрд запускается после того, как сеть работает (После = network.target), так что дата должна быть постоянно синхронизируется. НО объяснил в Ntpd человека странице:
Большинство операционных систем и аппаратных средств сегодня включают время-год (TOY) чип сохранить время, в течение периодов, когда питание выключено. Когда машина загружается, чип используется для для инициализации времени операционной системы. После того, как машина имеет , синхронизированную с сервером NTP, операционная система время от времени исправляет чип . В случае отсутствия чипа TOY или по какой-то причине его время составляет более 1000 с момента сервера, ntpd предполагает что-то должно быть ужасно неправильно, и единственным надежным действием для оператора является вмешательство и установка часов вручную. Это приводит к выводу ntpd в выход с сообщением о панике в системный журнал. Опция -g переопределяет эту проверку, и часы будут установлены на время сервера независимо от времени чипа.Тем не менее, и для защиты от неисправного оборудования, такого как , когда батарея КМОП выходит из строя или счетчик часов становится неисправным, после того, как часы установлены, ошибка, превышающая 1000, приведет к выходу ntpd.
Итак, нам нужно установить дату перед началом Ntpd, и это делается с помощью Ntpdate службы, выполнив «пЪрд -q -g -x» перед началом ntpd.service.
От Ntpd человек страницы:
-q Выход Ntpd только после того, как в первый раз часы установлены. Это поведение имитирует программу ntpdate, которая должна быть удалена. Параметры -g и -x могут использоваться с этой опцией. Примечание. Эта опция отключена для временной дисциплины ядра .
Еще одна услуги установлена на Beaglebone взаимодействовать с датой/время
timestamp.service
[Unit]
Description=Timestamping service
ConditionPathExists=/etc/timestamp
After=remount-rootfs.service
[Service]
RemainAfterExit=yes
ExecStart=/usr/bin/load-timestamp.sh
ExecStop=/usr/bin/load-timestamp.sh --save
Этого магазин обслуживание текущая временной меткой в / и т.д./метке времени, когда он остановился и установите дату с этой отметки времени, когда она будет запущена. Поэтому, если ntpd не установлен, дата устанавливается вручную, а beaglebone перезагружается, дата отстает только от продолжительности загрузки.
Привет, спасибо за обновление. Так вы можете это объяснить? Как часто это обновление? Теперь он работает всегда в режиме powerup после того, как интернет доступен и обновляется? Мне все еще нужно задание cron, которое запускает/usr/bin/ntpdate -b -s -u pool.ntp.org? – Eradicatore
Hi Eradicatore. Извините за поздний ответ, я уничтожил своего Beaglebone сразу после публикации моего первого ответа, и я просто получил новый. Я уточнил ответ с дополнительными пояснениями. Вам больше не нужно задание cron с ntpdate, оно заменяется на ntpd, который запускается непрерывно и запускается при загрузке после завершения работы сети. Ntpdate.service (который полагается на ntpd -q, а не на ntpdate) необходим, потому что у Beaglebone нет часов реального времени с батареей. – MathieuLescure