2

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

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

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

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

7 ответов7

5

Убедитесь, что ваш 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.

Удачи!

2

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

2

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

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

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

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

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

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

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

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

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

2

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

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

2

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

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

1

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

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

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .