Frage

Linux bietet die stime (2) rufen Sie die Systemzeit einstellen. Doch während dies die Systemzeit aktualisiert wird, ist es nicht das BIOS-Hardware-Uhr setzen Sie die neue Systemzeit entsprechen.

Linux-Systeme synchronisieren typischerweise die Hardware-Uhr mit der Systemzeit beim Herunterfahren und in periodischen Abständen. Wenn jedoch die Maschinenleistung-radelte vor einem dieser automatischen Synchronisierungen wird, wird die Zeit falsch sein, wenn die Maschine neu gestartet wird.

Wie stellen Sie sicher, dass die Hardware-Uhr aktualisiert wird, wenn Sie die Systemzeit eingestellt?

War es hilfreich?

Lösung

Überprüfen Sie die rtc Mann-Seite für Details, aber wenn Sie als root, so etwas wie dies angemeldet:

    struct       rtc_time {
        int         tm_sec;      
        int         tm_min;      
        int         tm_hour;     
        int         tm_mday;     
        int         tm_mon;      
        int         tm_year;     
        int         tm_wday; /* unused */
        int         tm_yday; /* unused */
        int         tm_isdst;/* unused */
    };

struct rtc_time rt;
/* set your values here */
fd = open("/dev/rtc", O_RDONLY);
ioctl(fd, RTC_SET_TIME, &rt);
close(fd);

Andere Tipps

Nach dem Aufruf von stime (), dies zu tun:

system("/sbin/hwclock --systohc");

Sehen Sie die hwclock (8) man-Seite für weitere Informationen.

Ich würde beginnen, indem Sie den Quellcode von hwclock zu lesen.

Ich würde auch die Hardware-Uhr darauf hinweisen, ist nur dann genau auf einen Punkt (ich habe Systeme gesehen, die ein paar Sekunden pro Tag verlieren / Gewinn).

Haben Sie darüber nachgedacht, die Netzwerk-Zeit Daemon einrichten, um Ihre Uhr mit einem Zeitserver zu synchronisieren?

Zwar diese Synchronisierung nicht geschieht erst nach der Daemon startet so die Hardware-Uhr auch synchron zu halten zwischen der Leistung und dem Punkt synchronisiert gegen den Zeitserver der Zeit Daemon hilft.

Wenn der Text-Editor ist anders als Kubuntu (kate ist die Standard-Editor), Ihre eigenen verwenden, um mit dem sudo Befehl im Terminal.

  1. run Terminal
  2. Kopieren und fügen Sie diesen Befehl sudo kate /etc/default/rcS drücken Sie Enter
  3. Geben Sie Benutzer-Passwort (Ihr Login-Passwort) drücken Sie Enter
  4. Texteditor auf dem Desktop öffnen
  5. die Zeile UTC=yes ändern UTC=no
  6. und klicken Sie auf Speichern (oben im Texteditor Tab-Leiste)
  7. Neustart
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top