У Raspberry Pi бракує апаратного годинника. Як змусити NTPD оновлювати дату / час відразу після кожного завантаження?
Я запускаю Raspbian, і Raspberry Pi підключається за допомогою кабелю Ethernet .
У Raspberry Pi бракує апаратного годинника. Як змусити NTPD оновлювати дату / час відразу після кожного завантаження?
Я запускаю Raspbian, і Raspberry Pi підключається за допомогою кабелю Ethernet .
Відповіді:
Зробіть apt-get install ntpdate
.
ntpdate
запуститься, коли підключено інтерфейс Ethernet, і встановить час з ntp-сервера (див. /etc/default/ntpdate
).
Якщо ntpd
запущено, ntpdate нічого не зробить, однак ntpdate
запуститься до ntpd
завантаження - тому це повинно працювати для встановлення часу на завантаженні до тих пір, поки є з'єднання Ethernet.
Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linux
його теж не було.
Якщо ваш годинник вимкнений, можливо, вам доведеться змусити ntp синхронізуватися, виконавши:
sudo /etc/init.d/ntp stop
sudo ntpd -q -g
sudo /etc/init.d/ntp start
Після обшуку цей метод спрацював для мене. Як відомо, Raspberry Pi 3 має відключений NTP за замовчуванням. Отже, просто ввівши це, буде включена підтримка NTP:
sudo timedatectl set-ntp True
Перевірте результат за допомогою timedatectl status
У разі попередження, можливо, вам доведеться також бігти sudo timedatectl set-local-rtc true
.
Якщо встановити часовий пояс у raspi-config
Raspberry Pi, автоматично оновиться час завантаження, якщо він підключений до Інтернету.
sudo raspi-config
Internationalisation Options
I2 Change Timezone
Finish
Yes
для перезавантаження заразI2 Change Timezone
варіант більше не існує
Дивіться допис на форумі Час не синхронізується на Pi 3 та з офіційним ключем .
ntpd випускає пакети IP / UDP з полем ToS, встановленим на 0xc0. Таким чином, це досить схоже на інший випуск, який у мене (і багато інших) у Raspberry Pi3, коли він працює через внутрішній інтерфейс Wi-Fi.
Як вирішення, додайте команду
/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00
до файлу
/etc/rc.local
до виходу 0 рядок. Далі перезавантажте та перевірте.
Це вже повинно бути оновленням часу. Сервер NTPD повинен запускатися відразу після файлу підкачки та перед SSHD.
Перевірте файл /etc/ntp.conf, щоб переконатися, що він налаштований.
На ньому має бути вказаний принаймні один сервер. Я використовую time.nrc.ca для свого сервера.
Сторінка керівництва для ntp.conf знаходиться тут: http://linux.die.net/man/5/ntp.conf
Rasberry Pi мого сина не оновлював би час з коробки, і, випробувавши всі вищенаведені пропозиції, я міг би його оновити вручну, але не автоматично. Нарешті, невдало подивившись в інше місце, я виявив, що у файлі ntp.conf, який постачався разом із Rasberry Pi, були прокоментовані наступні рядки:
#restrict 127.0.0.1
#restrict ::1
я використав
sudo nano /etc/ntp.conf
в терміналі для редагування файлу ntp conf тепер бути:
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
Це вирішило для нас проблему. Він оновлюється як через WiFi, так і через кабель Ethernet. Я не знаю, чи оновиться оновлення за допомогою WiFi без зміни на rc.local, запропонованого вище, оскільки до того часу, як я знайшов рішення, я вже вніс цю зміну, і я її не відміняв.
Я знайшов timedatectl
програму, яка допомогла мені, коли у мене виникли подібні проблеми. Він встановлений за замовчуванням, а "--help" дає досить хороший та простий огляд того, як користуватися інструментом.
Примітка: переконайтеся, що ваш часовий пояс встановлений належним чином, що також може зробити цей інструмент.
Це такий підхід, який я закінчив. Багато з цих відповідей, здавалося, вказували на речі, які просто не перевірялися, коли я дивився на мою расьпіанську систему:
$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
У мене не було нічого, що з’явилося в журналах, що вказувало б на те, що timedatectl
щось робило, або що ntp
синхронізувало стан NIC, або що NTPD був навіть встановлений / налаштований.
Врешті-решт я просто додав це до свого /etc/rc.local
:
$ cat /etc/rc.local
logger "Beginning force syncing NTP..."
service ntp stop
ntpd -gq
service ntp start
logger "Finished force syncing NTP..."
І встановлено ntp
:
$ sudo apt-get install ntp
Що призводить до цього в /var/log/syslog
:
Aug 5 09:10:20 pi-hole ntp[526]: Starting NTP server: ntpd.
Aug 5 09:10:20 pi-hole ntpd[555]: proto: precision = 1.458 usec (-19)
Aug 5 09:10:20 pi-hole ntpd[555]: Listen and drop on 0 v6wildcard [::]:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 2 lo 127.0.0.1:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 3 eth0 192.168.1.85:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 4 lo [::1]:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listening on routing socket on fd #22 for interface updates
Aug 5 09:10:21 pi-hole ntpd[555]: ntpd exiting on signal 15 (Terminated)
Aug 5 09:10:21 pi-hole ntp[661]: Stopping NTP server: ntpd.
Aug 5 09:10:21 pi-hole ntpd[674]: ntpd 4.2.8p10@1.3728-o Sat Mar 10 18:03:33 UTC 2018 (1): Starting
Aug 5 09:10:21 pi-hole ntpd[674]: Command line: ntpd -gq
Aug 5 09:10:21 pi-hole ntpd[674]: proto: precision = 0.625 usec (-21)
Aug 5 09:10:21 pi-hole ntpd[674]: Listen and drop on 0 v6wildcard [::]:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 2 lo 127.0.0.1:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 3 eth0 192.168.1.85:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 4 lo [::1]:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listening on routing socket on fd #22 for interface updates
Aug 5 09:10:34 pi-hole ntpd[674]: Soliciting pool server 198.98.57.16
Aug 5 09:10:35 pi-hole ntpd[674]: Soliciting pool server 74.82.59.149
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 23.131.160.7
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 52.37.26.163
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 204.2.134.163
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 96.126.100.203
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 199.223.248.101
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 66.228.42.59
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 208.75.89.4
Aug 5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 204.2.134.164
Aug 5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 104.236.116.147
Aug 5 09:10:38 pi-hole ntpd[674]: Soliciting pool server 204.9.54.119
Aug 5 09:10:48 pi-hole ntpd[674]: ntpd: time set +6.769186 s
Aug 5 09:10:49 pi-hole ntpd[853]: ntpd 4.2.8p10@1.3728-o Sat Mar 10 18:03:33 UTC 2018 (1): Starting
Aug 5 09:10:49 pi-hole ntpd[853]: Command line: /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 111:114
Aug 5 09:10:49 pi-hole ntp[844]: Starting NTP server: ntpd.
Aug 5 09:10:49 pi-hole ntpd[856]: proto: precision = 0.625 usec (-21)
Aug 5 09:10:49 pi-hole ntpd[856]: Listen and drop on 0 v6wildcard [::]:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 2 lo 127.0.0.1:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 3 eth0 192.168.1.85:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 4 lo [::1]:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listening on routing socket on fd #22 for interface updates
Aug 5 09:10:49 pi-hole root: Finished force syncing NTP...
Failed to start ntp.service: Unit ntp.service not found.
і ntpd теж не існує. Пі, безумовно, з часом набирає час. (Я дивлюся на це, тому що мої HTTPS локони виходять з ладу без -k при запуску до цього)
apt-get install ntp
Вам не потрібно використовувати ntp для вирішення проблеми. Існує сценарій, який читає дату з сервера, і вам потрібно лише встановити дату, щоб бути результатом цього сценарію (ваш Raspberry Pi потрібно підключити до Інтернету). Потім вам потрібно запустити цю команду при запуску.
Крок 1. Отримайте дату з сервера.
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
Крок 2: Запустіть команду при запуску, додавши її до файлу /etc/rc.local
(Працював над Ubuntu 16.04).
sudo gedit /etc/rc.local
КРЕДИТИ: