hwclock auf IBM/Lenovo Thinkpad T60
Diese Seite behandelt ein Problem mit der Systemuhr, das mir bei dem Betrieb eines Debian-Linux auf einem IBM/Lenovo Thinkpad T60 begegnet ist. Nach dem, was ich dazu im Netz gefunden habe, scheint es aber nicht nur auf die Kombination Debian-T60 begrenzt zu sein, sondern auch bei einigen anderen Notebooks und Linux-Distributionen aufzutreten. Die Symptome:
- Wenn die Hardwareuhr auf Lokalzeit läuft, z.B. weil man noch ein Windows als zweites System auf dem Rechner hat, das dieses erwartet, geht unter Linux die Systemuhr exakt um die Differenz falsch, die zwischen UTC (Greenwich-Zeit) und der eigenen Zeitzone besteht.
- Während des Bootvorgangs sieht man an der Stelle, an der die Systemzeit gestellt werden sollte, die folgende Fehlermeldung:
select() to /dev/rtc to wait for clock tick timed out - Wenn man als root das Kommando "hwclock" ausfährt, erscheint die gleiche Meldung, "hwclock --systohc" und "hwclock --hctosys" funktionieren nicht.
Die Ursache des Problems liegt in der Interaktion des RTC-Treibers mit der Hardwareuhr, die hier nicht korrekt funktioniert.
"hwclock" kann aber mittels des zusätzlichen Parameters "--directisa" dazu gebracht werden, nicht den RTC-Treiber zu verwenden, sondern direkten Zugriff
auf die Uhr.
Um nun "hwclock" dazu zu bringen, immer mit diesem Parameter zu starten, kann man folgendermaßen vorgehen (alles als root):
- Die Datei /sbin/hwclock umbenennen, z.B. in /sbin/hwclock.bin
- Eine neue Datei /sbin/hwclock mit folgendem Inhalt anlegen:
#! /bin/sh
/sbin/hwclock.bin --directisa $*
- Manuell "hwclock --hctosys" (das jetzt funktioniert) ausführen, um die Systemuhr nach der Hardwareuhr zu stellen.
Das war's! Damit sind sämtliche oben beschriebenen Symptome beseitigt und die Systemuhr geht richtig.
