LinuxForum.Fans
Тема

[Решено] OpenSUSE 12.2 и часы

Автор: SAK 40 сообщений 16737 просмотров
#277536
"verg" написал:
Кстати, посмотрите у вас не этот баг: https://bugzilla.novell.com/show_bug.cgi?id=779087

Не нашел ничего общего, кроме того систему не обновлял, а устанавливал начисто.

"verg" написал:
Выполнение mkinitrd не должно ничего ломать.

Так несколько раз оно выполнилось и ничего не поломало, после исправления USE_ADJUST="yes" (возможно просто совпадение) почему-то сломалось и больше не исправляется.

"verg" написал:
Покажите:
text

cat /lib/mkinitrd/scripts/boot-usb.sh

#!/bin/bash #%stage: device #%udevmodules: usbcore ohci_hcd uhci-hcd ehci_hcd xhci-hcd usbhid hid-logitech-dj hid-generic #%if: "$use_usb" # ##### usb module helper ## ## This script provides us with all core usb modules. ## Additionally this script provides us with the usb ## HID modules so we are able to use a usb keyboard. ## ## Command line parameters ## ----------------------- ##

uname -a Linux linux-nopp 3.4.6-2.10-desktop #1 SMP PREEMPT Thu Jul 26 09:36:26 UTC 2012 (641c197) i686 athlon i386 GNU/Linux

rpm -qa | grep mkinitrd mkinitrd-2.7.1-62.6.1.i586

#278262

Удалось прочитать сообщения об ошибках при загрузке:

text
Dependency failed. Aborted start of Login Service
Dependency failed. Aborted start of Network Manager
Dependency failed. Aborted start of Network Manager Wait Online
Dependency failed. Aborted start of Avahi mDNS/DNS-SD Stack
Dependency failed. Aborted start of D-bus System Message Bus
Welcome to emergency mode. Use "systemctl default" or ^D to enter default mode.
Give root password for login:

Не знаю как восстановить работоспособность т.к. система работает в текстовой консоли, yast пытается писать по русски, но вместо русских букв квадратики. Можно было бы переустановить систему, но хочется разобраться что произошло и каким образом запуск mkinitrd привёл к такому результату.

#278282

Для предоставления более детальной информации изучайте:
http://ru.opensuse.org/SDB:Systemd#.D0.9E.D1.82.D0.BB.D0.B0.D0.B4.D0.BA.D0.B0
или
http://freedesktop.org/wiki/Software/systemd/Debugging
Поскольку предоставленная Вами информация:

SAK написал:
Dependency failed. Aborted start of Login Service
Dependency failed. Aborted start of Network Manager
Dependency failed. Aborted start of Network Manager Wait Online
Dependency failed. Aborted start of Avahi mDNS/DNS-SD Stack
Dependency failed. Aborted start of D-bus System Message Bus
Welcome to emergency mode. Use "systemctl default" or ^D to enter default mode.
Give root password for login:

ни о чем не говорит.
В качестве предположения:
1. Загрузитесь с помощью SysV и переустановите библиотеки systemd
2. Введите пароль суперпользователя и выполните fsck.
Кстати, тема уже вышла из рамок настройки времени.

#278380

Переустановил систему, на этапе установки снял галку "Аппаратные часы установлены в UTC" в дополнительных настройках установка времени вручную. После завершения установки скорректировал время и обновил систему. Пока аппарантые часы не сбрасываются и в SUSE время показывается верно.

#278462
SAK написал:
на этапе установки снял галку "Аппаратные часы установлены в UTC" в дополнительных настройках установка времени вручную.

Вот это и только это тру-вэй!
Всегда снимайте эту галку. Если ее снять, то SUSE будет считать часы компа локальным временем.
Если не снять, то время будет меняться на срок зависящий от выбранного Вами часового пояса.

#280270

После того, как настроил время, как написано в полезных советах, оно перестало уходить на 4 часа вперед. Но через некоторое время появилась другая проблема, возможно, после обновления - аппаратное время после загрузки openSUSE стало уходить на 4 часа назад. Это видно, если дать команды date и hwclock.

date
Wed Oct 17 00:51:37 MSK 2012
hwclock
Tue Oct 16 20:51:42 2012 -0.266081 seconds

Независимо от того, какое было аппаратное время перед загрузкой, программные часы (KDE, команда date и т. д.) после загрузки openSUSE показывают правильное время, а часы в BIOS устанавливаются на 4 часа назад. И потом остается то же самое неправильное время, если перезагружаюсь в другие ОС. Галочка "Аппаратные часы установлены в UTC" убрана. Попробовал поставить ее и убрать и принять 2 раза изменения, аппаратное время оказалось правильным. Но после следующей загрузки аппаратное время опять слетело, хотя галочка не установлена. Как лучше вручную убрать установку аппаратных часов в UTC. И такой вопрос, что значит "для тех, кто не пользуется NTP" - эти настройки вручную как-то конфликтуют с NTP или нет? В общем, как лучше сделать, чтобы синхронизация времени по NTP работала, а аппаратное время не уходило на 4 часа назад?

#280273

Макс1,
Иногда загружаетесь в Windows?
Или система только линукс.

#280274
"verg" написал:
Иногда загружаетесь в Windows?

Да.

#280275

Макс1,
Пробуйте следующее (в Windows):
Cоздать *.reg файл:

text
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=dword:00000001

