Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 1380

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>The Clock Mini-HOWTO</TITLE>


</HEAD>
<BODY>
<H1>The Clock Mini-HOWTO</H1>

<H2>Ron Bean, <CODE>
<A HREF="mailto:rbean@execpc.com">rbean@execpc.com</A></CODE></H2>v2.1, Novembre 2000
<P><HR>
<EM>Come regolare e mantenere preciso l'orologio del tuo computer.</EM>
<HR>
<H2><A NAME="s1">1. Introduzione</A></H2>

<H2>1.1 Qualcuno sa veramente che ora &egrave;?</H2>

<P>I chip Real-Time-Clock (RTC, orologio in tempo reale) usati sulle schede madri dei PC sono notoriamente inaccurati, visto che di solito guadagnano o perdono una quantit&agrave; considerevole (e di solito costante) di tempo ogni giorno. Linux fornisce un sistema semplice per correggere questo problema via software, il che pu&ograve; rendere l'orologio <EM>*molto*</EM> accurato, anche senza ricorrere a una fonte d'orario esterna. La maggior parte delle persone per&ograve; non sa come impostarlo per far questo, per diversi motivi:
<P>
<UL>
<LI>Il procedimento non &egrave; menzionato nella maggior parte della documentazione generale 
su come impostare Linux, e non pu&ograve; essere impostato automaticamente 
(se non si ha una fonte esterna per l'orario), per cui il default &egrave; 
di non usarlo.</LI>
<LI>Se si digita &quot;<CODE>man clock</CODE>&quot; si ottiene la pagina 
man per <CODE>clock(3)</CODE>, che non &egrave; quello che ci interessa. Prova 
&quot;<CODE>man 8 clock</CODE>&quot; o &quot;<CODE>man 8 hwclock</CODE>&quot; 
(alcune distribuzioni cercano le pagine man in ordine numerico se non 
gli specifichi un numero di sezione, altre cercano nell'ordine impostato 
in <CODE>/etc/man.config</CODE>).</LI>
<LI>La maggior parte della gente non pare comunque curarsi di che ora sia.</LI>
<LI>Quei pochi che se ne curano spesso preferiscono sincronizzare l'orologio 
con una fonte esterna, come un server di orario di rete o un orologio radio. 
Questo rende (praticamente) irrilevante l'accuratezza del RTC.</LI>
</UL>
<P>Questo mini-HOWTO descrive l'approccio low-tech (che pu&ograve; essere ugualmente molto accurato), e fornisce indicazioni a molte alternative pi&ugrave; sofisticate. Nella maggioranza dei casi la documentazione &egrave; scritta molto bene, quindi non ripeter&ograve; quelle informazioni qui.
<P>Versioni precedenti di questo documento includevano le istruzioni dettagliate per il vecchio programma <CODE>clock(8)</CODE>, ad uso chi avesse ancora un sistema vecchiotto; ho scartato quella sezione perch&eacute; la maggior parte delle distribuzioni ora usa al suo posto <CODE>hwclock(8)</CODE>, che ha una documentazione molto migliore. Se vuoi comunque una copia delle istruzioni di <CODE>clock(8)</CODE>, te le posso inviare per posta elettronica, ma prima leggi la sezione su <CODE>hwclock(8)</CODE>.
<P>
<DL>
<DT><B>Nota</B><DD><P>Devi essere utente &quot;<B>root</B>&quot; per avviare qualsiasi programma 
che influenzi l'RTC o l'orario di sistema. Tienilo a mente quando utilizzi i 
programmi descritti qui. Se normalmente usi un'interfaccia grafica per fare 
tutto, potresti dover imparare alcuni comandi di shell basilari di Unix.
</DL>
<P>
<DL>
<DT><B>Nota</B><DD><P>Se usi pi&ugrave; di un sistema operativo sul tuo PC, dovresti permettere ad 
uno solo di questi di regolare l'orologio CMOS, perch&eacute; non si confondano 
l'un l'altro. L'eccezione &egrave; costituita dalla regolazione per l'ora legale, che 
avviene due volte l'anno (vedi la sezione specifica per maggiori dettagli).
</DL>
<P>Se usi un sistema dual-boot che fa funzionare Windows per molto tempo, forse preferirai dare un'occhiata a qualche software disponibile per quel sistema operativo. Segui i collegamenti dal sito web dell'NTP su 
<A HREF="http://www.eecis.udel.edu/~ntp/software.html">http://www.eecis.udel.edu/~ntp/software.html</A>. Molti degli orologi radio nominati qui includono software per Windows.
<P>
<DL>
<DT><B>Nota</B><DD><P>Per la traduzione italiana Germano Rizzo, 
<A HREF="mailto:mano78@users.sourceforge.net">mano78@users.sourceforge.net</A></DL>
<H2>1.2 Dove trovare roba: &quot;i soliti posti&quot;</H2>

<P>Da qualche parte ho detto che il software pu&ograve; essere scaricato da &quot;i soliti posti&quot;, il che significa quei siti dai quali puoi scaricare un sistema Linux completo se non l'hai avuto su CD-ROM. Un po' di tempo fa questo voleva dire l'archivio ftp di sunsite.unc.edu, e vari mirror nel mondo. Questo sito ha cambiato nome 
<A HREF="http://metalab.unc.edu/linux/">http://metalab.unc.edu/linux/</A> (poich&eacute; Sun non lo sponsorizza pi&ugrave;). Alcune distribuzioni hanno anche un loro sito web, che pu&ograve; includere un bel po' di queste cose.
<P>Dar&ograve; per scontato che la maggior parte delle persone adesso abbiano Linux su CD; questi CD spesso includono software che non &egrave; parte dell'installazione di default, cos&igrave; potresti gi&agrave; avere alcuni dei programmi nominati qui senza saperlo.
<P>La versione pi&ugrave; recente di questo mini-HOWTO pu&ograve; essere reperita alla home page del Linux Documentation Project, che &egrave; attualmente 
<A HREF="http://www.linuxdoc.org/">http://www.linuxdoc.org/</A> (e pu&ograve; essere raggiunto anche dal sito di metalab nominato sopra). Penso che tutti i vecchi link conducano ora a questo (la traduzione italiana pi&ugrave; recente pu&ograve; essere ritrovata ugualmente l&igrave;, o alla home page dell'Italian Linux Documentation Project, presso 
<A HREF="http://www.pluto.linux.it/ildp/">http://www.pluto.linux.it/ildp/</A>, NdT).
<P>Tutti gli HOWTO sono scritti in SGML e poi convertiti in vari altri formati da programmi di conversione standard. Molti sembrano preferire la versione HTML, che si trova a 
<A HREF="http://www.linuxdoc.org/HOWTO/mini/Clock.html">http://www.linuxdoc.org/HOWTO/mini/Clock.html</A> (per la versione italiana, 
<A HREF="http://www.pluto.linux.it/ildp/HOWTO/mini/Clock.html">http://www.pluto.linux.it/ildp/HOWTO/mini/Clock.html</A>, NdT). L'history delle revisioni si trova come commento nel sorgente SGML. Molte distribuzioni installano un insieme completo di HOWTO in <CODE>/usr/doc/HOWTO/</CODE> e <CODE>/usr/doc/HOWTO/mini</CODE>.
<H2>1.3 Ringraziamenti</H2>

<P>Questo mini-HOWTO &egrave; stato migliorato di molto grazie a varie persone che mi hanno scritto fin dalla sua prima versione, nel 1996. In alcuni casi hanno scritto ponendomi domande, ma hanno finito per darmi tante informazioni quante ne davo io a loro. Sfortunatamente non ho compilato una lista completa dei nomi (forse la prossima volta). Ma so chi siete <CODE>:-)</CODE>.
<H2><A NAME="s2">2. Come Linux tiene traccia del tempo</A></H2>

