Domanda

Linux fornisce la chiamata stime (2) per impostare l'ora di sistema. Tuttavia, mentre questo aggiornerà l'ora del sistema, non imposta l'orologio hardware del BIOS in modo che corrisponda all'ora del nuovo sistema.

I sistemi Linux in genere sincronizzano l'orologio hardware con l'ora di sistema allo spegnimento e ad intervalli periodici. Tuttavia, se la macchina viene spenta e riaccesa prima di una di queste sincronizzazioni automatiche, il tempo non sarà corretto al riavvio della macchina.

Come si garantisce che l'orologio hardware venga aggiornato quando si imposta l'ora di sistema?

È stato utile?

Soluzione

Controlla la man-page di rtc per i dettagli, ma se hai effettuato l'accesso come root, qualcosa del genere:

    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);

Altri suggerimenti

Dopo aver chiamato stime (), procedere come segue:

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

Vedi la pagina man hwclock (8) per maggiori informazioni.

Vorrei iniziare leggendo il codice sorgente di hwclock.

Vorrei anche sottolineare che l'orologio hardware è preciso solo fino a un certo punto (ho visto sistemi che perdono / guadagnano un paio di secondi al giorno).

Hai mai pensato di configurare il demone del tempo di rete per sincronizzare l'orologio con un server del tempo?

È vero che questa sincronizzazione non avviene fino a quando non viene avviato il demone, quindi mantenere sincronizzato l'orologio hardware aiuta anche tra l'accensione e il punto in cui il daemon temporale si sincronizza con il time server.

Se l'editor di testo è diverso da kubuntu (kate è l'impostazione predefinita nell'editor), usa il tuo con il comando sudo nel terminale.

  1. esegui terminale
  2. copia e incolla questo comando sudo kate / etc / default / rcS premi Invia
  3. inserisci la password dell'utente (la tua password di accesso) premi Invia
  4. l'editor di testo si aprirà sul desktop
  5. cambia la riga UTC = yes in UTC=no
  6. e fai clic su Salva (nella parte superiore della barra della scheda dell'editor di testo)
  7. riavvio
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top