FasterJoomla

Joomla security and optimization

Visita il nuovo sito FasterJoomla che raccoglie i nostri articoli ed estensioni per Joomla!

Si parla di sicurezza, velocità, sviluppo di estensioni per Joomla.

Trovate pubblicate anche le nostre guide pratiche.

I media player Ellion 351H, 350H e affini (inclusi medley, EMTEC N200, Emtec S800, Emtec HMR-351H, O2Media HMR-351N, Markus 750, Medley 2+, Medley 3, O2Media) offrono funzionalità di televisione digitale, player multimediale, con possibilità di connettere dischi SATA, USB e via rete. Il programma DvdPlayer della Realtek (closed source) provvede al funzionamento delle unità.

Obiettivo: Estendere il funzionamento della Ellion permettendo:

  1. di emulare il telecomando via telnet o meglio via web
  2. di avviarla senza il menù amministrativo aperto (ovvero all'accensione visualizza l'ultimo canale DV visualizzato)
  3. di controllare l'unità via web: sostituendo il file browser con uno web-based con funzioni di ricerca.

1. Telecomando Web per il player Ellion HMR 351H e affini.

Questa parte riguarda una personalizzazione del Emtec N200 Web Remote Control, un telecomando via web, modificato per essere compatibile con il firmware della Ellion, e aggiungendo alcuni tasti non previsti.

Inoltre ho aggiunto una funzione "info" con i credits e con una funzione per testare l'invio di comandi (ancora manca il comando per il tasto NET e altri tasti, da qui si possono inviare i comandi).

Nella distribuzione è inclusa anche una sottocartella con alcuni script amministrativi che mi sono stati utili per capire come funziona DvdPlayer.

1.1 Distribuzione Ellion HMR 351H

il file /usr/local/bin/DvdPlayer comanda il funzionamento dell'unità.

Il programma stopall permette di fermare tutte le istanze del programma DvdPlayer.

Avviando DvdPlayer da console si possono inviare diversi comandi: riporto un elenco quasi completo preso dal post di nicorac su ziogeek:

 

 
-------------------------------------------------
a - audio button
b - takes you into the recording setup screen
c - delete schedule when in recording, otherwise doesn't appear to do anything
f - reverse play <<
j - reverse zoom (starts at max zoom and goes back to 1)
l - slow play reverse
m - mute on/off
n - skip to next title (not chapter)
o - Shut down quickly
p - skip to prior title (not chapter)
q - go back 10 SECONDS
r - start recording / switch to av
s - subtitle toggle
v - volume -
z - normal zoom

A - left
B - 30 Second Skip
C - Command Line interpreter, engineering mode, see below
D - right
E - Delete
F - Fast forward >>
G - Asks for GCode. Not sure what the GCode is. Tried a VCR+ code given the context,
but the code I tried only crashed the player.
H - report some kind of status
L - slow play forward
M - Menu
N - Next chapter
O - shut down normally
P - Prior chapter
Q - Stop
S - Play
T- AV input screen
V - volume +
W - up
X - down
Z - Step / pause

- - goto
= - repeat a/b
+ - repeat button

# - go to USB screen
$ - go to REC directory
& - graphical file copy, looks nice.
Much better than the cut/copy/paste concept you can do from the remote.
( - start performance logging
) - stop performance logging
~ - memory allocation status
0-9 - same as entering 0-9. Jumps to title. I did not know you could jump to a
specific title that way on this player, so something new.