<H2>2.1 Strategie base</H2>

<P>Un sistema Linux ha effettivamente due orologi: uno &egrave; il &quot;Real Time Clock&quot;, alimentato a batteria (conosciuto anche come &quot;RTC&quot;, &quot;orologio CMOS&quot;, o &quot;orologio Hardware&quot;) che scandisce il tempo quando il sistema &egrave; spento ma non &egrave; utilizzato quando &egrave; funzionante. L'altro &egrave; l'&quot;orologio di sistema&quot; (chiamato anche &quot;orologio del kernel&quot; o &quot;orologio software&quot;) che &egrave; un contatore software basato sugli interrupt del timer. Non esiste quando il sistema non &egrave; in funzione, per cui deve essere inizializzato dall'RTC (o da qualche altra fonte) al boot. I riferimenti all'&quot;orologio&quot; nella documentazione di <CODE>ntpd</CODE> si riferiscono a quello di sistema, non all'RTC.
<P>I due orologi deviano dall'ora reale a ritmi differenti, perci&ograve; gradualmente i rispettivi orari differiranno sempre pi&ugrave; tra loro, ed anche dal tempo &quot;reale&quot;. Il modo pi&ugrave; semplice per mantenerli precisi &egrave; di misurare i tassi di deviazione, e applicare dei fattori di correzione nel software. Poich&egrave; l'RTC &egrave; usato solo quando il sistema non &egrave; attivo, il fattore di correzione &egrave; applicato quando l'orario viene letto all'avvio, usando <CODE>clock(8)</CODE> o <CODE>hwclock(8)</CODE>. L'orologio di sistema pu&ograve; essere corretto regolando la quantit&agrave; di tempo di cui l'orologio di sistema &egrave; portato avanti ad ogni interrupt del timer, usando <CODE>adjtimex(8)</CODE>.
<P>Una rude alternativa ad <CODE>adjtimex(8)</CODE> &egrave; far avviare <CODE>clock(8)</CODE> o <CODE>hwclock(8)</CODE> a <CODE>cron</CODE> periodicamente, per sincronizzare l'orario di sistema all'RTC (corretto). Questa strada era raccomandata nella pagina man <CODE>clock(8)</CODE>, e funziona se lo si fa abbastanza spesso da non causare grossi &quot;salti&quot; nell'orario di sistema, ma <CODE>adjtimex(8)</CODE> &egrave;una soluzione pi&ugrave; elegante. Alcune applicazioni potrebbero inoltre lamentarsi se l'orario &quot;salta&quot; all'indietro.
<P>Il passo successivo in accuratezza &egrave; utilizzare un programma come <CODE>ntpd</CODE> per leggere periodicamente l'orario da un server di orario di rete o da un'orologio radio, ed aggiustare continuamente il passo dell'orologio di sistema cosicch&eacute; i tempi corrispondano sempre. Se hai una connessione ad una rete sempre attiva all'avvio del tuo sistema, puoi ignorare completamente l'RTC e usare <CODE>ntpdate</CODE> (incluso nel pacchetto <CODE>ntpd</CODE>) per inizializzare l'orologio di sistema da un server -- o un server locale su LAN, o un server remoto su Internet. Se qualche volta per&ograve; non hai la connessione, o se ti serve che l'ora sia precisa durante la sequenza di avvio e prima della connessione alla rete, allora dovrai mantenere preciso anche l'RTC.
<H2>2.2 Potenziali Conflitti</H2>

