jueves, 17 de febrero de 2011

Intercambiar ficheros desde un Bq Avant a un K/Ubuntu y viceversa. Tftp por Wifi y acceso USB

ACTUALIZACIÓN: 18 de Febrero de 2011: He mejorado las explicaciones y reescrito cosas que me parecían algo confusas. Además he añadido un enlace a un servidor tftp para Ms Windows para los que usen ese sistema...

Hoy voy a explicar como pasar ficheros de un Bq Avant a un sistema, en este caso, K/Ubuntu 10.10 y viceversa, de un sistema a Bq Avant.

Pasar ficheros del sistema K/Ubuntu al Bq Avant

Esta parte es fácil. Conectáis el Bq Avant al ordenador por USB y copiáis lo que queráis en el modo almacenamiento. Como si fuera un libro. Al copiarlo se queda en la partición de almacenamiento del Bq Avant /dev/mmcblk0p2. Una vez copiado podemos acceder por telnet y mover los ficheros a cualquier otro lugar con permisos de lectura escritura, es decir, a otras particiones excepto la del sistema (/) que tiene permisos de solo lectura.

Para poder copiar ficheros a la partición del sistema debemos remontarla con permisos de lectura escritura y después copiar.

Por ejemplo:

Hacemos telnet al Bq Avant como hacíamos en el anterior artículo sobre Bq Avant y una vez dentro vamos al directorio de montaje de la partición 2 donde se almacena lo que copiamos por USB (libros, audios, imágenes) y creamos un fichero de prueba.

# cd /mnt/mmc0p2
# echo "Pruebas de montaje y copia" > prueba.txt

Ahora copiamos el fichero a /, la partición root del Bq Avant, o del sistema, donde se encuentran los ficheros de configuración (/etc), los ficheros de la aplicación del e-reader (/usr/local/qisda) etc. Si lo hiciéramos tal cual, daría error puesto que / es solo lectura, así que remontamos y después copiamos.

# mount -o remount,rw /
# cp prueba.txt /
# ls /
bin/        etc/        lib/        lost+found/ mnt/        proc/       pruebas/    root/       rwdata/     sys/        tmp/        var/
dev/        home/       linuxrc*    mars/       opt/        prueba.txt* qdutil/     rootfs      sbin/       sysfs/      usr/

Estos cambios permanecerán después de reiniciar el Bq Avant pero al reinstalar un firmware nuevo se pierden, obviamente. Al reiniciar el Bq Avant, el sistema / vuelve a ser solo lectura así que, si volvemos a entrar por telnet, para hacer modificaciones, habrá que remontarlo de nuevo.

Pasar Ficheros del Bq Avant al Sistema K/Ubuntu

Pues al revés podemos hacer lo mismo si estamos conectados por USB, pero, ¿qué pasa si no estamos conectados por USB y si por wifi? (se nos olvida el cable, o se rompe) Podemos aprovechar la conexión en red para pasar ficheros. Estuve buscando y solo encontré el comando tftp que es lo que usaremos, no se si habrá otros comandos pero yo no los he visto. Bq Avant no tiene ssh ni scp ni rsync ni ftp.

Para usar tftp, un cliente de protocolo de transferencia de ficheros (ftp) ligero (tftp), hemos de instalar en nuestro sistema K/Ubuntu un servidor tftp. En GNU\Linux lo tenemos en los repositorios. En otros sistemas tendréis que instalarlo. En Ms Windows podéis usar tftp32 que es software libre y, además, gratuito (que como sabéis no es lo mismo).

Instalar servidor tftpd-hpa en K/Ubuntu

Vamos a la consola de comandos (o herramientas gráficas de instalación como Synaptic o Kpackagekit) e instalamos el paquete tftpd-hpa. Yo lo haré todo por linea de comandos.

$ sudo apt-get install tftpd-hpa

Listo. Ahora vamos a cambiar un par de cosas para que se puedan crear archivos y directorios en el directorio de almacenamiento de tftpd-hpa que es, en K/Ubuntu, /var/lib/tftpboot. En este directorio es donde bajaréis o subiréis archivos.

Lo primero, cambiaré los permisos al directorio para que tenga lectura, escritura y ejecución de todos los archivos para todos los usuarios (la seguridad se puede mejorar pero para que sea más fácil lo dejo así). Los ficheros que subamos y bajemos mediante el cliente tftp tendrán de propietario el usuario tftp. Si copiamos, con otro usuario, archivos al directorio de tftpboot de forma directa, sin el cliente, estos ficheros tendrán permisos para el propietario, es decir, para el usuario con el que hemos copiado y no con tftp y podéis tener errores de permisos.

$ sudo chmod 777 /var/lib/tftpboot

Una vez cambiados los permisos, ahora editamos el fichero /etc/default/tftpd-hpa con vim y lo dejamos así

$ sudo vim /etc/default/tftpd-hpa

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
# Podemos cambiar este directorio para poner el que queramos
# yo uso el que tiene por defecto K/Ubuntu
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="192.168.3.100:69"
TFTP_OPTIONS="--create --secure"

He cambiado la dirección IP localhost por la IP de la tarjeta que usamos para conectar a nuestra red, en mi caso 192.168.3.100 (la del ordenador). El puerto 69 es el del servidor tftpd, así que deberemos abrir ese puerto en el firewall si lo tenemos activado. Yo no lo tengo activado. Además he añadido la opción --create para que se puedan crear ficheros y directorios en /var/lib/tftpboot y copiar desde el Bq Avant al servidor tftpd.

Una vez editado y guardado el fichero reiniciamos el servicio.

$ sudo service tftpd-hpa restart
tftpd-hpa start/running, process 5497

Yo no voy a hacer que se inicie con el sistema, solo cuando yo quiera, así que no lo incluiré en los runlevels con update-rc.

Para iniciarlo usaremos

$ sudo service tftpd-hpa start

Y para pararlo usaremos

$ sudo service tftpd-hpa stopt

Para ver el estado actual

$ sudo service tftpd-hpa status
tftpd-hpa start/running, process 5497

Vemos que nos dice que el servidor esta iniciado y ejecutándose con identificación de proceso 5497.

Bueno, el servidor ya está. Ahora vamos al Bq Avant.

Copiar ficheros por tftp y Wifi desde Bq Avant al sistema K/Ubuntu

Una vez configurado el servidor tftpd-hpa en Kubuntu, vamos al Bq Avant conectando por telnet y copiamos un fichero, el de prueba que creamos antes, usando el comando del cliente tftp.

[root@Samsung /]# tftp -p -l prueba.txt -r prueba.txt 192.168.3.100:69

La opción -p indica enviar el archivo al servidor (put), -l el archivo local, -r el archivo remoto y la IP del servidor y puerto.

Para comprobarlo, vamos al sistema K/Ubuntu y

fjbejarano@kub00:/var/lib/tftpboot$ ls -lah
total 124M
drwxrwxrwx  2 root nogroup 4,0K 2011-02-17 18:54 .
drwxr-xr-x 67 root root    4,0K 2011-02-15 18:01 ..
-rw-rw-rw-  1 tftp tftp      22 2011-02-17 18:54 prueba.txt
-rw-rw-rw-  1 tftp tftp    124M 2011-02-16 08:44 qdutils.tar

listo, ahí está. Ahora podemos compartir ficheros con el sistema GNU\Linux del Bq Avant por Wifi y por USB y moverlos entre todas las particiones de nuestro e-reader. Además, con el remontaje podemos cambiar configuraciones del sistema, lo que incluye la aplicación del e-reader.

Espero que os sea útil.
Related Posts with Thumbnails