Mi N70 y Ubuntu, la senda del OBEX...

Editado 25.12.2009: Ahora, gracias a ciertos bugs corregidos en Ubuntu 9.10, es posible hacer esto de forma mucho más sencilla con ObexFS. Si te interesa, puedes pasarte por Nseries, Ubuntu 9.10, y obexFS vía USB.

Sujerente título, ¿eh? Jajaja, bueno, mejor me explico:
Tengo un N70 (no haré propaganda diciendo que uso YOIGO... ¡outch!) y viene el problema de siempre a la hora de pasar programas/música/fotos/droga del entre el PC y el móvil/mp4/dispositivo raro... bueno, alomejor droga no... Vamos, que los drivers/programas/chapuzas que incluyen estos "artilugios" olvida tristemente que hay gente que es libre, por lo que, una vez más la comunidad linuxera ha tenido que buscarse la vida por su cuenta... la solución es la implementación OpenOBEX (OBEX es un protocolo de intercomunicación por Bluetooth, USB, etcétera que usan muchos dispositivos móviles, info aquí,), oséase, toca instalar los paquetes de esta maravilla... por consola:
sudo apt-get install obexftp
Bueno... obexftp también puede instalarse por synaptic por supuesto... sea como sea, instalar esto implicará instalar el resto de paquetes de los que depende.

Ahora dispondremos de una gran aplicación para intercomunicarnos con nuestro dispositivo móvil por la bella línea de comandos...

Bueno, ya sé que siempre es mejor tener una interfaz gráfica, de modo que tendremos que instalar OpenObex-Frontend de aquí (bajaos el .deb) y lo instaláis.

EDITADO EL 31/08/2008: Debéis tener en cuenta de que es una aplicación en java, es decir, deberéis tener instalado el java de Sun Microsystems y no el de GNU, para que funcione correctamente. Para ver y elegir cuáles tenéis instalado ejecutad sudo update-alternatives --config java (gracias al visitante anónimo que lo avisó). Y por cierto, la versión a día de hoy es la 0.6.6, pero la interfaz sigue siendo casi igual, por lo que no veo necesario actualizar las capturas.

NOTA: Es probable que para poder usar ciertas interfaces OBEX con este programa, deba ser iniciado como root (ejecutando sudo obexftp-frontend).

Este frontend no permite (a día de hoy) ver las interfaces disponibles, de modo que deberemos especificarlas en su configuración (menú options, configuration)...

*1 - Aquí va el tipo de interfaz: Bluetooth, Intranet, infrarrojos, USB, o puerto serie.

*2 - Aquí va el canal de la conexión.
Comprendo que el tipo de interfaz será fácil de elegir, no así con el canal de la conexión. Para ver los canales disponibles (y elegir el adecuado) tendremos que ejecutar uno de los siguientes comandos (sí, para esto hace falta la consola):
Es probable que tengas que ejecutar alguno de estos comandos como root, usando: sudo COMANDO
Para Bluetooth: obexftp -b DISPOSITIVO
Para Intranet: obexftp -n IP
Para infrarrojos: obexftp -i
Para USB: obexftp -u
Para puerto serie: obexftp -t DISPOSITIVO
En mi caso (mi super N70 chupiguachi), por USB me devuelve lo siguiente:
Interface 0:
Manufacturer: Nokia
Product: Nokia N70
Interface description: SYNCML-SYNC
Interface 1:
Manufacturer: Nokia
Product: Nokia N70
Interface description: PC Suite Services
Según he leído por ahí, la interfaz 0 es (al menos en mi caso) para sincronizar lista de contactos y demás (puedo usar otra aplicación llamada wammu), y la interfaz 1 es para transferir archivos (lo que necesitaba), por lo que lo pongo en las opciones del frontend (en el *2 de antes).

