sábado, 8 de diciembre de 2012

Tutorial configurar CIFS Manager

En muchas ocasiones necesitamos tener carpetas compartidas en nuestra red local (Casa, trabajo, etc) y acceder a ella desde la red con otros PC, ¿Por qué no compartirlas con nuestro Android también? Muchos pensaran que con otros programas se puede hacer, ¡cierto!, pero tendremos que instalar un programa de un tercero en el ordenador y otro en Android, véase Dropbox, ya ni te cuento si quieres hacer streaming y si nos ponemos en modo Paranoico con los datos que tenemos guardados en servidores de terceros te entran hasta escalofríos, un ejemplo son las cláusulas de Dropbox donde dejan bien claro que ellos revisan nuestro contenido:
De-duplication – We’re always working to make Dropbox more efficient. For example, we may de-duplicate files, which means we store only one copy of files or pieces of files that are the same. This has been discussed for a long time in our forums, in interviews and in response to user emails, but we want to spell it out further for you and have added it to our privacy policy.
Lo que viene a decir que descifran nuestro contenido para ser revisarlo con el fin de que no haya dos copias de un mismo archivo, o sea que si tu tienes un archivo (Libro, vídeo, audio, etc) que es igual al de otro usuario solo se guardara una copia, o sea que los dos están usando el mismo archivo, éstas cosas bajo mi punto de vista me crea algo de desconfianza, por eso me he decantado por compartir carpetas con mi Android para mis cosas mas personales.


Todos los sistemas modernos traen un protocolo para compartir archivos cliente-servidor, en el caso de Microsoft usan SMB (Service Message Block) renombrado recientemente a CIFS (Common Internet File System), en GNU/Linux, Solaris y las versiones basadas en BSD como MacOS usan SAMBA (Salmonberry Samba Sawtimber Scramble, si os preguntáis de donde salio este nombre, es la búsqueda en un diccionario mediante el comando grep “s.*m.*b.*” /usr/dict/words).


¿Cómo se comparte un recurso en red?
Pues depende del Sistema Operativo que estemos usando, no voy a entran en esto ya que seria un post inacabable, pero seguro que con una rápida búsqueda en Google encontrareis la respuesta,

¿Cómo tener nuestro Android compatible con CIFS?
Pues algunos terminales con Android poseen el modulo CIFS y en los demás tenemos a nuestra disposición customs Kernels o Kernels modificados que traerán soporte para CIFS y en el caso de no tener podríamos descargar el modulo de Linux para nuestra versión del kernel compilarlo e instalarlo, pero por ahora solo me centraré en el custom kernel que es lo mas habitual.


¿Cómo instalar un gestor de CIFS en Android?
En el Market de Android hay varios, pero en este caso el escogido es CIFS Manager, por ser gratuito y simplicidad, como comente arriba que lo haríamos sin programas de terceros, se podría hacer sin la necesidad de este gestor de CIFS, pero esto no es un programa en si, es una interfaz gráfica para configurar los parámetros de CIFS sin necesidad de estar en una terminal en Android.


¿Cómo montar un recurso en Red para Android?
En teoría lo que haremos, es montar la carpeta en red en el terminal, para ser mas exacto las tendremos que montar en la SD o la SD Externa ya que serán las únicas que no tendremos que configurar permisos.



Vamos a empezar:


  • Abrimos el CIFS Manager -> Settings:

Mount point prefix: En este apartado pondremos la ruta donde queremos que se monte nuestro recurso ( ej: /mnt/sdcard/Medios)

Load cifs module: Para que cargue el modulo CIFS.

Load via insmod: Para que monte el modulo y decirle la ruta de donde esta.

Path to cifs.ko: La ruta del modulo. Depende del kernel o Terminal que utilicemos puede estar en la ruta /lib/modules/cifs.ko o /system/modules/lib/cifs.ko. Primero lo localizamos con una explorador de archivos, como el Root Manager y lo apuntamos para después introducirlo en el Path.
  • Una vez tengamos todo listo le damos a Add New Share:

Share Path: IP del PC que tenemos compartiendo la carpeta, más el nombre de la carpeta.

Moint Point - Punto de montaje donde vamos a alojar la carpeta compartida.

User Name - Nombre de usuario que esta compartiendo los recursos en el PC.

Password - Contraseña del usuario en el PC que esta compartiendo los recursos.

Options - Pondremos la codificación uft8 para que no tengamos problemas con los caracteres ( ñ, acentos, etc)


Montamos nuestro recurso, en este caso una carpeta compartida.


Le damos un click a la configuración y se montara:


 Ya solo nos quedara ir a nuestro gestor de Archivos favoritos y en la ruta /sdcard/Medios estará los archivos que tengamos compartidos en el PC.


Posibles Errores:

Al montar la Carpeta Compartida me sale un mensaje:

Mensaje: “Error al ejecutar exec () Comando:. [su]”
Respuesta: No tienes permisos de Superusuario o lo que es lo mismo no tienes el teléfono rooteado

Mensaje: “No such device”
Respuesta: El kernel no tiene el Modulo CIFS o no has introducido bien la ruta (Path) en la configuración de CIFS manager

Mensaje: “Mounting on failed: No such file or directory”
Respuesta: La ruta que estas usando para montar la carpeta compartida no puede crearla porque no tienes permisos suficientes ya que la creación automática del punto de montaje tiene que tener permisos 755 (El propietario lectura, escritura y ejecución, el grupo y otros pueden leer y ejecutar el archivo) por eso dijimos que la montaríamos en la sdcard o sdcard_external.

Comentar también que todo lo que compartamos en el PC no estará físicamente en nuestro terminal, por lo que al desmontar la carpeta en Android no tendremos copia de ninguno de los archivos, esta copia la tendremos que hacer a mano con algun gestor de archivos.