Применить его к реестру.
И винда перестанет менять время в BIOS.


з.ы. если что, всегда можно это откатить

#280276

Макс1,
Проверка: Сделать несколько перезагрузок туда-сюда.

#280277

Дело не в этом. У меня есть и DOS, там то же самое. Время в BIOS уходит на 4 часа назад после загрузки openSUSE, если оно было правильным, а если уже -4 часа, таким и остается. Похоже, что время устанавливается по NTP - правильное программное и аппаратное -4 часа.

#280278

Макс1,
Проверьте:
1) Отключить NTP
Применить следующее:
Это:

text
# echo -e "0.0 0 0.0\n0\nLOCAL" > /etc/adjtime

и ещё это: OpenSUSE 12.2 и часы
2) Настроить время
3) Перезагрузки туда-сюда

#280280

Макс1,
Кстати покажите:

text
cat /etc/sysconfig/clock
#280282

cat /etc/sysconfig/clock

Показать

## Path: System/Environment/Clock
## Description: Information about your timezone and time
#
# Be aware that the time reference of the CMOS/HW clock has been
# forwarded to /etc/adjtime, the file used by hwclock(8),
# systemd(1), and the kernel as reference for the CMOS/HW clock.

## Type: list(yes,no,)
## Description: Write back system time to the hardware clock
#
# Is set to "yes" write back the system time to the hardware
# clock at reboot or shutdown. Usefull if hardware clock is
# much more inaccurate than system clock. Set to "no" if
# system time does it wrong due e.g. missed timer interrupts.
# If set to "no" the hardware clock adjust feature is also
# skipped because it is rather useless without writing back
# the system time to the hardware clock.
#
# Note that you need to enable boot.clock for this feature to take
# effect.
#
# defaults to 'yes' if unset
#
SYSTOHC=""

## Type: list(no,yes)
## Description: Write back system time if if already done by kernel
#
# Is set to "yes" write back the system time to the hardware
# clock at reboot or shutdown eveb if this is done by the kernel
# in the so called ``Eleven Minute Mode''.
#
FORCE_SYSTOHC="no"

## Type: string
## Type: list(yes,no)
## Description: HW clock is not able to use years outside 1994-1999.
#
# Indicates that the Hardware Clock is incapable of storing years
# outside the range 1994-1999.
#
BADYEAR="no"

## Type: string
## Description: Overrides the default device file name
#
# Overrides the default /dev file name, which is /dev/rtc on many
# platforms but may be /dev/rtc0, /dev/rtc1, and so on.
#
HCTOSYS_DEVICE=""

## Type: list(yes,no,)
## Description: Do or do not not run hwclock(8)
#
# Set this to yes if it is possible to access the hardware clock,
# or no if it is not. On some platforms (s390 or xen) this may
# overwritten by the service its self.
#
USE_HWCLOCK="yes"

## Type: list(yes,no,)
## Description: Correct systematic drift of the HW clock
#
# Add or subtract time from the Hardware Clock to account for
# systematic drift since the last time the clock was set or
# adjusted. By default off as this can cause trouble. For
# systems using localtime for HW clock this will ignored.
#
USE_ADJUST="no"

## Type: string(Europe/Berlin,Europe/London,Europe/Paris)
## ServiceRestart: boot.clock
## Command: /sbin/refresh_initrd
#
# Timezone (e.g. CET or Asia/Tokyo). The value should correspond
# to the contents of the /etc/localtime file and is for internal
# YaST use; changing this setting will not make SuSEconfig update
# the /etc/localtime file, YaST does that or you will need to do
# this manually by calling zic -l.
#
TIMEZONE="Europe/Moscow"
DEFAULT_TIMEZONE="US/Eastern"
#280283
"Макс1" написал:
TIMEZONE="Europe/Moscow"
DEFAULT_TIMEZONE="US/Eastern"

Измените на это:

text
TIMEZONE="Europe/Moscow"
DEFAULT_TIMEZONE="Europe/Moscow"

и ещё:

text
FORCE_SYSTOHC="no"

на

text
FORCE_SYSTOHC="yes"

Потом:

text
# mkinitrd
#280286

Получается так, что при любых настройках при включенном NTP время в BIOS уходит на 4 часа назад. Раньше, после того, как была решена проблема с уходом времени на 4 часа вперед, такого некоторое время не было. Если отключить NTP, такого сейчас нет. По крайней мере, после:

echo -e "0.0 0 0.0\n0\nLOCAL" > /etc/adjtime
mkinitrd

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

#280289

Макс1,
Включите NTP через Яст - настройте время - синхронизируйте вручную
Далее выполните:

text
# sed -i 's/utc/localtime/g' /etc/init.d/ntp

Потом перезагрузиться.


з.ы. На себе проверил:

text
localhost:/home/verg # date
Ср. окт. 17 03:56:35 MSK 2012
localhost:/home/verg # hwclock
Ср. 17 окт. 2012 03:56:42  -0.833372 секунд
#280499

# sed -i 's/utc/localtime/g' /etc/init.d/ntp

Да, это работает, сейчас нормально при включенном NTP. Спасибо.

#280500
"Макс1" написал:
Да, это работает

Просто скрипт ntp в openSUSE оказался немного глупеньким.


з.ы. ну, вроде все случаи, связанные со временем, разобрали в этой теме.
Отправлю в решенные.

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