LINUX.ORG.RU
решено ФорумAdmin

Ядро забило на hwclock

 , ,


0

3

Настроил тут генту, вроде все нормально, но при запуске выдает ошибку, мол «не могу hwclock запустить». Покопался в ядре, все выставлено, rtc должен появится в устройствах, но этого не происходит. Пробовал ставить в качестве модуля, пробовал делать ядро с помощью genkernel, все равно никак. Если конкретно, то пишет:

hwclock from util-linux 2.25.2
hwclock: cannot open /dev/rtc: No such file or directory
No usable clock interface found.
hwclock: Cannot access the Hardware Clock via any known method

Развожу все это дело в виртуалке, может в этом проблема?

Ответ на: комментарий от akhmylin
clock="local"
clock_hctosys="YES"
clock_systohc="NO"
clock_args=""

А тему по ссылке я уже глядел, ничего нового там не нашел.

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

Я сейчас компилю ядро (опять), но вообще я уже видел что-то по поводу этого пункта в настройках и я его попросту не нашел.

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

Я попробовал найти это в настройках. Поиск утверждает, что опция есть и она отключена, но я все равно не могу ее найти. Может стоит прописать в конфигах вручную? Подскажешь как лучше?

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

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

alex_the_v ★★★ ()
Ответ на: комментарий от quaquaker

На самом деле, поддержка для этого дела есть:

#
# These legacy RTC drivers just cause too many conflicts with the generic
# RTC framework ... let's not even try to coexist any more.
#
if RTC_LIB=n

config RTC
        tristate "Enhanced Real Time Clock Support (legacy PC RTC driver)"
        depends on !PPC && !PARISC && !IA64 && !M68K && !SPARC && !FRV \
                        && !ARM && !SUPERH && !S390 && !AVR32 && !BLACKFIN && !UML
        ---help---
          If you say Y here and create a character special file /dev/rtc with
          major number 10 and minor number 135 using mknod ("man mknod"), you
          will get access to the real time clock (or hardware clock) built
          into your computer.

Видимо, без этой опции ты на VirtualBox /dev/rtc не получишь. Попробуй вписать в конфиг CONFIG_RTC=y перед CONFIG_RTC_LIB и собраться.

alex_the_v ★★★ ()
Последнее исправление: alex_the_v (всего исправлений: 1)
Ответ на: комментарий от alex_the_v

Поставил, скомпилил, не помогает.

Вот выхлоп find / | grep rtc0:

/sys/devices/platform/rtc_cmos/rtc/rtc0
/sys/devices/platform/rtc_cmos/rtc/rtc0/dev
/sys/devices/platform/rtc_cmos/rtc/rtc0/date
/sys/devices/platform/rtc_cmos/rtc/rtc0/name
/sys/devices/platform/rtc_cmos/rtc/rtc0/time
/sys/devices/platform/rtc_cmos/rtc/rtc0/power
/sys/devices/platform/rtc_cmos/rtc/rtc0/since_epoch
/sys/devices/platform/rtc_cmos/rtc/rtc0/device
/sys/devices/platform/rtc_cmos/rtc/rtc0/subsystem
/sys/devices/platform/rtc_cmos/rtc/rtc0/hctosys
/sys/devices/platform/rtc_cmos/rtc/rtc0/max_user_freq
/sys/devices/platform/rtc_cmos/rtc/rtc0/uevent
/sys/devices/platform/rtc_cmos/rtc/rtc0/wakealarm
/sys/class/rtc/rtc0
/proc/irq/8/rtc0

А вот dmesg | grep rtc:

[   0.000000] platform rtc_cmos: registered platform RTC device (no PNP device found)
[   0.000000] rtc_cmos rtc_cmos: rtc core: registered rtc_cmos at rtc0
[   0.000000] rtc_cmos rtc_cmos: alarms up to one day, 114 bytes of nvram 
[   0.000000] rtc_cmos rtc_cmos: setting ssytem clock to 2015-04-30 14:02:07 UTC (1430402527)
[   0.000000] rtc_cmos: disagrees about version of symbol module_layout
[   0.000000] rtc_cmos: disagrees about version of symbol module_layout
[   0.000000] rtc_cmos: disagrees about version of symbol module_layout

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

Поменял, пересобрал, ничего не изменилось. Самое интересное, что zgrep rtc /proc/config.gz выдает один единственный параметр для rtc:

CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
quaquaker ()
Ответ на: комментарий от alex_the_v

Собираю через make && make modules, перед этим все чищу через mrproper. Genkernel я уже пробовал и толку от него не было. Попробую еще раз, отпишусь.

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

Ага, отпишись обязательно, дико интересно что у тебя там за магия и куда опции из конфига деваются. Я бы полез проверять где какие сорцы ядра лежат, правильные ли линки и кто что куда собирает. Воткни, что ли, Local Version и посмотри видна ли она при загрузке.

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

Собрал генкернелем, ситуация в config.gz не поменялась, с часами соответственно тоже. А где можно все это проверить? Я так-то полунуб, генту последний раз два года назад собирал. А последний линух который стоял у меня на машинке был ubuntu.

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

Это поможет собрать ядро, но не поможет отыскать проблему. Мне главное узнать почему make собирает что-то левое по одному и тому же конфигу, как и genkernel.

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

а что конкретно левое он собирает? ты когда make menuconfig делаешь, ты пользуйся / для поиска нужных опций и в .configе ничего менять не надо.

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

Сделай эксперимент с Local Version, это тебе позволит понять попадает ли в систему именно то ядро, которое ты собираешь.

alex_the_v ★★★ ()
Ответ на: комментарий от akhmylin

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

К тому же, есть ряд опций, которые в menuconfig недоступны, хотя в ядре поддерживаются и поиск в menuconfig их показывает, например CONFIG_RTC.

alex_the_v ★★★ ()
Ответ на: комментарий от akhmylin

А смысл? Я и так это делаю каждый раз после сборки. Мне ведь не обязательно даже запускать систему, чтобы поверить работают ли часики. Если hwclock не запускается сразу, то и после ребута он не запустится.

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

Попробовал с Local Version, естественно он ничего не изменил и версия осталась пустой. Еще я попробовал заменить все файлы конфигов, которые использует для сборки ядра genkernel на свои и добавил везде CONFIG_RTC=y. Не помогает. Может попробуем контактами обменяться, чтобы ускорить процесс? А то я уже неделю с этим маюсь.

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

Угу. Это значит, что либо собираемое тобой ядро не доходит до целевой системы, либо система сборки не видит конфиг и юзает непонятно что.

Мы все равно вряд ли сможем продуктивно общнуться в онлайне из-за разницы во времени. И проблема у тебя, видимо, не в том, что ты что-то не так делаешь. Просто перекосило какую-то мелкую деталь - симлинк не туда показывает, или бут-партишен не смонтирован и груб не видит новое ядро. Проверь еще раз весь процесс сборки и установки ядра по хендбуку. Я совсем недавно возился с ядром на генте и тоже пару шишек набил.

alex_the_v ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.