<P>Potrebbe sembrare ovvio che se usi un programma come <CODE>ntpd</CODE>, puoi sincronizzare l'RTC all'orologio di sistema (corretto). Questa risulta per&ograve; essere una cattiva idea se il sistema star&agrave; spento per pi&ugrave; di pochi minuti, perch&eacute; questa procedura interferir&agrave; con i programmi che applicano il fattore di correzione all'RTC all'avvio.
<P>Se il sistema &egrave; attivo 24 ore su 24 e 7 giorni su 7 ed &egrave; sempre riavviato immediatamente dopo essere stato (eventualmente) spento, puoi semplicemente regolare l'RTC dall'orologio di sistema giusto prima di spegnere la macchina. L'RTC non devier&agrave; significativamente nel tempo speso per il riavvio, perci&ograve; non ti servir&agrave; conoscere il suo tasso di deviazione.
<P>Naturalmente il sistema potrebbe bloccarsi imprevedibilmente, cos&igrave; alcune versioni del kernel sincronizzano l'RTC all'orologio di sistema ogni 11 minuti se quest'ultimo &egrave; stato riaggiustato da un altro programma. L'RTC non devier&agrave; abbastanza in 11 minuti da fare alcuna differenza, ma se il sistema &egrave; spento abbastanza a lungo da far deviare significativamente l'RTC, allora hai un problema: i programmi che applicano le correzioni all'RTC hanno bisogno di sapere <EM>*esattamente*</EM> quando l'RTC &egrave; stato resettato l'ultima volta, ed il kernel non registra questa informazione da nessuna parte.
<P>Alcuni &quot;tradizionalisti&quot; di unix potrebbero chiedersi perch&eacute; qualcuno potrebbe lasciare attivo un sistema Linux per meno di 24 ore al giorno e sette giorni alla settimana, ma alcuni di noi utilizzano un sistema dual-boot, con un altro OS in funzione per un certo tempo, o usano Linux su portatili che devono essere spenti per preservare le batterie quando non sono utilizzati. Altre persone, semplicemente, non vogliono lasciare i PC attivi senza sorveglianza per lunghi periodi di tempo (anche se abbiamo sentito ogni sorta di argomentazioni in favore di questa linea). Perci&ograve; l'&quot;ogni 11 minuti&quot; diventa un bug.
<P>Questa &quot;caratteristica/bug&quot; sembra comportarsi in maniera differente in diverse versioni del kernel (e forse anche in diverse versioni di <CODE>xntpd</CODE> e <CODE>ntpd</CODE>), cos&igrave; se stai usando sia <CODE>ntpd</CODE> che <CODE>hwclock</CODE>, potrebbe essere necessario controllare cosa il tuo sistema realmente fa. Se non puoi trattenere il kernel dal resettare l'RTC, potresti dover far funzionare il sistema senza un fattore di correzione.
<P>La parte del kernel che regola questo aspetto si trova in <CODE>/usr/src/linux-2.0.34/arch/i386/kernel/time.c</CODE> (dove il numero di versione nel path sar&agrave; dato dalla versione del kernel che stai utilizzando). Se la variabile <CODE>time_status</CODE> &egrave; impostata a <CODE>TIME_OK</CODE> allora il kernel scriver&agrave; l'ora sull'RTC ogni 11 minuti, altrimenti lo lascer&agrave; stare. Le chiamate a <CODE>adjtimex(2)</CODE> (come quelle che vengono effettuate da <CODE>ntpd</CODE> e <CODE>timed</CODE>, ad esempio) potrebbero abilitare questo parametro. Le chiamate a <CODE>settimeofday(2)</CODE> imposteranno <CODE>time_status</CODE> a <CODE>TIME_UNSYNC</CODE>, che dice al kernel di non regolare l'RTC. Non ho trovato della vera documentazione su questo aspetto.
<P>Ho sentito che alcune versioni del kernel potrebbero aver problemi con gli &quot;sleep mode&quot; che spengono la CPU per risparmiare energia. La soluzione migliore &egrave; di tenere il kernel aggiornato, e segnalare ogni problema alle persone che lo aggiornano.
<P>Se ottieni risultati bizzarri dall'RTC potresti avere un problema hardware. Alcuni chip RTC includono una batteria al litio che pu&ograve; esaurirsi, e alcune schede madri hanno la possibilit&agrave; di inserire una batteria esterna (assicurati che i jumper siano impostati correttamente). La stessa batteria mantiene la RAM CMOS, ma l'orologio assorbe pi&ugrave; energia ed &egrave; probabile che abbia problemi prima. Se le cose strane riguardano l'orologio di sistema, potrebbe esserci un problema con gli interrupt.
<H2>2.3 L'RTC deve usare il local time o l'UTC? Cosa mi dici dell'ora legale?</H2>

