Visualizzazione dei risultati da 1 a 10 su 431

Discussione: Pilloline per linux

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di pilovis
    Registrato dal
    Mar 2001
    Messaggi
    3,273

    Come ottenere la data e ora esatta su un server/pc/device embedded senza un collegamento ad internet

    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
    Ultima modifica di pilovis; 22-01-2017 a 19:59
    Progettista elettronico, appassionato di informatica dal 1982, sistemista Linux dal 2002, sono consulente tecnico del Giudice per le indagini preliminari, valuto richieste di consulenza, in ambito Voip/Telefonia anche con grado di sicurezza militare.

  2. #2
    Utente di HTML.it L'avatar di pilovis
    Registrato dal
    Mar 2001
    Messaggi
    3,273
    Quote Originariamente inviata da pilovis Visualizza il messaggio
    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
    Per il Raspberry occorre settare anche il timezone dato che sembra ci sia un bug sul comando dvbdate.

    quindi i due comandi da dare in sequenza sono:

    dvbdate --set --force
    date -s "1 hour"

    quindi uno script per aggiornare l'ora puo' essere questo:

    #!/bin/sh -e
    dvbdate --set --force
    date -s "1 hour"


    Se poi vogliamo invece lanciare il sintonizzatore giusto il tempo di catturare ora e data, ecco lo script:

    #!/bin/sh -e
    zap "Rai 2" & >/dev/null 2>&1
    /bin/sleep 2
    dvbdate --set --force
    date -s "1 hour"
    killall zap

    /bin/sleep 2
    Ultima modifica di pilovis; 22-01-2017 a 21:35
    Progettista elettronico, appassionato di informatica dal 1982, sistemista Linux dal 2002, sono consulente tecnico del Giudice per le indagini preliminari, valuto richieste di consulenza, in ambito Voip/Telefonia anche con grado di sicurezza militare.

  3. #3
    Utente di HTML.it L'avatar di pilovis
    Registrato dal
    Mar 2001
    Messaggi
    3,273
    Sempre per il mio orologio Linux digitale, senza collegamento ad internet, ho necessita' di stabilire la posizione indicativa in cui e' posizionato l'orologio, per calcolare le effemeridi (posizione del sole e della luna durante il giorno).

    Come fare?

    GPS? No, perche' troppo costoso e non funziona negli interni.
    GSM? Si, perche' le celle GSM a cui ci colleghiamo hanno una posizione definita e controllabile.

    Ecco uno script per leggere le infomazioni dal programma "gnokii" il parametro LAC e l'identificativo cella della BTS piu' vicina, dati dai quali possiamo estrapolare la posizione nel raggio di qualche chilometro al massimo (ottimo per i mie scopi).

    echo $(date) >> posizione-gsm.txt
    #gnokii -c /etc/gnokirc --getnetworkinfo | grep -e "LAC" -e "Ident. cella" | grep -oP '\(\K[^)]+' >> posizione-gsm.txt
    gnokii -c /etc/gnokirc --getnetworkinfo | grep -e "LAC" -e "Ident. cella" >> posizione-gsm.txt
    gnokii -c /etc/gnokirc gnokii --monitor once | grep "RF:" >> posizione-gsm.txt


    risultato:

    mar 24 gen 2017, 16.55.52, CET
    LAC : 3e9f (16031)
    Ident. cella : 00003197 (12695)
    Livello RF: 18
    mar 24 gen 2017, 16.55.54, CET
    LAC : 3e9f (16031)
    Ident. cella : 00003197 (12695)
    Livello RF: 18
    mar 24 gen 2017, 16.55.55, CET
    LAC : 3e9f (16031)
    Ident. cella : 00003197 (12695)
    Livello RF: 18
    mar 24 gen 2017, 20.01.27, CET
    LAC : 3ea2 (16034)
    Ident. cella : 0000b484 (46212)
    Livello RF: 99
    Progettista elettronico, appassionato di informatica dal 1982, sistemista Linux dal 2002, sono consulente tecnico del Giudice per le indagini preliminari, valuto richieste di consulenza, in ambito Voip/Telefonia anche con grado di sicurezza militare.

  4. #4
    Utente di HTML.it L'avatar di pilovis
    Registrato dal
    Mar 2001
    Messaggi
    3,273
    Per avere la lista in tempo reale degli utenti connessi in terminale ad un sistema *NIX e anche per vedere che comando stanno eseguendo:

    watch -n 1 "w"
    Progettista elettronico, appassionato di informatica dal 1982, sistemista Linux dal 2002, sono consulente tecnico del Giudice per le indagini preliminari, valuto richieste di consulenza, in ambito Voip/Telefonia anche con grado di sicurezza militare.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.