Next Previous Contents

3. Software

3.1 Clock(8) e Hwclock(8)

Tutte le distribuzioni Linux installano o il vecchio clock(8) o il più recente hwclock(8), ma senza un fattore di correzione. Altre potrebbero anche installare adjtimex(8), o includerlo nel CD come optional (puoi comunque scaricarlo dai soliti archivi). Alcune distribuzioni includono anche un programma grafico di regolazione dell'orologio che funziona in X-Windows, ma questi programmi sono concepiti per un uso interattivo, ed il sistema installerà comunque clock(8) o hwclock(8) per l'uso negli script di avvio.

Clock(8) ti richiede di calcolare il fattore di correzione a mano, mentre hwclock(8) lo calcola automaticamente quandunque lo userai per resettare l'orologio (usare un altro programma per impostare l'orario interferirà con la correzione, perciò usa sempre lo stesso programma se stai utilizzando un fattore di correzione). Se hai un sistema più datato che usa ancora clock(8) e vuoi aggiornarlo, puoi trovare hwclock(8) nel pacchetto "util-linux", versione 2.7 o successiva. Consulta la pagina man per maggiori informazioni.

Nota

La pagina man di hwclock(8) può esser chiamata "clock" per compatibilità all'indietro, perciò prova entrambi i nomi. Hwclock(8) risponderà ai comandi scritti per clock(8), ma il risultato potrebbe non essere lo stesso-- in particolare, "hwclock -a" non è proprio identico a "clock -a", perciò se stai aggiornando a hwclock ti suggerirei di sostituire tutti i riferimenti a "clock" nei tuoi script di avvio in modo che usino i comandi propri di hwclock.

Gli script di avvio variano da una distribuzione all'altra, perciò potrai dover cercare un po' per trovare dove impostano l'orologio. Le posizioni tipiche sono /etc/rc.local, /etc/rc.d/rc.sysinit, /etc/rc.d/boot, o simili.

Il fattore di correzione per l'RTC è archiviato in /etc/adjtime. RedHat ha uno script in /etc/sysconfig/clock che controlla le opzioni di hwclock.

Quando stai regolando l'orologio per determinare il tasso di deviazione, tieni a mente che l'annuncio telefonico dell'orario locale può essere accurato come no. Se non hai una radio ad onde corte o un ricevitore GPS, puoi ascoltare il segnale audio della WWV chiamando lo (01)(303)499-7111 (è una chiamata a pagamento a Boulder, Colorado). Il servizio ti sconnetterà dopo tre minuti, ma dovrebbe essere abbastanza per regolare l'orologio. Anche l'USNO e il CHU del Canada hanno servizi telefonici, ma io preferisco quello del WWV perché passa più tempo tra l'annuncio ed il "beep". Puoi anche ottenere l'orario da un server d'orario di rete usando il programma ntpdate fornito con ntpd, e c'è un orologio Java a www.time.gov.

In ogni caso, quello che stai regolando è l'orologio di sistema, non l'RTC (vedi la pagina man del comando date per i formati da utilizzare). Usa poi hwclock per impostare l'RTC e calcolare il tasso di deviazione. Se stai facendo tutto a mano, dovresti essere in grado di impostarlo con una precisione di un secondo o due, e ottenere un'approssimazione ragionevole del tasso di deviazione dopo un po' di settimane. Puoi poi avviare adjtimex(8) per impostare con precisione l'orologio di sistema.

3.2 Adjtimex(8)

Adjtimex(8) permette all'utente di regolare le variabili dell'orario del kernel, e cambiare cosė la velocità dell'orologio di sistema (devi avere accesso come "root" al sistema per farlo). È progettato in modo intelligente, affinché compari l'orologio di sistema all'RTC usando lo stesso fattore di correzione utilizzato da clock(8) o hwclock(8), come registrato in /etc/adjtime. Perciò, una volta che hai stabilito il tasso di deriva dell'RTC, è abbastanza semplice correggere anche l'orologio di sistema. Quando sarai riuscito a farlo funzionare alla giusta velocità, potrai aggiungere una riga agli script d'avvio per regolare le variabili corrette del kernel al boot. Poiché adjtimex(8) è stato progettato per lavorare con clock(8) o hwclock(8), include una soluzione per il bug dell'"ogni 11 minuti".

