Armando un servidor DLNA en el router ZTE F680 enchufándole un dispositivo de almacenamiento USB.
dispositivo de almacenamiento
alimentación del dispositivo USB
el router ZTE F680 no es capaz de alimentar por sí solo un disco duro externo conectado a su puerto USB: no ha podido alimentar un toshiba canvio basics de 2TB, ni un WD de 1TB. decía no detectarlos.
la solución, en este caso, consiste en conectar el disco duro externo al router mediante un cable USB en Y, esto es, un cable con una conexión adecuada para el disco duro en cuestión de un extremo (microUSB 3.0 o lo que fuere) y, del otro, dos salidas USB macho: una se encarga de la transmisión de datos y se conecta directamente al router; y la otra se ocupa del suministro de energía y se enchufa a un fuente de alimentación externa. un cargador con una salida (output) de 5V y 1A (o sea, 1000mA) suele valer.
NTFS como formato del dispositivo USB
la copia de archivos al dispositivo de almacenamiento USB de forma remota (esto es, transfiriendo archivos al dispositivo USB conectado al router desde un ordenador conectado a la misma red) se ha realizado con éxito cuando el formato del dispositivo era NTFS.
ha devuelto errores, sin embargo, cuando el formato dispositivo era ext4.
configuración del router ZTE F680
habitualmente, al router se accede mediante un navegador:
http://192.168.1.1/
tanto el usuario (administrador) como la clave, suelen ser «1234».
conexión del dispositivo USB al ZTE F680
después de conectar el dispositivo de almacenamiento USB al ZTE F680, se puede comprobar su estado (si se ha detectado o no) en Status > User Interface > USB
y, si el router lo ha reconocido correctamente, en Application > USB Storage
, se detallan el formato (file system), el tamaño del dispositivo (total size / free size) y el punto de montaje (path):
activación del servidor DLNA
la aplicación DLNA del router ZTE F680 se activa desde Application > DMS / DLNA
:
basta con activar la casilla Enable y darle un nombre al servidor DLNA del ZTE F680 en DMS Name.
activación del servicio FTP
la aplicación FTP del router ZTE F680 se activa desde Application > FTP Application
:
en este caso, hay que activar la casilla Enable FTP Server, proporcionar un nombre de usuario en FTP Username y una clave en FTP Password.
transmisión de archivos al dispositivo USB del ZTE F680
ftp
la tasa de transmisión de archivos vía FTP del ZTE F680 es bajísima:
Samba en port USB 2.0 Posterior
NTFS-> Lectura: 16,4 MB/s; Escriptura: 5,5 MB/s.
FTP en port USB 2.0 Posterior
NTFS-> Lectura: 1,5 MB/s; Escriptura: 1,5 MB/s.
La Web del Profe de Tecno, «DLNA a Port USB 2.0 Lateral» en Router ZTE ZXHN F680, 2018.
curlftpfs
el comando curlftpfs permite montar localmente un sistema de archivos remoto cuyo protocolo sea FTP:
man curlftpfs
mount a ftp host as a local directory
sudo apt install curlftpfs
luego, basta con preparar un directorio local y ejecutar curlftpfs:
mkdir ~/zte/
curlftpfs 192.168.1.1 ~/zte -o user=ernesto:contraseña
donde el usuario y la contraseña de user
se han declarado previamente en la activación del servicio FTP.
hecho esto, se tiene acceso al dispositivo de almacenamiento USB que está conectado al router ZTE F680 en ~/zte:
cp ~/audio/mp3/* ~/zte/usb1_1/
ls ~/zte/usb1_1/
01 los musicos.mp3 06 cancion de lluvia para armonio y dos voces.mp3
02 una guitarra.mp3 07 una guitarra.mp3
03 una guitarra.mp3 08 una guitarra.mp3
04 los musicos.mp3 09 unos violines.mp3
05 dos guitarras.mp3
lftp
man lftp
lftp is a file transfer program that allows sophisticated FTP, HTTP and other connections to other hosts. If site is specified then lftp will connect to that site otherwise a connection has to be established with the open command.
sudo apt install lftp
lftp
con el comando lftp en consola se invoca al programa en cuestión:
lftp :~> open 192.168.1.1
lftp 192.168.1.1:~> user ernesto
Clave:lftp ernesto@192.168.1.1:~> cd usb1_1
cd ok, dir actual=/usb1_1
sincronización de un directorio local con otro remoto
el comando mirror de lftp realiza una copia exacta de un directorio remoto (source) en uno local (target).
lftp ernesto@192.168.1.1:/usb1_1> mirror -Rcv --delete --scan-all-first --log=lftp.log ~/media/audio audio
Enviando archivo .mpd/mpd.conf’
Enviando archivo .mpd/mpd.db’
Enviando archivo.mpd/mpd.log’
Enviando archivo .mpd/mpd.pid’
Enviando archivo.mpd/mpd.sql’
Etcétera..
la orden del ejemplo, sin embargo, copia los contenidos del directorio local (~/media/audio) en el servidor remoto (audio):
-R
ó--reverse
procura que mirror suba archivos (de local a remoto) en lugar de descargarlos (de remoto a local).-c
continúa, si es posible, con el trabajo de mirror.-v
de verboso (verbose mode).--delete
ó-e
elimina los archivos del destino (target) que no están en el directorio de origen (source). antes de ejecutar mirror de este modo,--delete
, es aconsejable realizar una prueba con--dry-run
y comprobar los resultados.--scan-all-first
examina todos los directorios en primer lugar.--log=lftp.log
graba el registro de mirror en lftp.log (local).
bash para mirror
nano ~/bin/zte
#!/bin/bash
echo -e "## LFTP : MIRROR DE ZTEf680 ##"
O=("~/media/audio" "~/media/archivo/imagen" "~/media/archivo/roms" "~/media/video")
D=(audio imagen roms video)
echo -e "$(date)"
for (( i=0; i<=3; i++ ))
do
echo -e "# ${D[$i]} #"
lftp -e "
open 192.168.1.1
user usuario contraseña
cd usb1_1
mirror -Rcv --delete --scan-all-first ${O[$i]} ${D[$i]}
exit" >> ~/tmp/zte.log
done
echo -e "$(date)"
chmod +x ~/bin/zte
- estas líneas de código comienzan por declarar dos matrices de datos o arrays:
O
contiene los directorios de origen (source) yD
, los directorios de destino (target). ambas están relacionadas entre sí: los archivos de la primera ruta deO
se copian en la primera ruta deD
y así sucesivamente. - a continuación, se ejecuta un bucle (for) donde se va incrementando la variable
i
de 0 a 3 (esto es, un total de 4 vueltas, que es el número de objetos de las matricesO
yD
). - dentro del bucle se ejecuta
lftp -e
(que no-f
):- se abre (open) una conexión con el servidor.
- se introducen (user) el usuario y la contraseña.
- se cambia (cd) al directorio usb1_1.
- y se lanza la sincronización (mirror) del directorio de origen (local) con el directorio de destino (remoto).
- finalmente, se cierra (exit) la conexión.
- la respuesta de
lftp
se vuelca (>>
) a ~/tmp/zte.log.