[ - source button
] - go to ScreenPlay Pro root drive
{ - home button
, - return button
/ - go to setup menu
\ - switch tv system
: - switch tv system (not sure how it is different from \)
@ - DV (videocamera control)

ESC - Go to setup menu

In engineering mode, you can type HELP and get this:
(Switch to engineering mode with command C, see above )

Engineering Mode Command List:
port: read or write value to specified address
setdebug: set audio/video debug flag
setbri : set Video In Brightness value (00~ff)
setcont : set Video In Contrast value (00~ff)
setsatu : set Video In Saturation value (00~ff)
sethue : set Video In Hue value (00~ff)
setscal : set the coefficients of VIN Scaling (0x10
00~0xFFFF)
setcolorm
: set VO hardware's Color Adjustment transformation matrix
copyfree: enable copy-free
netperf : Enable network performance meter. Use on or o
ff to tern on/off this feature
netperf nodecode, means streaming only withou
t decode.
setyc: set YC separation parameters [6 parameters]
| save: save setting
| load: load setting
| default: use factory default setting
| show: show current setting
shell: Unix Shell to execute unix command
kill: kill the program immediately (to generate coredump)
quit: quit from command line interpreter
-------------------------------------------------

1.2 Telecomando IR

Questi comandi sono ben diversi dai codici inviati dal telecomando; la periferica che riceve i codici dal telecomando è /dev/venus_irrp e si può leggerla con

cat /dev/venus_irrp

oppure con un batch più completo:

#! /bin/sh
echo ""
echo "Remote Control Dump for Ellion HMR 350, 351H, plus N200, Medley etc"
echo " Below you can see all remote control codes as the keys are pressed"
echo " i.e. this is the sample output for the \"mute\" key:"
echo ""
echo " Processo:"
echo " 0000000 f708 a55a 000a "
echo " 0000005"
echo ""
echo ""
echo " You can use ./telecomando_chrhex.cgi to test parameters as you read them
echo " i.e."
echo ""
echo " ./telecomando_chrhex.cgi f7 08 a5 5a 00 0a \>\> /tmp/command_sender.
echo ""
echo " for the example above, muting the audio."
echo ""
echo "------------------- Remote control: hex dump --------------------"
irfile=/tmp/irfile
cat /dev/venus_irrp > $irfile &

bincode=nocode
while [ -f $irfile ]
do
bincode=$(tail -c 4 $irfile)

if [ -n "${bincode}" ]
then
if [ "${bincode}" != "${oldbincode}" ]
then
oldbincode=$bincode
echo Processo:
echo $bincode | hexdump
fi
fi
usleep 10
done
exit 0

Basta ora premere un tasto sul telecomando per vedere il codice inviato.

Output di esempio:

 

-----------------------------------------------------------------------------
Remote Control Dump for Ellion HMR 350, 351H, plus N200, Medley etc
Below you can see all remote control codes as the keys are pressed
i.e. this is the sample output for the "mute" key:
Processo:
0000000 f708 a55a 000a
0000005

You can use ./telecomando_chrhex.cgi to test parameters as you read them below:
i.e.
./telecomando_chrhex.cgi f7 08 a5 5a 00 0a \>\> /tmp/command_sender.txt
for the example above, muting the audio.
------------------- Remote control: hex dump --------------------

1.3 Il telecomando di adicon, esteso per la Ellion

Adicon ha scritto un telecomando per il modello N200, utilizzando lo STDIN di DvdPlayer.

Per farlo basta avviare DvdPlayer reindirizzando lo STDIN da un file arbitrario /tmp/command_sender.txt:

tail -f /tmp/command_sender.txt DvdPlayer


quindi sarà sufficiente inviare i comandi al file /tmp/command_sender.txt , per esempio:

echo "m" > /tmp/command_sender.txt 

per mettere in mute.

1.3.1 Avvio automatico

E' necessario modificare lo script di avvio della console perché ad ogni riavvio il programma DvdPlayer parta con l'input reindirizzato:

/usr/local/etc/rcS

Aggiungere il testo in rosso:

if [ -f $DEFAULT_AP_DIR/DvdPlayer ] && [ -x $DEFAULT_AP_DIR/DvdPlayer ]; then
cd $DEFAULT_AP_DIR
rm /tmp/command_sender.txt
touch /tmp/command_sender.txt

if [ -f $DEFAULT_AP_DIR/RootApp ] && [ -x $DEFAULT_AP_DIR/RootApp ]; then
echo Running dvdplayer with RootApp
tail -f /tmp/command_sender.txt | ./RootApp DvdPlayer -s RTC &
else
echo Running dvdplayer
tail -f /tmp/command_sender.txt | ./DvdPlayer -s RTC &
fi
else
/usr/local/etc/dvdplayer/script/run_tail
fi

1.3.2 Il telecomando

Ho modificato di poco lo script del telecomando per includere alcuni tasti che non sono presenti sul telecomando.

Purtroppo sia dalla lista sopra che dal telecomando della N200 manca il codice per LAN, che non sono riuscito a trovare; purtroppo i codici di scansione non seguono alcun ordine logico, usano i caratteri da 32 a 127 ma nessuno di questi mi ha dato la funzionalità LAN/NET.

Il dispositivo Ellion dispone di un server web il cui contenuto di fabbrica è sostanzialmente inutile; in queste condizioni si può installare nella root; altrimenti creare una cartella.

Io ho HDMediaServices installato per la gestione dei servizi SAMBA e FTP; diversamente dovrete modificare la installazione in /tmp_orig.

Per installarlo nella cartella /remote ecco i comandi:

(presuppongono che l'installazione d

Per installarlo, digitare:

cd /tmp
echo nameserver 208.67.222.222 > /etc/resolv.conf
wget http://www.tmg.it/files/remote/install.sh
chmod a+x install.sh
./install.sh

L'installazione effettua poi un reboot automaticamente.

Ad ogni avvio (/usr/local/etc/rcS) copia la cartella /tmp/hdd/volumes/HDD1/Applications/Web su /var/www

(L'installazione originale modificava /tmp_orig/ ma sulla ellion non si monta il filesystem di root facilmente in rw).

Ora è possibile accedere al telecomando dall'indirizzo http://ip_ellion/remote

 

2. Avvio automatico su TV

Non so per quale motivo la Ellion parta sempre con il menù amministrativo aperto.

Basta modificare nel file /usr/local/etc/rcS la stringa di avvio

DvdPlayer

e modificarla in

DvdPlayer -s RTC

3.Controllo completo da web

I limiti del telecomando sono la necessità di guardare il televisore per capire in che menù ci troviamo, e la carenza di funzionalità avanzate in particolare la ricerca.

Controllare l'unità via web: sostituendo il file browser con uno web-based con funzioni di ricerca sarebbe molto comodo... le pagine con gli indici possono essere rigenerate manualmente, e si può raffinare le funzioni di ricerca e visualizzazione a piacimento.

Purtroppo non ho trovato modo di inviare al DvdPlayer un nome di file da riprodurre; e quindi questa funzionalità naufraga sul nascere.

4.Cosa manca?

Scoprire il codice da inviare per emulare il tasto NET del telecomando.

Nota: E' possibile utilizzando il sistema di emulazione del telecomando conoscere il codice corrispondente al tasto NET usando la procedura indicata sopra al punto 1.2. dalla periferica /dev/venus_irrp ; tuttavia non è chiaro dove si possano inviare questi comandi, certo si potrebbe sostituire il /dev/venus_irrp con un programma apposito nel quale iniettare i codici corrispondenti a NET: ma vediamo prima se si trova il codice da usare con il sistema corrente (giusto per non complicarci eccessivamente la vita)

5. Risorse

Pagina originale del telecomando Web di adicon per la N200

http://adicon.lahost.org/2010/01/07/emtec-n200-web-remote-command/

HDMedia Services (controllo SAMBA FTP Torrent ecc.)

http://ziogeek.com/forum/sviluppo-software-open-source/hdmedia-services-installazione-win-mac-linux-vt1701.html

Telecomando IR sostitutivo per la Ellion:

http://www.hwupgrade.it/forum/showpost.php?p=30479663&postcount=340