Нетбук продолжает терять время

1817
nmuntz

У меня есть Lenovo S10, и он работает под управлением Arch Linux в качестве единственной ОС. По какой-то странной причине, которую я до сих пор не смог понять, он теряет время. В BIOS есть правильные настройки, хотя.

Под linux часовой пояс установлен правильно, и все работает отлично в течение нескольких часов. Если я установлю правильное время и перезагрузлю компьютер, он покажет правильные настройки времени. Однако, если я выключу компьютер и включу его через несколько часов, время снова запутается.

Я попытался использовать NTP, и хотя он временно решает проблему, это не всегда вариант, так как он не всегда подключен к Интернету.

Есть идеи, как навсегда решить эту проблему?

2

7 ответов на вопрос

5
Shalom Craimer

Убедитесь, что ваш NTP-клиент также устанавливает аппаратные часы (через BIOS), а не только программные часы Linux.

Вы можете проверить аппаратные часы с помощью hwclockпрограммы (расположенной в /usr/sbinили /sbin) и сравнить их с программными часами с помощью dateкоманды.

Скучное объяснение :

В вашем компьютере есть небольшая микросхема, которая называется «часы реального времени» или RTC. Эти часы работают от батареи и отсчитывают время, как наручные часы. Когда компьютер включается, часы считываются, и именно так ваша операционная система знает, который час, когда он запускается. Но после первого чтения операционным системам не нужно использовать RTC - он может просто продолжать считать время (секунды, часы и т. Д.) Само по себе. Всякий раз, когда пользователь спрашивает, во сколько его время, он может просто сообщить свое собственное время (вместо времени, которое сообщает RTC).

Сложный момент наступает, когда RTC не имеет нужного времени. Когда вы пытаетесь откорректировать время, это действительно операционная система, которая делает это за вас. Операционная система может обновлять только свои внутренние, программные, часы. В этом случае после перезагрузки неверное время будет снова загружено из RTC. Я до сих пор помню это со времен DOS. Вы должны были зайти в BIOS, чтобы изменить часы. тьфу.

В любом случае, последний гвоздь в гробу таков: время, считываемое с RTC, это просто число. И операционная система может изменить это число. Например, может потребоваться добавить 3 600 000 миллисекунд (1 час) к этому числу, чтобы пользователи GMT + 1 чувствовали себя комфортно. В других случаях что-то не так с настройками часового пояса.

В любом случае, установка аппаратных часов из операционной системы имеет тенденцию исправлять это, поскольку они проходят тот же процесс фильтрации. Таким образом, даже если ваша ОС добавляет 5 минут к RTC, она также вычтет 5 минут перед обновлением RTC.

Удачи!

отличное объяснение, спасибо. Я проверю это более глубоко, когда вернусь домой. nmuntz 14 лет назад 0
2
scheibk

Похоже, что батарея, которая держит часы работают, разряжена. У меня такое ощущение, что если вы замените аккумулятор, время сохранится, когда он выключится.

Поскольку вы упомянули в комментарии, что у BIOS правильное время, это может быть проблема с процессором, что также имеет смысл. Время на процессоре отличается, когда он подключен к стене, а когда нет. Может случиться так, что если вы работаете от батареи, секунда не рассчитывается таким же образом, потому что такты процессора разные. Если это все еще на гарантии, я бы позвонил в службу поддержки и спросил.

нетбуку всего несколько месяцев, и он не использовался интенсивно - это все еще возможно? кроме того, BIOS, кажется, имеет правильное время. nmuntz 14 лет назад 0
Вы не знаете, сколько времени нетбук находился на полке, аккумулятор мог быть установлен задолго до того, как вы его купили. scheibk 14 лет назад 0
я купил его на newegg.com, так что я не думаю, что он был "на полке". Тем не менее, как вы объясните, что BIOS имеет правильное время? nmuntz 14 лет назад 0
Я добавил другое объяснение, которое может повлиять на время. Это длинный выстрел, но это может быть причиной этого. scheibk 14 лет назад 0
@nmuntz: Даже из newegg компьютер сидел на их складах. Andrew Moore 14 лет назад 0
Автор сказал, что у BIOS все еще правильное время. Если бы батарея BIOS умирала на нем, это было бы неправильно. Jack M. 14 лет назад 0
@ Джек М. Я обновил свой пост после того, как он сказал, что у его BIOS было правильное время. scheibk 14 лет назад 0
2
Jack M.

