LinuxForum.Fans
Тема

Время спешит

Автор: aivs 8 сообщений 3714 просмотров
#206098

Есть комп с embedded версией debian - voyage linux.
Стал замечать, что сильно спешат часы, по ntp выставляю время, записываю в железку (hwclock -w) и начинаю следить.
Через час системное время (date) на десяток секунд спешит по сравнению с железным (hwclock). Как заставить время по date соответствовать железному времени??
Удаление /etc/adjtime не помогло.

#206107

Примерно так:
Устанавливаем ntpdate
[console]aptitude install ntpdate[/console]
Переходим в /etc/cron.hourly
[console]cd /etc/cron.hourly[/console]
">имяфайла" - команда для создания пустого файла
[console]>setdate [/console]
Делаем исполняемым
[console]chmod 755 setdate[/console]

Открываем файл с помощью nano (или другого редактора) и пишем:

#!/bin/sh
ntpdate-debian

Сохраняем файл.

Теперь каждый час компьютер будет синхронизироваться с серверами точного времени. Список серверов лежит в /etc/default/ntpdate.

#206119

Так то я уже давно сделал, но это костыль! надо устранить причину из-за которой время спешит.

#206135

Для устранения причины нужно брать в руки паяльник и перепаивать на материнской плате кварцевый генератор, от которого системные часы и пляшут.

#206143

hwclock показывает нормальное время, date - ускоренное.

ядро корректирует системное время по всей видимости.

text
root@voyage:~# hwclock ; date
Thu Nov 17 16:45:43 2011  -1.004000 seconds
Thu Nov 17 16:46:48 MSK 2011
#206213

Для корректировки хода системных часов предназначена adjtimex.

Пётр.

#206419

И как с его помощью синхронизировать железные и системные часы?

#210498
aivs написал:
И как с его помощью синхронизировать железные и системные часы?

man читать пробовали?

-t val, --tick val
Set the number of microseconds that should be added to the system time for each kernel tick interrupt. For a kernel with USER_HZ=100, there
are supposed to be 100 ticks per second, so val should be close to 10000. Increasing val by 1 speeds up the system clock by about 100 ppm, or
8.64 sec/day. tick must be in the range 900000/USER_HZ...1100000/USER_HZ. If val is rejected by the kernel, adjtimex will determine the
acceptable range through trial and error and print it. (After completing the search, it will restore the original value.)

-f newfreq, --frequency newfreq
Set the system clock frequency offset to newfreq. newfreq can be negative or positive, and gives a much finer adjustment than the --tick
switch. When USER_HZ=100, the value is scaled such that newfreq = 65536 speeds up the system clock by about 1 ppm, or .0864 sec/day. Thus,
all of these are about the same:
--tick 9995 --frequency 32768000
--tick 10000 --frequency 6553600
--tick 10001 --frequency 0
--tick 10002 --frequency -6553600
--tick 10005 --frequency -32768000
To see the acceptable range for newfreq, use --print and look at "tolerance", or try an illegal value (e.g. --tick 0).

это что-бы системные часы не спешили. А вот с железными так не получится. Команда hwclock служит для записи системного времени в железное, и обратно.

Войдите или зарегистрируйтесь, чтобы ответить.