[Comm] p7, RTC и UTC
Sergey Vlasov
vsu на altlinux.ru
Пн Мар 10 13:09:44 MSK 2014
On Sun, Mar 09, 2014 at 04:37:58AM +0300, Speccyfighter wrote:
> 09.03.2014 11:35, Sergey пишет:
> > On Sunday 09 March 2014, Sergey wrote:
> >
> >> Система - Server Light, обновлённый до p7, так что софта не сильно много.
> >> Тем не менее, кто злодей - пока непонятно.
> > ...
> > 14844 ? Ss 0:00 /sbin/minilogd
> >
> > Кто ещё это может делать - не понимаю.
> >
>
> Кажется что-то поймал?
> При UTC=false и ядре led-ws:
[...]
> Время, прочитанное с аппаратных часов: 2014/03/09 04:21:11
> Аппаратное время: 2014/03/09 04:21:11 = 1394328071 секунд с 1969
> Вс 09 мар 2014 04:21:11 -0.345221 секунд
> Вс мар 9 04:21:10 FET 2014
>
> # uname -r
> 3.4.80-led-ws-alt0.M70P.1
>
> ------------------------------------------------------------------
>
> А при UTC=false и ядре
> # rpm -qa|grep kernel-image|grep pae|grep 3.10.32
> kernel-image-std-pae-3.10.32-alt1
> точно в UTC RTC уводит несмотря на
> # cat /etc/adjtime|tail -n 1
> LOCAL
> Даже при отсутствующем в системе ntpd.
> У меня оно постоянно стоит - памяти 6Gb.
>
> Завтра, уже сегодня, надо бы посмотреть с std-def и un-def.
Вообще при наличии синхронизации с NTP-сервером ядро уже давно каждые
11 минут обновляет время в RTC. Однако, начиная с 3.10, из ядра
выпилили код, который пытался обновлять в RTC только минуты и секунды,
чтобы обновление работало независимо от часового пояса (но в этом
случае не могло быть исправлено расхождение более чем на 15 минут):
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=3195ef59cb42cda3aeeb24a7fd2ba1b900c4a3cc
Теперь для правильного обновления RTC необходимо, чтобы в ядре были
соответствующим образом установлены переменные sys_tz и
persistent_clock_is_local:
http://lxr.free-electrons.com/source/kernel/time/ntp.c?v=3.10#L492
Установка этих переменных возможна только в момент первого после
загрузки системы вызова settimeofday() с указанием параметра tz:
http://lxr.free-electrons.com/source/kernel/time.c?v=3.10#L151
В нормально сконфигурированной системе этим занимается systemd:
Mar 10 11:05:07 atlas.home systemd[1]: RTC configured in localtime, applying delta of 240 minutes to system time.
Mar 10 11:05:07 atlas.home systemd[1]: systemd 201 running in system mode. (+PAM +LIBWRAP +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP -GCRYPT +ACL +XZ)
Однако я наблюдал ситуацию, когда systemd неправильно определял режим
работы RTC из-за странного содержимого файла /etc/adjtime - почему-то
после слова LOCAL там было что-то ещё:
-0.000001 1099594479 0.000000
1099594479
LOCAL 1900 0
0.000000
(нашёл такой файл в старой системе, там он последний раз менялся в
2005 году).
Правильный формат этого файла выглядит, например, так:
92.715438 1273327006 0.000000
1273327006
LOCAL
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 198 байтов
Описание: Digital signature
Url : <http://lists.altlinux.org/pipermail/community/attachments/20140310/5b1d8014/attachment.bin>
Подробная информация о списке рассылки community