Есть вопрос установки, который отбрасывает некоторых людей, которые могут вызвать эту проблему. Это «Время BIOS этой системы установлено в UTC». Если вы выбрали «Да» для этого, то Xпри загрузке система всегда будет выключена, поскольку она требует времени BIOS и вычитает Xколичество часов.

Вам нужно будет проверить документы вашего дистрибутива, чтобы узнать, как изменить этот параметр, если это так.

Я не использую UTC, его настроено на местное время. nmuntz 14 лет назад 0
Вы сказали, что ваша ОС, когда вы установили? Сколько у вас свободного времени? Определенное количество времени каждый раз или всегда случайно? Jack M. 14 лет назад 1
Я на 100% уверен, что не выбрал UTC для настроек времени. время кажется случайным. сейчас он выключен на час, но я провожал его уже 4 часа. nmuntz 14 лет назад 0
Ну, тогда это просто куки. Я никогда не видел, чтобы при загрузке было больше 5-10 секунд. Я бросаю `ntpdate ntp.nasa.gov` в rc.local. Никогда не проблема. Jack M. 14 лет назад 2
2
Danr

Если вы уверены, что не системная батарея или ваша ОС вызывают проблемы со временем, я бы посоветовал вам обратиться к производителю, пока он еще находится на гарантии, вы говорите, что ему всего несколько месяцев, поэтому я думаю, что Lenovo по-прежнему будет охватывать любое оборудование проблемы. Возможно, вы захотите установить XP в системе и повторить проблему там, прежде чем обращаться к ним, чтобы ускорить процесс, многие производители будут поддерживать только ОС, поставленную на компьютер.

2
Dave Webb

Часы, работающие с неправильным временем, кажутся обычной проблемой для ArchLinux, судя по количеству постов на их форумах, как этот .

Проблема, кажется, с /var/lib/hwclock/adjtimeфайлом. Цитата из приведенного выше сообщения на форуме:

Посмотрите в / var / lib / hwclock / adjtime. Если первое число в первой строке большое (больше 10 или около того), удалите этот файл, снова установите часы и перезагрузите компьютер. (Файл будет воссоздан с небольшим номером.)

Предполагается, что это число показывает, сколько секунд ваши аппаратные часы дрейфуют каждый день. Нетрудно случайно сравнить программные часы с аппаратными часами, когда они еще не настроены правильно, что заставляет систему полагать, что ваши аппаратные часы очень неточны и чрезмерно компенсируют.

Если это не решит вашу проблему, возможно, это проблема гибернации. Когда ты сказал

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

Вы выключаете систему или переводите ее в спящий режим? Если это последнее, то я думаю, что часы возобновляются с того времени, когда вы перешли в нетбук. Если часы всегда работают медленно, то это, вероятно, ответ.

Если у вас есть сценарии приостановки и возобновления, они должны сохранять системное время на аппаратных часах во время приостановки, а затем восстанавливать его с аппаратного обеспечения при возобновлении. Вы можете использовать hwclockкоманду для этого.

Я не знаю ArchLinux, поэтому я не уверен, где находятся эти скрипты, но вы можете найти эту статью в ArchLinux Wiki полезной .

1
pgs

Я попытался использовать NTP, и хотя он временно решает проблему, это не всегда вариант, так как он не всегда подключен к Интернету.

NTP сделает две вещи. Во-первых, постоянно сравнивайте свое время с сетевыми серверами времени и настраивайте по мере необходимости.

Второе, что NTP сделает, это вычислит точный дрейф для ваших системных часов. Таким образом, даже когда вы не подключены, NTP может продолжать регулировать ваши часы. Это будет не так точно, как когда вы в сети, но будет лучше, чем ничего. Я не уверен, как он будет настраиваться после отключения вашего нетбука на некоторое время. Запуск ntpdate как части запуска установит правильное время, если у вас есть подключение к интернету.

0

У меня была похожая проблема на моем ноутбуке с Archlinux. Эта тема помогла.

Похожие вопросы