Programmazione Timer dvb-t da remoto HMR-600W
Questa è una discussione su Programmazione Timer dvb-t da remoto HMR-600W all'interno del forum Realtek RTD 1283/1073, nella categoria Processori e Hack Firmware; Con questo nuovo argomento ci proponiamo di creare una estensione del firmware C4xx/C5xx che permetta di programmare da remoto i ...
Programmazione Timer dvb-t da remoto HMR-600W
-
04-December-2009, 11:07 PM #1 Programmazione Timer dvb-t da remoto HMR-600W
Con questo nuovo argomento ci proponiamo di creare una estensione del firmware C4xx/C5xx che permetta di programmare da remoto i timer di registrazione dell'Hmr600, utilizzando l'interfaccia HTML.
Come descritto nei post seguenti che vi invito a leggere, il firmware C4xx utilizza due database in formato Sqlite per la gestione dei timers.
Il primo "schedule_record.db" contiene un archivio dei timers, mentre il secondo file "schedule_history.db" contiene la cronologia degli eventi schedulati.
Per poter aggiungere nuove registrazioni è necessario conoscere con esattezza il significato dei vari campi del database (schedule_record.db). Una volta scoperto, l'idea è quella di utilizzare un semplice script cgi (scritto in C) che prenda i dati da un form html, li verifichi e li inserisca nel database.
Per fare questo, dobbiamo collezionare e confrontare tra loro quanti più database possibili, quindi chiedo a chiunque abbia voglia di collaborare di postare un link ai propri file "schedule_record.db" e "schedule_history.db" ed agli appassionati di settimana enigmistica di analizzare i propri file e quelli degli altri in cerca delle soluzioni.
Di seguito sono riportati i nomi dei campi presenti in schedule_record.db: alcuni sono giÃ* chiari, altri sono ancora da comprendere bene.
ID, datestamp, date, date_year, date_month, date_day, start_hour, start_minute, length_hour, length_minute, source, channel, quality, target, SAP, timestamp_start, timestamp_offset, enable, lock, schedule_type, event_id, user_string
I file db possono essere aperti con un plugin di firefox (SQlite Manager) come scritto da Kalash oppure se lavorate sotto linux potete installarvi Sqliteman.
a questo link
http://download697.mediafire.com/3c2...iptionV1.0.txt
troverete sempre l'ultimo file con le descrizioni dei campi del database (aggiornato con i vostri contributi)
mentre a quest'altro
http://www.mediafire.com/NeoD
troverete tutte le versioni degli script cgi che svilupperemo.(Ultima release 1.6)
ChangeLog V 1.6
* Minor changes: modificato l'ordine delle tabelle visualizzate. Ora la cronologia delle registrazioni si trova in fondo alla pagina.
Grazie a chiunque vorrÃ* collaborare.
NeoD
Istruzioni per estrarre i db files dall'HMR
Codice:
Usando telnet da un computer remoto, effettuate il login
copiate poi i database dalla memoria dell'HMR all'Hard disk interno utilizzando il comando
cp /usr/local/etc/dvdplayer/sched* /var/hddmedia/
Chiudete telnet e prelevate i due files dall'hard disk interno usando Ftp,Samba o il collegamento diretto da USB
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Originariamente Scritto da
kaboom Ciao NeoD, portesti postare i corretti percorsi e files che hai trovato che potrebbero aiutare in un backup\restore dal passaggio da un firmware all'altro?
Stavo pensando ad una procedura da mettere sulla gestione, per automatizzare la cosa...
Se sono file
.db non dovrebbe essere così complicato fare delle query di modifica o sbaglio?
Ora si!
Ecco il path
/usr/local/etc/dvdplayer
ed ecco il contenuto
/usr/local/etc/dvdplayer # ls -l
-rw------- 1 root root 28672 Dec 4 22:37 Setup
-rw------- 1 root root 769 Dec 4 21:52 bookmark.db
-rwxrwxrwx 1 root root 48 Sep 1 02:20 dmem.bin
-rw-r--r-- 1 root root 37164 Dec 4 20:52 dtv_channel.txt
-rw-r--r-- 1 root root 2 Dec 4 21:47 isRTC
-rw-r--r-- 1 root root 3072 Dec 4 21:30 schedule_history.db
-rw-r--r-- 1 root root 4096 Dec 4 21:47 schedule_record.db
Se li apri con un hex editor ci trovi dentro cose interessanti.
Ora stavo guardando i db (quelli del nuovo fw). Sono mysql. Ho la copia anche di quelli vecchi ed erano tutta un'altra cosa (sembravano proprietari oppure ho fatto casino io).
Cmq meglio così.
Discussioni Simili:
-
05-December-2009, 11:29 PM #2 Re: Swap settings HMR-600W
Originariamente Scritto da
kaboom Se ci fosse qualcuno esperto di php (io dovrei studiarlo, lo farò comunque ma ci vuole tempo
) si potrebbe fare in modo di accedere da remoto e fare e disfare programmazioni,semplicemente usando il linguaggio php su un server apache (installabili entrambi con ipkg).
Forse non serve.
Ho avuto qualche ora per giocarci un poco ed al momento ho un eseguibile che funziona sotto HMR e che riesce a stampare il contenuto della tabella dei timer(al momento grezza, ma ci lavorerò su).
Dato che voglio impattare il meno possibile sul firmware originale ho compilato il sorgente utilizzando librerie statiche (ovviamente a discapito della dimensione, ma al momento non è un problema).
L'idea è quella di eseguirlo poi come script CGI (dovrebbe essere possibile farlo no?).
Se arrivo alla fine di questa storia la propongo nella sezione delle modifiche firmware.
Considerazione: dato che sono passati da un formato proprietario ad uno standard facilmente gestibile credo che tra non molto vedremo nel firmware ufficiale la possibilitÃ* di inserire timer da remoto..
vedremo
-
06-December-2009, 06:43 PM #3 Re: Swap settings HMR-600W
Originariamente Scritto da
NeoD Ho avuto qualche ora per giocarci un poco ed al momento ho un eseguibile che funziona sotto HMR e che riesce a stampare il contenuto della tabella dei timer(al momento grezza, ma ci lavorerò su).
Sono riuscito a creare un CGI che è in grado di visualizzare in chiaro lo stato corrente delle programmazioni. Purtroppo la dimensione è intorno agli 690k dato che ho dovuto inserire staticamente alcune librerie.
Può essere eseguito direttamente da telnet una volta copiato in qualunque directory, oppure può essere copiato all'interno del percorso
/var/www/cgi-bin/
e richiamato da interfaccia web tramite l'url:
http://<indirizzoIp dell'HMR600>/cgi-bin/scheduler.cgi
Per avere il servizio definitivamente attivo è necessario inserire il file direttamente all'interno del firmware
Funziona solo con il firmware 438 dato che il formato dei dati nelle precedenti versioni era diverso.
TO DO
- Come prossimo passo conto di inserire anche il log delle registrazioni (menù cronologia per intenderci) e poi successivamente tenterò l'inserimento di nuove programmazioni.
- Non ha invece senso (per il momento) visualizzare l'elenco canali. Questo perchè i nuovi database introdotti nella versione FW438 supportano giÃ* l'elenco dei canali, ma attualmente non sono ancora utilizzati.
Di seguito il link per scaricare il file scheduler.cgi Release 1.0
http://www.mediafire.com/NeoD
Ogni commento o critica sono bene accetti.
-
08-December-2009, 12:55 AM #4 Re: Swap settings HMR-600W
Originariamente Scritto da
NeoD TO DO
- Come prossimo passo conto di inserire anche il log delle registrazioni (menù cronologia per intenderci)e poi successivamente tenterò l'inserimento di nuove programmazioni.
Fatto
Di seguito il link per scaricare il file scheduler.cgi Release 1.1
Rispetto alla precedente versione, la 1.1 visualizza anche la cronologia delle registrazioni
http://www.mediafire.com/NeoD
Ogni commento o critica sono bene accetti.
-
23-January-2010, 02:43 PM #5 Re: Swap settings HMR-600W
Molto interessante questo nuovo sviluppo. Ho provato il tuo .cgi e funziona egregiamente. Complimenti. Non avevo seguito gli ultimi aggiornamenti, ricordavo di aver letto i primi post parecchio tempo fa ma non avevo avuto tempo di aggiornarmi, così stamattina ho provato ad aprire i file .db con sqlite (dato che è un tipo di mini database usato anche da firefox 3 per il bookmark). Poi ho visto che il formato era giÃ* stato scoperto. Bene. Esiste anche un plugin per firefox che si chiama SQlite Manager che permette di aprire i file di questo tipo.
Ma il .cgi da te compilato proviene da un sorgente che hai scritto ex novo o hai trovato sulla rete qualcosa di open source da cui partire?
Edit: se pensi possa esserti utile ho trovato 2 link che parlano del formato di un file identico a questo usato da un altro apparecchio. I due link sono questi: http://ms450.foroactivo.net/programacio ... ec-t95.htm
http://ms450.foroactivo.net/principal-p ... te-t23.htm
-
29-January-2010, 08:47 PM #6 Re: Swap settings HMR-600W
Originariamente Scritto da
Kalash Molto interessante questo nuovo sviluppo. Ho provato il tuo .cgi e funziona egregiamente. Complimenti. Non avevo seguito gli ultimi aggiornamenti, ricordavo di aver letto i primi post parecchio tempo fa ma non avevo avuto tempo di aggiornarmi, così stamattina ho provato ad aprire i file .db con sqlite (dato che è un tipo di mini database usato anche da firefox 3 per il bookmark). Poi ho visto che il formato era giÃ* stato scoperto. Bene. Esiste anche un plugin per firefox che si chiama SQlite Manager che permette di aprire i file di questo tipo.
Ma il .cgi da te compilato proviene da un sorgente che hai scritto ex novo o hai trovato sulla rete qualcosa di open source da cui partire?
Edit: se pensi possa esserti utile ho trovato 2 link che parlano del formato di un file identico a questo usato da un altro apparecchio. I due link sono questi:
http://ms450.foroactivo.net/programacio ... ec-t95.htm http://ms450.foroactivo.net/principal-p ... te-t23.htm Scusa, era un poco che non leggevo più questo argomento....
Allora si tratta di un sorgente ex novo (c banale banale con relative librerie compilate).
Da allora sono andato un poco avanti ma purtroppo ho avuto poco tempo.
Ho convertito l'output solo testo in un formato tabellare in html + un banalissimo foglio di stile. con la nuova versione, se la apri con firefox almeno è un poco più carina.
Per l'inserimento di per se è abbastanza facile ma avevo nei TODO quello di capire esattamente il discorso del tipo di programmazione (settimanale, giornaliera, ecc).
E poi sicuramente bisogna fare un minimo di controllo di coerenza sui dati inseriti (verificare che non ci siano sovrapposizioni).
Insomma inserire una programmazione errata significa minare la stabilitÃ* del sistema.
Mi sarebbe piaciuto fare un sistema completo di backup e restore dell'intera programmazione, ma ho avuto qualche difficoltÃ*:
Il backup è banale, basta che lo script invii il file, ma per il restore ho dei problemi perchè lo script teoricamente non dovrebbe girare con i privilegi di root ed... insomma, forse si può fare ma temo sia un poco pericoloso.
Ho pensato anche a delle workaround solution ma forse non ne vale la pena.
In ogni caso adesso guarderò con piacere i link che mi hai postato per vedere se riesco a reperire qualche informazione utile.
Per adesso
Aggiornamento:
Si, praticamente è dove sono arrivato io (anzi io ho capito qualcosa sul source che forse loro non hanno ancora capito).
Effettivamente ci sono alcuni campi che non ho ancora capito: nel dettaglio Datestamp e schedule_type: a volte sono numeri piccoli, altre volte molto grandi, altre ancora negativi ed al momento non riesco a trovare una relazione.
Se qualcuno ha qualche idea....
L'idea è quelle di confrontare tra loro diversi file e vedere se ne caviamo fuori qualcosa. Come hanno scritto gli spagnoli nei link postati sopra, un errore in questo file e si reinstalla il firmware.......
-
30-January-2010, 10:13 AM #7 Re: Swap settings HMR-600W
Al momento questo è quello che ho ottenuto (Grabbing della pagina html di uscita)
http://img20.imageshack.us/img20/713/esempiooutputtimer.jpg
Sicuramente di può fare di meglio: non sono così esperto di html.
-
31-January-2010, 12:31 AM #8 Re: Swap settings HMR-600W
Scusa anch'io era un po' che non leggevo. L'estetica nuova che hai messo mi sembra carina. Secondo me va bene. Alla fin fine penso il segreto per una buona interfaccia utente sia semplicitÃ* e facilitÃ* d'uso. Il resto sono fronzoli che in una fase iniziale si possono anche evitare.
Ho notato anche io i numeri negativi e sono anche molto grandi. La prima cosa cosa che mi è venuta in mente così su due piedi (conoscendo C e C++) è che i programmi che visualizzano il file DB usino una variabile numerica di tipo "signed" per visualizzare il valore e che invece il programma originale "C" del player carichi il valore considerandolo "unsigned".
Se fosse così il numero che appare come negativo potrebbe essere in realtÃ* tutto un altro numero.
Magari fai un paio di prove, carica il datestamp come un "unsigned int" o al limite anche come "unsigned short" e stampane il valore a video e vedi cosa esce fuori, vedi se per caso la rappresentazione non-negativa del numero assume una qualche forma ad occhio comprensibile.
-
31-January-2010, 06:40 PM #9 Re: Swap settings HMR-600W
Originariamente Scritto da
Kalash Scusa anch'io era un po' che non leggevo. L'estetica nuova che hai messo mi sembra carina. Secondo me va bene. Alla fin fine penso il segreto per una buona interfaccia utente sia semplicitÃ* e facilitÃ* d'uso. Il resto sono fronzoli che in una fase iniziale si possono anche evitare.
Ho notato anche io i numeri negativi e sono anche molto grandi. La prima cosa cosa che mi è venuta in mente così su due piedi (conoscendo C e C++) è che i programmi che visualizzano il file DB usino una variabile numerica di tipo "signed" per visualizzare il valore e che invece il programma originale "C" del player carichi il valore considerandolo "unsigned".
Se fosse così il numero che appare come negativo potrebbe essere in realtÃ* tutto un altro numero.
Magari fai un paio di prove, carica il datestamp come un "unsigned int" o al limite anche come "unsigned short" e stampane il valore a video e vedi cosa esce fuori, vedi se per caso la rappresentazione non-negativa del numero assume una qualche forma ad occhio comprensibile.
Allora, ci ho lavorato su, ma per ora ho un campione troppo piccolo per capire qualcosa.
Per essere sicuro mi sono anche debuggato il formato db dei vari messaggi.
Allora per questo dato (datestamp) vengono utilizzati fino a 4 byte. Ho notato che quando datestamp "esplode", sembra "esplodere" anche lo schedule_type, quindi forse sono collegati.
Concordo con te che il segno meno non ha alcun significato.Ho provato anche a studiare un diverso impacchettamento dei bit o a cambiarne l'ordine (msb,lsb).
Magari potrebbe essere legato alla data/ora in cui è stata effettuata la programmazione.....
Infine come stringa ascii ha poco significato.
----
Proporrei quindi (se qualcuno ha voglia di collaborare) di scambiarci o raccogliere i dati relativi a schedule_record.db e schedule_history.db.
Prima di tutto però chiederei gentilmente consiglio a Galerio su come possiamo fare questa cosa (link a mediafire raccolti in un unico post?).
Anche perchè qui sto cominciando a diventare off topic.
Sempre che.. ci sia qualcuno interessato ad approfondire l'argomento.
-
31-January-2010, 08:59 PM #10 Re: Swap settings HMR-600W
E' vero non mi ero accorto che eravamo completamente off-topic
Forse sarebbe utile spezzare il post in due e creare un nuovo argomento con la seconda parte. Io penso che la programmazione da remoto sia molto interessante e possa far gola a più di qualcuno di noi.
Io sono disponibile a contribuire con i miei db (ed eventuali scoperte) alla ricerca.
Tag per Questa Discussione
Permessi di Scrittura
- Tu non puoi inviare nuove discussioni
- Tu non puoi inviare risposte
- Tu non puoi inviare allegati
- Tu non puoi modificare i tuoi messaggi
-
Regole del Forum