Dopo che hai installato adjtimex(8) puoi aver maggiori informazioni su come regolarlo digitando "man 8 adjtimex" (c'è anche una pagina man adjtimex(2), ma non è ciò che serve) e leggendo il file README reperibile a /usr/doc/adjtimex-1.3/README (dove il numero di versione nel percorso sarà la versione corrente di adjtimex(8)).

3.3 Xntpd e ntpd: il Network Time Protocol

Xntpd (NTPv3) è stato sostituito da ntpd (NTPv4); la versione più vecchia non viene più mantenuta.

Ntpd è il programma standard per sicronizzare orologi in una rete, ed è corredato di una lista di server di orario pubblici a cui puoi connetterti. Può essere un po' più complicato da configurare degli altri programmi descritti qui, ma se sei interessato a questo tipo di cose, ti raccomando vivamente di dargli comunque un'occhiata.

La "casa base" per le informazioni su ntpd è il sito web dell'NTP a http://www.eecis.udel.edu/~ntp/ che include pure collegamenti a tutti gli altri generi di cose riguardanti il tempo (compreso software per altri OS). Alcune distribuzioni Linux includono ntpd nei CD. C'è una lista di server d'orario pubblici su http://www.eecis.udel.edu/~mills/ntp/clock2.html.

Una caratteristica relativamente nuova in ntpd è un "burst mode", progettato per macchine che hanno solo un accesso intermittente ad Internet.

Ntpd include driver per un numero piuttosto basso di orologi radio (e pare che ci siano differenze nel supporto di alcuni rispetto ad altri). La maggior parte degli apparecchi di questo tipo sono progettati per l'utilizzo commerciale e costano migliaia di dollari, ma ci sono alcune alternative più economiche (esaminate in successive sezioni). Nel passato la maggior parte erano ricevitori WWV o WWVB, ma ora quelli di tipo più comune sembrano essere i GPS. NIST mantiene un file PDF sul proprio server che elenca i fabbricanti di orologi radio, a http://www.boulder.nist.gov/timefreq/links.htm (vicino alla fine della pagina). Anche il sito web di NTP include molti collegamenti ai produttori di orologi radio, a http://www.eecis.udel.edu/~ntp/hardware.htm e http://www.eecis.udel.edu/~mills/ntp/refclock.htm. Queste liste possono essere aggiornate come non esserlo :-). La lista dei driver per ntpd è a http://www.eecis.udel.edu/~ntp/ntp_spool/html/refclock.htm.

Ntpd include anche driver per molti servizi di orario telefonici. Sono tutte chiamate a lunga distanza, perciò assicurati di calcolarne l'effetto sulla tua bolletta prima di usarli.

3.4 Chrony

Xntpd è stato scritto originariamente per sistemi provvisti di una connessione a tempo pieno ad un server d'orario di rete o a un orologio radio. In teoria può essere anche usato con macchine che vi sono connesse solo a tratti, ma Richard Curnow non è mai riuscito a farlo funzionare come voleva... perciò ha scritto "chrony", perché costituisse un'alternativa per quelli di noi che hanno accesso in rete solo quando sono collegati ad un provider (il "burst mode" di ntpd è stato progettato appunto per risolvere questo stesso problema). La versione corrente di chrony comprende la correzione della deriva per l'RTC, per macchine che rimangono spente per un lungo periodo di tempo.

Puoi avere maggiori informazioni dal sito web di Richard Curnow a http://www.rrbcurnow.freeuk.com/chrony o http://go.to/chrony. Ci sono anche due mailing list, una per annunci e una per le discussioni degli utenti. Per informazioni manda un'e-mail a chrony-users-subscribe@egroups.com o a chrony-announce-subscribe@egroups.com.

Il programma è distribuito solo come sorgente, ma la Debian ne ha incluso una distribuzione binaria nel suo archivio "non stabile". Il file sorgente è disponibile anche negli archivi Linux usuali.

3.5 Clockspeed

Un'altra possibilità è il programma clockspeed di DJ Bernstein. Prende l'orario da un server e semplicemente reimposta l'orario di sistema ogni 3 secondi. Può anche essere usato per sincronizzare molte macchine su una LAN.

Qualche volta ho avuto problemi a raggiungere il suo sito web su http://Cr.yp.to/clockspeed.html, perciò se ti da un errore DNS prova di nuovo un'altro giorno. Proverò ad aggiornare questa sezione se avrò informazioni migliori.


Next Previous Contents