<P>l'&quot;orologio di sistema&quot; di Linux effettivamente non fa altro che contare il numero di secondi trascorsi dal 1 Gennaio 1970, ed &egrave; sempre in UTC (Coordinated Universal Time - Orario Universale Coordinato; o GMT, Greenwich Mean Time - Ora Media di Greenwich, che &egrave; tecnicamente differente ma abbastanza vicino da far usare indifferentemente i due termini dagli utenti normali). L'UTC non cambia al cambiare dell'ora legale-- quello che cambia &egrave; la <EM>conversione</EM> tra UTC e local time (l'orario locale). La traduzione in local time &egrave; operata da funzioni di libreria che vengono linkate nelle varie applicazioni.
<P>Questo ha due conseguenze: primo, ogni applicazione che necessiti di conoscere il local time avr&agrave; anche bisogno di conoscere in che fuso orario ci si trovi, e se vige l'ora legale o meno (vedi la sezione successiva per maggiori dettagli sui fusi orari). Secondo, non c'&egrave; nessuna funzionalit&agrave; nel kernel per cambiare l'orologio di sistema o l'RTC al variare dell'ora legale, perch&eacute; l'UTC non cambia. Perci&ograve; i sistemi che funzionano solo con Linux dovrebbero avere l'RTC impostato sull'UTC, non sul local time.
<P>Comunque, molte persone utilizzano sistemi dual-boot con altri OS, i quali si aspettano che l'RTC contenga il local time; perci&ograve;, <CODE>hwclock</CODE> ha bisogno di sapere se il tuo RTC sia impostato sul local time o sull'UTC, per poi convertirlo nei secondi trascorsi dal 1 Gennaio 1970 (UTC). Questo ancora non fornisce alcun supporto automatico per i cambiamenti periodici dell'RTC dovuti all'ora legale, perci&ograve; il cambiamento dev'essere operato dagli altri OS (questa &egrave; l'eccezione che si diceva prima alla regola di lasciar che un solo programma cambi l'orario dell'RTC).
<P>Sfortunatamente, non ci sono flag nell'RTC o nella RAM CMOS che indichino che si sta utilizzando l'ora legale piuttosto di quella solare, perci&ograve; ogni OS registra quest'informazione in propri luoghi, dove non &egrave; visibile agli altri OS. Questo significa che <CODE>hwclock</CODE> deve presumere che l'RTC contenga sempre il local time corretto, anche se l'altro OS non &egrave; stato mai avviato dall'ultimo cambio d'orario stagionale.
<P>Se Linux &egrave; in funzione quando succede il cambio d'orario stagionale, l'orologio di sistema non ne &egrave; affetto, e le applicazioni effettueranno la conversione corretta. Ma se Linux deve per qualche ragione essere riavviato, l'orologio di sistema sar&agrave; impostato all'orario registrato nell'RTC, che sar&agrave; di un'ora sbagliato, finch&eacute; l'altro OS (di solito Windows) avr&agrave; la possibilit&agrave; di essere avviato.
<P>Non c'&egrave; soluzione a questo problema, ma Linux non va in crash troppo spesso, perci&ograve; la ragione pi&ugrave; probabile per un reboot su un sistema dual-boot &egrave; proprio che si debba avviare l'altro OS. Ma fai attenzione se sei una di quelle persone che chiudono Linux quando non lo utilizzi per un po'-- se non hai avuto la possibilit&agrave; di avviare l'altro OS dall'ultima variazione di orario, l'RTC sar&agrave; spostato di un ora finch&eacute; non lo farai.
<P>Alcuni altri documenti affermano che impostare l'RTC su UTC permette a Linux di gestire correttamente l'ora legale. Questo non &egrave; proprio sbagliato, ma non la dice tutta-- finch&eacute; non riavvii, non importa che orario c'&egrave; nell'RTC (e perfino se la sua batteria si esaurisce). Linux manterr&agrave; l'orario corretto in ogni caso, fino al prossimo riavvio. In teoria, se riavvii una volta all'anno (il che non &egrave; irragionevole, per Linux), l'ora legale potrebbe cambiare due volte e se l'RTC fosse rotto anche da molti mesi non lo noteresti neppure, perch&eacute; l'orologio di sistema sarebbe rimasto corretto per tutto il tempo. Ma dal momento che non puoi prevedere quando riavvierai, &egrave; meglio avere l'RTC impostato sull'UTC se non usi un'altro OS che richieda il local time.
<P>Il chip RTC della Dallas Semiconductors (che &egrave; un sostituto per il chip della Motorola utilizzato negli IBM AT e cloni) pu&ograve; effettivamente effettuare da s&egrave; il passaggio all'ora legale e viceversa, ma questa caratteristica non &egrave; utilizzata perch&eacute; le date di passaggio sono codificate dentro l'hardware stesso del chip e non possono essere cambiate. Le versioni correnti effettuano il cambiamento alla prima domenica di Aprile e all'ultima di Ottobre, ma versioni precedenti usavano date differenti (e ovviamente questo non funziona in altri stati che negli USA). L'RTC &egrave; inoltre spesso integrato nel &quot;chipset&quot; della scheda madre (piuttosto che essere un chip separato), e tra questo tipo di chip non so quali abbiano tale caratteristica.
<H2>2.4 Come Linux tiene conto dei fusi orari</H2>

