Cas
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Pátek Říjen 30 10:34:53 CET 2015
On Fri, 30 Oct 2015, Martin Mokry wrote:
> [root na localhost ~]# ls -l /sys/class/rtc/rtc0/device/driver
> lrwxrwxrwx. 1 root root 0 okt 30 2015 /sys/class/rtc/rtc0/device/driver ->
> ../../../bus/pnp/drivers/rtc_cmos
To je fakt hodně divné.
Čtení hodin dělá funkce cmos_read_time, která z principu nemůže chybu
vrátit (končí příkazem "return 0").
Ještě připadá v úvahu možnost, že chyba nastane jinde.
__rtc_read_time může tuto chybu chybu vrátit, pokud by driver nenabízel
funkci na čtení času, ale to by v případě rtc_cmos bylo možné jen tehdy,
pokud by něco vynulovalo položku v jeho tabulce. To je nepravděpodobné (i
když ne zcela nemožné).
Pokud máte dostatečně čerstvé jádro (cca >= 3.19), tak by to ještě mohlo
selhat, když __rtc_read_time zavolá rtc_valid_tm, aby se zkontrolovalo,
zda jsou údaje získané z driveru smysluplné. Pokud máte nějaký divný
hardware, tak je možné, že vrací údaje, které to považuje za nesmysly.
V logu by se měla objevit hláška "read_time: rtc_time isn't valid", ovšem
máte-li opravdu čerstvé jádro (cca >= 4.1), tak tam je ta hláška
degradována z dev_err na dev_dbg, a tudíž její viditelnost záleží na
nastavení jádra i systémových logů.
Takže otázka zní, jaké máte přesně jádro, jak je nastavené logování a zda
se v logu neobjevují nějaké protesty ohledně "read_time. (Ano, psal jste,
že je to Fedora 22, ale nechce se mi teď zjišťovat, jak to tam přesně je.)
Také je otázka, jaký máte hardware a zda to na něm dřív fungovalo lépe.
Také zkuste "hwclock --show --directisa". Nevím, jestli to ještě funguje,
ale pokud ano, tak by to mělo přimět hwclock, aby zkusil hodiny přečíst
přímo z hardwaru.
--
Pavel Kankovsky aka Peak "Que sais-je?"
Další informace o konferenci Linux