Ahora solo hay que hacer que actualice la lista de directorios (pulsando F5 o yendo al menú device y Query root files)...
Ya puedo transferir lo que quiera (incluso aplicaciones .sis o .jar, para instalar en el móvil) usando el botón de upload (la flecha verde para arriba) o download (la flecha para abajo), o incluso puedo hacerlo arrastrando los archivos al directorio (Drag'N'Drop) adecuado. Pero ten cuidado con esto último, intenta tener puntería arrastrándolo al directorio adecuado, de lo contrario la aplicación aparecerá en otro o en la carpeta por defecto del móvil.

Espero que me haya quedado lo más sencillo y explicativo posible, si tenéis dudas ya sabéis.

PD. Hay otra interfaz gráfica, obex-tool, que detecta automáticamente las interfaces (por lo que no hay que ver cuales son las disponibles por consola), sin embargo tiene muchos bugs, es fea y lenta, por lo que no la recomiendo para nada.

PD2. El protocolo OBEX es usado por...
  • Sony Ericsons usando USB, pero sólo si seleccionas modo móvil (phone mode) en la pantalla de conexión USB del móvil.
  • La mayoría de teléfonos con Symbian.
(Sacado de la wiki de OpenOBEX)

11 comentarios:

  1. ah que bueno que hiciste este post... acabo de hacerme del mismo modelo de cel que tu tienes y estaba dudando si iba a poder transferir archivos o aplicaciones...

    saludos

    ResponderEliminar
  2. solo una cosa, para iniciar el OBEX en modo root el comando es:

    sudo obexftp-frontend

    saludos

    ResponderEliminar
  3. @vududevil gracias por pillar el gazapo (cosas de ediciones de madrugada jaja)

    ResponderEliminar
  4. Buena info... no obstante toi buscando algun programa que me saque los sms del movil y los contactos, para los contactos utilizo el kmobiletools, no obstante no logro ver los sms.. alguna sugerencia? gracias a todos.

    ResponderEliminar
  5. Hola, yo esto lo hacía con el obex-tool, pero este programa parece que va mejor, al menos en las fotos, ya que cuando lo quiero ejecutar me tira el siguiente error...
    juanch0@ubuntu-laptop:~$ sudo obexftp-frontend
    Exception in thread "main" java.lang.UnsupportedClassVersionError: net/sourceforge/obexftpfrontend/Main (Unsupported major.minor version 50.0)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    Cualquier ayudita se agradece...un saludo.

    ResponderEliminar
  6. haaaa.....lo solucioné...era mi versión de java..... se pueden tener varias versiones instaladas de java pero hay que decirle al sistema que máquina usar.... y eso se hace con un comando.... sudo update-alternatives --config java ..... y listo, eligen cual quieren usar, un saludo

    ResponderEliminar
  7. hola, yo soy el anónimo. jeje, es un poco viejo, pero bueno, solo decir que con la versión nueva, la 0.6, cuando nos queremos conectar por bluetooth hay que poner address y channel.. en plan 00:01:02:03:04:05 ,11 ese 11 es mi channel....así con el espacio, la coma y luego el channel... para saber el channel en terminal: obexftp -b -l adress ... el adress bien lo sacas con: obexftp -b (-b será de bluetooth...jeje), un saludo y suerte.

    ResponderEliminar
  8. Hola, ya instale todo lo que dices en tu blog, tengo un N70 tambien, en el paso 2 me sale lo mismo que a ti. pongo ok y cuando presiono F5 sale un letrero que dice:
    " Command Listing files under/folder has failed. Try again?"

    Que sugieres????

    ResponderEliminar
  9. "Command Listing files under/folder has failed. Try again?"
    Es un bug de obexftp, prueba a instalar una versión anterior o más reciente.

    ResponderEliminar
  10. Hola!

    Ya supe como hacerle para no tener que iniciar obexftp-frontend como root y evitar el cambio de privilegios en los archivos que transferimos a la computadora
    ver postSaludos!

    ResponderEliminar