<P>Probabilmente hai impostato il tuo fuso orario correttamente quando hai installato Linux. Ma se devi modificarlo per qualche ragione, o se le leggi locali riguardanti l'ora legale cambiano (come fanno di frequente in alcuni stati), allora dovrai sapere come reimpostarlo. Se il tuo orario di sistema &egrave; sbagliato di un numero esatto di ore rispetto all'ora reale, potresti appunto avere un problema di fuso orario (o di impostazione dell'ora legale).
<P>Il fuso orario e le informazioni sull'ora legale sono registrate in <CODE>/usr/share/zoneinfo</CODE> (o <CODE>/usr/lib/zoneinfo</CODE> nei sistemi pi&ugrave; datati). Il fuso orario locale &egrave; determinato da un link simbolico da <CODE>/etc/localtime</CODE> su uno di questi file; per modificare il fuso basta cambiare il link. Se le date per l'ora legale del tuo stato sono cambiate, dovrai modificare direttamente il file.
<P>Puoi usare anche la variabile d'ambiente <CODE>TZ</CODE> per cambiare il fuso corrente, il che &egrave; pratico se lavori accedendo in remoto a una macchina che si trova sotto un altro fuso. Vedi anche la pagina man di <CODE>tzset</CODE> e <CODE>tzfile</CODE>.
<P>Tutto ci&ograve; &egrave; ottimamente riassunto a 
<A HREF="http://www.linuxsa.org.au/tips/time.html">http://www.linuxsa.org.au/tips/time.html</A><H2>2.5 In definitiva</H2>

<P>Se non ti serve un'accuratezza a meno di un secondo, <CODE>hwclock(8)</CODE> e <CODE>adjtimex(8)</CODE> potrebbero essere tutto ci&ograve; che ti serve. &Egrave; facile essere tentati dagli orologi radio e simili, ma io ho usato il programma <CODE>clock(8)</CODE> per anni con eccellenti risultati. D'altro canto, se hai molte macchine su una LAN potrebbe risultare comodo far loro sincronizzare gli orologi automaticamente l'una con l'altra. E potrebbe essere divertente giocherellare con il resto della roba anche se non ne hai propriamente bisogno.
<P>Su macchine che utilizzano solo Linux, imposta l'RTC su UTC (o GMT). Su sistemi dual-boot che richiedono che nell'RTC ci sia il local time, sappi che se devi riavviare Linux dopo il cambio di orario stagionale, l'orologio potrebbe essere sfasato di un'ora, finch&eacute; non avrai la possibilit&agrave; di avviare l'altro OS. Se hai pi&ugrave; di due OS, assicurati che uno solo di essi operi l'impostazione dell'ora legale.
<H2><A NAME="s3">3. Software</A></H2>

<H2>3.1 Clock(8) e Hwclock(8)</H2>

<P>Tutte le distribuzioni Linux installano o il vecchio <CODE>clock(8)</CODE> o il pi&ugrave; recente <CODE>hwclock(8)</CODE>, ma senza un fattore di correzione. Altre potrebbero anche installare <CODE>adjtimex(8)</CODE>, 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&agrave; comunque <CODE>clock(8)</CODE> o <CODE>hwclock(8)</CODE> per l'uso negli script di avvio.
<P><CODE>Clock(8)</CODE> ti richiede di calcolare il fattore di correzione a mano, mentre <CODE>hwclock(8)</CODE> lo calcola automaticamente quandunque lo userai per resettare l'orologio (usare un altro programma per impostare l'orario interferir&agrave; con la correzione, perci&ograve; usa sempre lo stesso programma se stai utilizzando un fattore di correzione). Se hai un sistema pi&ugrave; datato che usa ancora <CODE>clock(8)</CODE> e vuoi aggiornarlo, puoi trovare <CODE>hwclock(8)</CODE> nel pacchetto &quot;<CODE>util-linux</CODE>&quot;, versione 2.7 o successiva. Consulta la pagina man per maggiori informazioni.
<P>
<DL>
<DT><B>Nota</B><DD><P>La pagina man di <CODE>hwclock(8)</CODE> pu&ograve; esser chiamata &quot;<CODE>clock</CODE>&quot; per compatibilit&agrave; all'indietro, perci&ograve; prova entrambi i nomi. <CODE>Hwclock(8)</CODE> risponder&agrave; ai comandi scritti per <CODE>clock(8)</CODE>, ma il risultato potrebbe non essere lo stesso-- in particolare,  &quot;<CODE>hwclock -a</CODE>&quot; non &egrave; proprio identico a &quot;<CODE>clock -a</CODE>&quot;, perci&ograve; se stai aggiornando a <CODE>hwclock</CODE> ti suggerirei di sostituire tutti i riferimenti a &quot;<CODE>clock</CODE>&quot; nei tuoi script di avvio in modo che usino i comandi propri di <CODE>hwclock</CODE>.
</DL>
<P>Gli script di avvio variano da una distribuzione all'altra, perci&ograve; potrai dover cercare un po' per trovare dove impostano l'orologio. Le posizioni tipiche sono <CODE>/etc/rc.local</CODE>, <CODE>/etc/rc.d/rc.sysinit</CODE>, <CODE>/etc/rc.d/boot</CODE>, o simili.
<P>Il fattore di correzione per l'RTC &egrave; archiviato in <CODE>/etc/adjtime</CODE>. RedHat ha uno script in <CODE>/etc/sysconfig/clock</CODE> che controlla le opzioni di <CODE>hwclock</CODE>.
<P>Quando stai regolando l'orologio per determinare il tasso di deviazione, tieni a mente che l'annuncio telefonico dell'orario locale pu&ograve; 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 (&egrave; una chiamata a pagamento a Boulder, Colorado). Il servizio ti sconnetter&agrave; 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&eacute; passa pi&ugrave; tempo tra l'annuncio ed il &quot;beep&quot;. Puoi anche ottenere l'orario da un server d'orario di rete usando il programma <CODE>ntpdate</CODE> fornito con <CODE>ntpd</CODE>, e c'&egrave; un orologio Java a 
<A HREF="www.time.gov">www.time.gov</A>.
<P>In ogni caso, quello che stai regolando &egrave; l'orologio di sistema, non l'RTC (vedi la pagina man del comando <CODE>date</CODE> per i formati da utilizzare). Usa poi <CODE>hwclock</CODE> 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 <CODE>adjtimex(8)</CODE> per impostare con precisione l'orologio di sistema.
<H2>3.2 Adjtimex(8)</H2>

