Archivo por días: 12 octubre, 2009

FTP-ando

Actualizado; el enlace a los binarios estaba mal.Tras curiosear y probar, ya he conseguido meter un nuevo cliente de BitTorrent y un servidor de FTP en mi disco duro, aunque, por diversas razones (que comentaré en otra entrada), el código proviene de la página del MediaPlayer RTD1261, en lugar de haber sido compilado con la Gentoo que comentaba en entradas anteriores.

El nuevo servidor BitTorrent es cTorrent, junto con la interfaz web yodctcs. Respecto al servidor FTP, se trata de bftpd. Básicamente he retocado las configuraciones para que todo funcione sin tener que meter ficheros en carpetas del directorio raíz (por ejemplo, en /etc o en /lib). La razón es que, por defecto, toda esa parte (que está almacenada en la Flash) se monta en modo sólo-lectura; pero aunque pudiese escribir, sería bastante arriesgado (un error y tendré un caro pisapapeles), por lo que mi intención es hacer cualquier cambio únicamente en el disco duro, en donde se pueda recuperar todo simplemente ejecutando la opción de formateo desde el menú principal.

AVISO: a partir de aquí empiezo a tocar en el sistema operativo del disco duro multimedia, lo que significa que estas acciones sólo las deben realizar aquellos que sepan muy bien lo que hacen. Si alguien se carga su disco, será el único responsable.

Avisados estáis.

Lo primero es copiar el contenido del fichero con los binarios (este) en el disco duro multimedia, en concreto el fichero upgrade.tar. En él están todos los binarios y ficheros de configuración.

Una vez que lo tenemos (en /tmp/hdd/volumes/HDD1) entramos por telnet, lo movemos a /tmp/hdd/root y lo descomprimimos en esa carpeta con tar -xpvf upgrade.tar, de manera que se conserven los permisos de los ficheros. Dentro hay cuatro carpetas y un fichero script:

  • etc: contiene los ficheros de configuración del cliente BitTorrent y del servidor FTP
  • bftpd: contiene los binarios del servidor FTP
  • ctorrent: contiene los binarios del cliente BitTorrent cTorrent y de su interfaz web dctcs
  • lib: contiene las bibliotecas libgcc_s.so y libstdc++.so, necesarias para dctcs
  • btpd: reemplaza al script original.

El script btpd permite lanzar y parar todos los nuevos servicios de manera selectiva, relanzando aquellos procesos que queremos que estén lanzados si se caen, y matando los que no queremos si, por la razón que sea, se ejecutan (todo esto es posible porque el disco duro ejecuta regularmente este script, junto con el de samba, con el comando start). También monta, si se desea, la partición principal como EXT3. Por último, asigna a la variable de entorno LD_LIBRARY_PATH el valor /tmp/hdd/root/lib de manera que los programas lanzados desde él puedan utilizar las bibliotecas aunque éstas no se encuentren en los directorios por defecto (/lib, /usr/lib o /usr/local/lib). Es necesario editar este script (por ejemplo, con vi) para ajustar la configuración a nuestras necesidades. En concreto, si lo abrimos, vemos al principio lo siguiente:

# change here to set the services you want:
# 1: launch it
# 0: don't launch it

# main partition in EXT3 format
HD_EXT3=1

# old BitTorrent service
OLD_BT=0

# new BitTorrent service (cTorrent)
NEW_BT=1

# FTP server
FTP=1

Así, si queremos utilizar el cliente de BitTorrent original, tenemos que almacenar un 1 en OLD_BT. Si queremos utilizar el nuevo cliente BitTorrent, ponemos un 1 en NEW_BT. Si queremos activar el servidor FTP ponemos a 1 FTP. Y si hemos formateado en EXT3 la partición principal del disco duro, entonces tenemos que poner a 1 HD_EXT3 (si la tenemos en NTFS es imprescindible ponerla a 0). Una vez hecho esto, movemos dicho script a la carpeta script, reemplazando al viejo btpd. En el tar.bz2 incluyo la versión original, por si alguien se arrepiente.

Finalmente, lanzamos los nuevos programas mediante el comando ./btpd start y listo, ya tenemos acceso por FTP y un nuevo cliente BitTorrent.

Para acceder al cliente bittorrent hay que abrir con un navegador una conexión al puerto 8080 del disco duro multimedia. El usuario por defecto es admin, y la clave 123, pero se pueden cambiar editando el fichero /tmp/hdd/root/etc/dtcts.conf. Algunos cambios que hice en él con respecto al original de la página del otro disco duro fueron, por una parte, aumentar el buffer de recepción hasta 64Kbytes para conseguir la misma velocidad de transferencia (2,4MBytes/seg) que con SMB (con los 2Kbytes originales sólo se conseguían 200Kbytes/seg, diez veces más lento), así como eliminar toda la parte de registro (log) para no consumir disco duro inútilmente (quien quiera activarlo sólo tiene que echar un vistazo al fichero de configuración de demostración que viene en el paquete original de dtcts). Por último, cambié los nombres de las carpetas: en /tmp/hdd/volumes/HDD1/BT almacena los ficheros recibidos, igual que el viejo cliente BitTorrent, y en DOWNLOADS almacena los .torrent de los ficheros que se están descargando.

Respecto al servidor FTP, por defecto se puede entrar como anónimo, pero se puede cambiar la configuración en el fichero /tmp/hdd/root/etc/bftpd.conf.