Originariamente inviata da
pilovis
Se bisogna ottenere la data e l'ora esatta, ma non si dispone di un collegamento ad internet, ad esempio nel mio caso si tratta di un orologio digitale Linux (fatto con un vecchio Raspberry) con audio che batte le ore e le mezz'ore (campana Big Ben), come fare?
Ecco la mia idea estemporanea, venutami dopo una notte insonne
Semplice, basta comperare un adattatore DVB-T USB da pochi euro e prendere la data da una delle emittenti TV che trasmettono nella nostra zona, come la RAI ad esempio, l'ora che trasmettono e' molto precisa.
Non serve un S.O. desktop, si fa tutto da riga di comando, per cui va bene anche per un server.
Quasi tutti i chiavini USB DVB-T di nuova generazione sono riconosciuti automaticamente dai sistemi Linux, eventualmente se cosi' non fosse, ci sono molte guide in rete, cercatene una per il vostro sistema linux e per il vostro modello, installate il firmware, collegate il chiavino e collegateci il suo antennino.
La verifica che il chiavino e' correttamente installato la fate con il comando
lsusb, il risultato e' qualcosa del genere:
Bus 001 Device 008: ID 15a4:9016 Afatech Technologies, Inc. AF9015 DVB-T USB2.0 stick
Poi occorre installare i seguenti pacchetti:
sudo apt-get install dvb-apps w-scan
Lanciare quindi il comando che ricerca le stazioni TV/RADIO che trasmettono nella nostra zona e li memorizza in un file:
w_scan -M -ft -c IT -E 0 -t 2 > /etc/channels.conf
ad operazione terminata, aprite il file appena creato "/etc/channels.conf" e verificate che ci sia almeno uno dei canali RAI, ad esempio Rai 2,
ecco la riga corrispondente nel mio file:
codice:
Rai 2 :482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_5_6:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:513:651+695+696:3402
A noi interessa il nome della stazione prima dei due punti ":", in questo caso
Rai 2
quindi diamo il seguente comando per sintonizzare il DVB-T su Rai 2:
zap "Rai 2" &
nota: e' opportuno inserire questo comando in "/etc/rc.local" dato che al riavvio il sintonizzatore perdera' la stazione.
quindi ogni qual volta ci servira' ottenere la data e ora esatta bastera' lanciare il comando:
dvbdate
esempio:
root@InetRadio:~# dvbdate
Sun Jan 22 16:54:53 2017
Quindi per settare l'ora del dispositivo con quella trasmessa dal canale TV, ecco il comando magico:
dvbdate --set --force