<P><CODE>Adjtimex(8)</CODE> permette all'utente di regolare le variabili dell'orario del kernel, e cambiare cos&igrave; la velocit&agrave; dell'orologio di sistema (devi avere accesso come &quot;<B>root</B>&quot; al sistema per farlo). &Egrave; progettato in modo intelligente, affinch&eacute; compari l'orologio di sistema all'RTC usando lo stesso fattore di correzione utilizzato da <CODE>clock(8)</CODE> o <CODE>hwclock(8)</CODE>, come registrato in <CODE>/etc/adjtime</CODE>. Perci&ograve;, una volta che hai stabilito il tasso di deriva dell'RTC, &egrave; abbastanza semplice correggere anche l'orologio di sistema. Quando sarai riuscito a farlo funzionare alla giusta velocit&agrave;, potrai aggiungere una riga agli script d'avvio per regolare le variabili corrette del kernel al boot. Poich&eacute; <CODE>adjtimex(8)</CODE> &egrave; stato progettato per lavorare con <CODE>clock(8)</CODE> o <CODE>hwclock(8)</CODE>, include una soluzione per il bug dell'&quot;ogni 11 minuti&quot;.
<P>Dopo che hai installato <CODE>adjtimex(8)</CODE> puoi aver maggiori informazioni su come regolarlo digitando &quot;<CODE>man 8 adjtimex</CODE>&quot; (c'&egrave; anche una pagina man <CODE>adjtimex(2)</CODE>, ma non &egrave; ci&ograve; che serve) e leggendo il file <CODE>README</CODE> reperibile a <CODE>/usr/doc/adjtimex-1.3/README</CODE> (dove il numero di versione nel percorso sar&agrave; la versione corrente di <CODE>adjtimex(8)</CODE>).
<H2>3.3 Xntpd e ntpd: il Network Time Protocol</H2>

<P><CODE>Xntpd</CODE> (NTPv3) &egrave; stato sostituito da <CODE>ntpd</CODE> (NTPv4); la versione pi&ugrave; vecchia non viene pi&ugrave; mantenuta.
<P><CODE>Ntpd</CODE> &egrave; il programma standard per sicronizzare orologi in una rete, ed &egrave; corredato di una lista di server di orario pubblici a cui puoi connetterti. Pu&ograve; essere un po' pi&ugrave; 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.
<P>La &quot;casa base&quot; per le informazioni su <CODE>ntpd</CODE> &egrave; il sito web dell'NTP a 
<A HREF="http://www.eecis.udel.edu/~ntp/">http://www.eecis.udel.edu/~ntp/</A> che include pure collegamenti a tutti gli altri generi di cose riguardanti il tempo (compreso software per altri OS). Alcune distribuzioni Linux includono <CODE>ntpd</CODE> nei CD. C'&egrave; una lista di server d'orario pubblici su 
<A HREF="http://www.eecis.udel.edu/~mills/ntp/clock2.html">http://www.eecis.udel.edu/~mills/ntp/clock2.html</A>.
<P>Una caratteristica relativamente nuova in <CODE>ntpd</CODE> &egrave; un &quot;burst mode&quot;, progettato per macchine che hanno solo un accesso intermittente ad Internet.
<P><CODE>Ntpd</CODE> 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&ugrave; economiche (esaminate in successive sezioni). Nel passato la maggior parte erano ricevitori WWV o WWVB, ma ora quelli di tipo pi&ugrave; comune sembrano essere i GPS. NIST mantiene un file PDF sul proprio server che elenca i fabbricanti di orologi radio, a 
<A HREF="http://www.boulder.nist.gov/timefreq/links.htm">http://www.boulder.nist.gov/timefreq/links.htm</A> (vicino alla fine della pagina). Anche il sito web di NTP include molti collegamenti ai produttori di orologi radio, a 
<A HREF="http://www.eecis.udel.edu/~ntp/hardware.htm">http://www.eecis.udel.edu/~ntp/hardware.htm</A> e 
<A HREF="http://www.eecis.udel.edu/~mills/ntp/refclock.htm">http://www.eecis.udel.edu/~mills/ntp/refclock.htm</A>. Queste liste possono essere aggiornate come non esserlo <CODE>:-)</CODE>. La lista dei driver per <CODE>ntpd</CODE> &egrave; a 
<A HREF="http://www.eecis.udel.edu/~ntp/ntp_spool/html/refclock.htm">http://www.eecis.udel.edu/~ntp/ntp_spool/html/refclock.htm</A>.
<P><CODE>Ntpd</CODE> include anche driver per molti servizi di orario telefonici. Sono tutte chiamate a lunga distanza, perci&ograve; assicurati di calcolarne l'effetto sulla tua bolletta prima di usarli.
<H2>3.4 Chrony</H2>

<P><CODE>Xntpd</CODE> &egrave; 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&ograve; essere anche usato con macchine che vi sono connesse solo a tratti, ma Richard Curnow non &egrave; mai riuscito a farlo funzionare come voleva... perci&ograve; ha scritto &quot;<CODE>chrony</CODE>&quot;, perch&eacute; costituisse un'alternativa per quelli di noi che hanno accesso in rete solo quando sono collegati ad un provider (il &quot;burst mode&quot; di <CODE>ntpd</CODE> &egrave; stato progettato appunto per risolvere questo stesso problema). La versione corrente di <CODE>chrony</CODE> comprende la correzione della deriva per l'RTC, per macchine che rimangono spente per un lungo periodo di tempo.
<P>Puoi avere maggiori informazioni dal sito web di Richard Curnow a 
<A HREF="http://www.rrbcurnow.freeuk.com/chrony">http://www.rrbcurnow.freeuk.com/chrony</A> o 
<A HREF="http://go.to/chrony">http://go.to/chrony</A>. Ci sono anche due mailing list, una per annunci e una per le discussioni degli utenti. Per informazioni manda un'e-mail a <CODE>
<A HREF="mailto:chrony-users-subscribe@egroups.com">chrony-users-subscribe@egroups.com</A></CODE> o a <CODE>
<A HREF="mailto:chrony-announce-subscribe@egroups.com">chrony-announce-subscribe@egroups.com</A></CODE>.
<P>Il programma &egrave; distribuito solo come sorgente, ma la Debian ne ha incluso una distribuzione binaria nel suo archivio &quot;non stabile&quot;. Il file sorgente &egrave; disponibile anche negli archivi Linux usuali.
<H2>3.5 Clockspeed</H2>

<P>Un'altra possibilit&agrave; &egrave; il programma <CODE>clockspeed</CODE> di DJ Bernstein. Prende l'orario da un server e semplicemente reimposta l'orario di sistema ogni 3 secondi. Pu&ograve; anche essere usato per sincronizzare molte macchine su una LAN.
<P>Qualche volta ho avuto problemi a raggiungere il suo sito web su 
<A HREF="http://Cr.yp.to/clockspeed.html">http://Cr.yp.to/clockspeed.html</A>, perci&ograve; se ti da un errore DNS prova di nuovo un'altro giorno. Prover&ograve; ad aggiornare questa sezione se avr&ograve; informazioni migliori.
<H2><A NAME="s4">4. Radio Clocks</A></H2>

<H2>4.1 CHU ed il &quot;Gadget Box&quot;</H2>

<P>CHU, l'emittente d'orario ad onde corte situata presso Ottawa, &egrave; simile al WWV negli USA, ma con un'importante differenza: oltre ad annunciare l'ora sia in inglese che in francese, trasmette pure l'orario corrente una volta al minuto usando i vecchi toni da modem &quot;Bell 103&quot; (300 baud). Questi toni sono molto facili da decodificare, e Bill Rossi si &egrave; reso conto che non serve neppure un modem: tutto ci&ograve; che serve &egrave; una radio ad onde corte ed una scheda audio. Se puoi ricevere il segnale dal CHU, questo potrebbe risultare il pi&ugrave; economico orologio radio disponibile. La ricezione a onde corte varia nell'arco della giornata, ma Bill afferma che cambiando le frequenze due volte al giorno (mattino e sera) riesce ad ottenere una copertura per quasi tutte le 24 ore. CHU trasmette su 3.33, 7.335 e 14.670 MHz. CHU, l'emittente di segnale orario canadese ad onde corte vicino ad Ottawa, &egrave; simile.
<P>Per maggiori informazioni vedi il sito web di Bill Rossi a 
<A HREF="http://www.rossi.com/chu/">http://www.rossi.com/chu/</A>. Il file sorgente &egrave; disponibile anche presso i soliti archivi Linux. Per informazioni sui servizi d'orario della CHU vedi 
<A HREF="http://www.nrc.ca/inms/time/ctse.html">http://www.nrc.ca/inms/time/ctse.html</A>.
<P>Nel sito web di NTP c'&egrave; il progetto di un &quot;gadget box&quot; che decodifica il segnale orario CHU usando un economico chip di un modem da 300 baud e una qualsiasi radio ad onde corte, su 
<A HREF="http://www.eecis.udel.edu/~ntp/ntp_spool/html/gadget.htm">http://www.eecis.udel.edu/~ntp/ntp_spool/html/gadget.htm</A>. I piani comprendono l'immagine Postscript di un circuito stampato, a due facce, ma devi realizzartela da solo (o trovare qualcuno che lo faccia per te).
<P><CODE>Ntpd</CODE> include un driver (type 7) per i ricevitori CHU, che funziona sia con modem come il &quot;<CODE>gadget box</CODE>&quot;, sia immettendo il sonoro direttamente nella presa del microfono di una SPARCstation Sun (o qualsiasi altra macchina con &quot;driver audio compatibili&quot;).
<H2>4.2 WWV e l'&quot;orologio pi&ugrave; accurato&quot;</H2>

<P>Puoi aver sentito parlare del &quot;Most Accurate Clock&quot; (l'&quot;orologio pi&ugrave; accurato&quot;, appunto), della Heatkit, che riceveva e decodificava il segnale orario della WWV e aveva una porta seriale opzionale per essere connesso ad un computer. La Heatkit cess&ograve; di commercializzare questi kit molto tempo fa, ma continuarono a vendere la versione costruita in fabbrica fino al 1995, quando anche questa linea fu interrotta. Per i nostalgici dell'Heatkit (ma senza l'orologio), si veda 
<A HREF="http://www.heathkit-museum.com">http://www.heathkit-museum.com</A>. La compagnia esiste ancora, e vende materiale educativo. Vedi 
<A HREF="http://www.heathkit.com">http://www.heathkit.com</A>.
<P>Secondo Dave Mills, il brevetto della Heatkit sull'&quot;orologio pi&ugrave; accurato&quot; dovrebbe scadere presto, perci&ograve; forse qualcuno l&igrave; fuori potrebbe voler replicarlo sotto forma di un IC a chip unico.
<P>Il sito web dell'NTP ha un programma DSP (e un file PDF che lo descrive) disponibile a 
<A HREF="http://www.eecis.udel.edu/~mills/resource.htm">http://www.eecis.udel.edu/~mills/resource.htm</A> che decodifica il segnale orario del WWV utilizzando una radio ad onde corte e il TAPR/AMSAT DSP-93, un kit DSP che non &egrave; pi&ugrave; disponibile. Era basato sul chip DSP TMS320C25 della Texas Instruments. Il sito web del TAPR a 
<A HREF="http://www.tapr.org">http://www.tapr.org</A> contiene molte informazioni sulla programmazione DSP casalinga.
<P><CODE>Ntpd</CODE> include un driver (type 6) per i codici d'orario IRIG-B e IRIG-E, che utilizza il <CODE>/dev/audio</CODE> di Sun SPARCstation, ma una nota dice che &egrave; &quot;probabilmente portabile su altri sistemi&quot;. Il WWV usa il codice IRIG-H.
<P>Il WWV &egrave; gestito dal NIST, che ha un sito web a 
<A HREF="http://www.boulder.nist.gov/timefreq/index.html">http://www.boulder.nist.gov/timefreq/index.html</A>. Questo sito comprende il testo della &quot;Special Publication 432&quot;, che descrive i loro servizi di orario e frequenze, a 
<A HREF="http://www.boulder.nist.gov/timefreq/pubs/sp432/sp432.htm">http://www.boulder.nist.gov/timefreq/pubs/sp432/sp432.htm</A>. Il WWV trasmette sui 2.5, 5, 10, 15, e 20 Mhz.
<H2>4.3 GPS e l'&quot;orologio totalmente accurato&quot;</H2>

<P>Il segnale GPS include l'orario preciso, e alcuni ricevitori GPS hanno porte seriali. <CODE>Ntpd</CODE> comprende driver per molti ricevitori GPS. La caratteristica 1PPS (&quot;One Pulse Per Second&quot;, una pulsazione per secondo, richiesta per un'elevata accuratezza) di solito richiede un'interfaccia separata per connetterli al computer.
<P>TAPR (&quot;Tucson Amateur Packet Radio&quot;) fabbrica un kit per un'interfaccia chiamata &quot;TAC-2&quot; (sta per &quot;Totally Accurate Clock&quot;, orologio totalmente accurato) che si collega a una porta seriale e funziona con qualsiasi ricevitore GPS che possa fornire un uscita 1PPS-- compresi alcuni modelli &quot;bare board&quot; (&quot;solo scheda&quot;), che possono esser montati direttamente sulla scheda dei circuiti. Per maggiori informazioni, vedi il loro sito a 
<A HREF="http://www.tapr.org">http://www.tapr.org</A>. Il prezzo (a Giugno 1999) &egrave; attorno ai 140$, escluso il ricevitore GPS. Il kit non comprende alcun dispositivo di montaggio.
<P>Il &quot;gadget box&quot; del CHU (descritto in un'altra sezione) pu&ograve; essere anche usato come interfaccia per il segnale 1PPS. Il sito dell'NTP contiene una discussione su questo argomento a 
<A HREF="http://www.eecis.udel.edu/~ntp/ntp_spool/html/pps.htm">http://www.eecis.udel.edu/~ntp/ntp_spool/html/pps.htm</A>.
<H2>4.4 Segnali orari a bassa frequenza: DCF77, MSF(Rugby), WWVB</H2>

<P>Queste stazioni a bassa frequenza trasmettono un codice orario semplicemente accendendo o spegnendo la linea portante. Ogni stazione usa il proprio schema di codifica, le cui specifiche sono disponibili sul sito dell'NTP a 
<A HREF="http://www.eecis.udel.edu/~mills/ntp/index.htm">http://www.eecis.udel.edu/~mills/ntp/index.htm</A> (vicino alla fine della pagina). DCF77 in Germania trasmette sui 77.5kHz. MSF in Inghilterra (chiamata anche &quot;Rugby&quot;, il che si riferisce apparentemente alla sua locazione) e WWVB in Colorado trasmettono entrambe sui 60 kHz.
<P>La ricezione di WWVB varia, ma ci sono piani per aumentare il suo potere di trasmissione, in diversi passaggi. Puoi seguire il suo stato sul sito web di NIST a 
<A HREF="http://www.boulder.nist.gov/timefreq/wwvstatus.html">http://www.boulder.nist.gov/timefreq/wwvstatus.html</A>.
<P>Sembra che in Europa siano disponibili ricevitori economici che si possono collegare a una porta seriale. <CODE>Ntpd</CODE> include driver per un paio di ricevitori MSF.
<P>Parecchie compagnie negli USA vendono orologi relativamente economici (compresi molti orologi analogici da parete) che hanno dei ricevitori WWVB incorporati, ma sono al corrente solamente di due che possano esser collegati ad un computer:
<P>L'Ultralink Model 320, venduto per circa 120$ (a Giugno 1999), ha un'interfaccia seriale e un semplice set di comandi ASCII, perci&ograve; non dovrebbe essere troppo difficile da programmare. Trae 1mA dalla porta seriale per l'alimentazione. L'antenna pu&ograve; essere distante fino a 30 metri dal computer, e l'unit&agrave; contiene un suo orologio per tenere il tempo se perde il segnale. Vendono anche una versione &quot;bare board&quot; per circa 80$ che &egrave; progettata per funzionare coi microcontroller delle serie &quot;BASIC Stamp&quot;. Vedi 
<A HREF="http://www.ulio.com/timepr.html">http://www.ulio.com/timepr.html</A>.
<P>L'Arcron Technology vende un orologio da tavolo per circa 130$, comprendente il software per Windows. Vedi 
<A HREF="http://www.arctime.com">http://www.arctime.com</A>.
</BODY>
</HTML>