LINUX.ORG.RU

Проверка работы часов на компьютере.

 , ,


0

1

Вот скрипт:

#!/bin/bash
for x in `seq 0 36`
do 
        start=`date +"%s"`; sleep 60; stop=`date +"%s"` 
        echo "$stop - $start"|bc
done

Нормальный вывод:

60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
[ne-vlezay80@router~]$ 
Есль у вас:
60
110
69
48
11
22
6
60
60
6
69
98
110
11
60
60
60
60
60
60
60
60
[ne-vlezay80@router~]$ 
Тогда придётся менять часовой кварц.

★★★★★

И как это работает? Date черпает данные из какого-то астрального источника, корректно работающего при сбое «кварца»?

Deleted
()

придётся менять часовой кварц

Часовой кварц тикает 32768 раз в секунду, что слишком мало для таймера, с использованием которого работает nanosleep(). Так что у тебя проблема не с часами, а именно с таймером высокого разрешения.

i-rinat ★★★★★
()

А теперь воткни в комп две флешки и запусти копирование большого файла с одной на другую. Далее запусти свой скрипт.

Eddy_Em ☆☆☆☆☆
()

Чтобы проверить, как у тебя часы работают, убей ntp-сервер и раз в сутки делай ntpdate -q

Смотри, какая ошибка начинает накапливаться.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от ne-vlezay

Дунно лол. Думаю, сбой генерации никак не проявляется при включенной системе. Возможно, срач в dmesg и конвульсии hwclock будут.

Deleted
()

Пох ваще на этот камень. Пусть ошибается сколько угодно, лишь бы меня это не парило.

anonymous
()
Ответ на: комментарий от ne-vlezay

Потыкал пальцем в рабочий комп - как и предполагалось, не происходит ровным счётом ничего. hwclock -r тупит, пока генерации нет, как только убираешь палец - отрабатывает. Но это, вероятно, от хаба зависит.

Deleted
()
Ответ на: комментарий от ne-vlezay

Для начала погрепай вывод dmesg по словам «clock» и «time». Часто ядро раньше тебя замечает, что какой-то из источников — кривой. Затем поиграйся с параметрами ядра clock=, clocksource=, hpet=, notsc. Возможные значения и смысл настроек легко гуглятся. Вообще говоря, они описаны в документации к ядру, но проще будет погуглить.

i-rinat ★★★★★
()
Ответ на: комментарий от ne-vlezay

Думаю, происходит херня. Видел ускорение времени, когда ставил убунту на планшет со свежим на то время атомом - тупо убегали часы и дёргано анимации проигрывались, но что именно криво завелось, сказать не могу.

Deleted
()
Ответ на: комментарий от i-rinat

Не очень, на самом деле, генерация на часовом кварце очень легко сбивается. А если лапы чуть влажные, то достаточно любого касания.

Deleted
()
Ответ на: комментарий от ne-vlezay

Это года 3 назад было. Да и не смотрел я на часы, там всё было очень плохо, вплоть до отвала eMMC по какому-то таймауту.

Deleted
()

Тогда придётся менять часовой кварц.

Ну раз так, то если вы читаете это сообщение, то вы голубой!

Бред, думают тут больше работа планировщика. Этож не rtos.

anonymous
()
Ответ на: комментарий от Deleted

Видел ускорение времени, когда ставил убунту на планшет со свежим на то время атомом - тупо убегали.

см. тут. Я однажды поменял мат. плату, время стало убегать, удалил файл в котором была записана корректировка времени для старых часов с прежней платы и все наладилось.

anonymous
()
Ответ на: комментарий от ne-vlezay

Чисто логически кварц тут не причем. Ты видел много кварцев распаянных на плате (металическая штука)? Одна-две штуки. Они используется в том числе тактовыми генераторами, если кварц кривой это значит частоты будут ползти как попало и привет зависания. А intel вообще залочен разгоном по шине, так что попытка изменить частоту наверное выключит комп.

anonymous
()
Ответ на: комментарий от anonymous

А в чём тогда может быть проблема? У меня один раз часы вообще заклинивало (на windows xp). А после перезагрузки компьютер стал постоянно перезапускаться. Что это было?

ne-vlezay ★★★★★
() автор топика
Ответ на: комментарий от ne-vlezay

Ради прикола, войди в биос, и если там есть мониторинг в реальном времени посмотри частоты шин. А вообще я не знаю в чем причина такого поведения.

anonymous
()
Ответ на: комментарий от anonymous

А может ли это быть из за пыли?

ne-vlezay ★★★★★
() автор топика

Только особо одаренный 5-звездный на лоре может писать на баше такие конструкции

`seq 0 36`
# {0..36}

date +"%s"
# зачем здесь кавычки?
# если очень хочется использовать кавычки, то почему не одинарные?
# и почему плюс отдельно не в кавычках?

echo "$stop - $start"|bc
# echo $((stop - start))

Также можно придраться к апострофам, особенно вперемешку с кавычками. Сам-то хоть разбираешь где какие кавычки?

В виду сомнительности самого скрипта, весь остальный вывод, я думаю, еще более сомнителен.

anonymous
()
Ответ на: комментарий от ne-vlezay

однострочник, делающий то де самое (но я не уверен)

for i in {0..36}; do echo $((-$(date +%s) + $(sleep 60; date +%s))); done
anonymous
()
Ответ на: комментарий от i-rinat

32768

Маловато для 25 мегагерц кварецевого резонатора хаба. На 33 килогерца кварц мульта, но он никак не связан со временем.

K39
()
Ответ на: комментарий от Deleted

Видел ускорение времени, когда ставил убунту на планшет со свежим на то время атомом

Исправили тупым запретом hpet ``` $ dmesg | grep hpet x86/hpet: Will disable the HPET for this platform because it's not reliable ```

anonymous
()
Ответ на: комментарий от K39

На 33 килогерца кварц мульта, но он никак не связан со временем.

Ты не задумывался, почему такое странное число — 33 килогерца? Точнее, там 32768 Гц, степень двойки.

Upd. Хватит играть в угадайки. В общем, такое число выбрано потому, что это степень двойки. Если сделать генератор на 32768 Гц, стабилизированный таким кварцем, а потом поделить на два пятнадцать раз подряд, получится сигнал в 1 Гц. Из этого достаточно примитивной схемой можно сделать часы. Схема очень простая, транзисторов в ней мало, и потребление тоже маленькое, поэтому её можно питать от батарейки годами.

Другими словами, кварц на 32768 Гц нужен исключительно для часов. И всё-таки связан со временем.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.