Hola sí, mi nombre es Tincho y en el programa de hoy les voy a enseñar como se pueden transferir archivos desde el celular Nokia 6101 (aunque probablemente también sirva con cualquier otro que use un cable dku-5) en GNU/Linux con gammu.
Bueno originalmente yo usaba gMobileMedia, es un programa hecho en python y gtk que usa gammu, y no lo quiero desmerecer, hicieron un copado trabajo y anda bastante bien, pero al menos a mí me anda cuando se le canta el orto, no me lee la estructura de directorios, etc.
Antes de ir a las piñas estaría bueno mencionar que mi celular, en camino a cumplir sus 4 años, sólo es compatible en Windows con el Nokia PC Suite. EL CUAL APESTA PUTREFACTAMENTE.
Durante mucho tiempo intenté por todos los medios poder transferir archivos con alguna aplicación libre desde GNU/Linux sin éxito, evidentemente no estaba soportado aún. Un buen día (probablemente fue un día peronista) hace pocos meses me encuentro con que gmobilemedia ahora sí me leía el contenido de la memoria del bicho este y mi vida cambió para siempre, de hecho desde ese día me dejé crecer el pelo y me hice judío.
Pero ahora todo es paz, alegría y armonía, ya que cada tanto con gmobilemedia se lleva bien (no siempre, de ahí que haga este post), y por ahora el 100% de las veces anduvo genial gammu.
Gammu se usa desde la consola, y como soy un troll linuxero soberbio asesino de pollitos que vive del pasado, me gusta hacer las cosas "a la manera complicada" y consecuentemente de eso soy pedante y agresivo (¿? y bueno, esto de aplicar la pseudológica n3riana requiere un poco más de falacias decorando el texto para que realmente parezca que estoy diciendo algo serio).
Bien ahora dejamos de llorar y patalear porque un desconocido usa alt+f2; y nos dedicamos a abrir una consola de bash. Enchufamos el celular al cable y el cable al USB de la compu (normalmente no digo compu pero como hay tanto forro que cree que decir compu es de newbie aprovecho y los puteo a ellos también).
Tenemos que saber dónde está "representado" el dispositivo, asique nos fijamos con el comando:
# dmesg
[12885.041676] usbserial: USB Serial Driver core
[12885.082228] USB Serial support registered for pl2303
[12885.082275] pl2303 4-2:1.0: pl2303 converter detected
[12885.094297] usb 4-2: pl2303 converter now attached to ttyUSB0
[12885.094329] usbcore: registered new interface driver pl2303
[12885.094334] pl2303: Prolific PL2303 USB to serial adaptor driver
Como vemos, parece estar en /dev/ttyUSB0, también podemos comprobarlo si al ejecutar:
# ls -lrt /dev aparece entre las últimas líneas.
Ahora con eso podemos rellenar el archivito de configuración ~/.gammurc (léase /home/usuarioquevaausargammu/.gammurc) de tal forma que quede así:
[gammu]
synchronizetime = no
use_locking =
name =
connection = dku5
gammuloc =
logformat = nothing
port = /dev/ttyUSB0
En este punto
se puede usar tranquilamente gMobileMedia, toma la configuración de ese archivo si mal no recuerdo asique sólo con darle "Connect" nos aventuramos a que ande, o tal vez no. Por eso es que volvemos a la consola y ahora disponemos de la lista de comandos que salen al escribir
gammu --help filesystemIntuitivamente descubrimos que con
gammu getfilesystem tira un treeview de toooodo lo que hay adentro del celu, a partir de ahí sabemos dónde está realmente cada cosa.
Para empezar la
unidad se llama "d:", el directorio de la galería está en predefgallery, y adentro están las fotos en
predefphotos, los videos en
predefvideos, las grabaciones en
predefrecordings, etc. Probablemente vean esos nombres cuando hicieron el getfilesystem.
Ahora para ver el contenido de un directorio, podemos usar por ejemplo:
gammu getfolderlisting d:\\predefgallery\\predefphotosY ahí teniendo los nombres de las imágenes que queremos transferir, podemos hacerlo con:
gammu getfiles d:\\predefgallery\\predefphotos\\Imagen008.jpg d:\\predefgallery\\predefphotos\\Imagen004.jpg
La doble barra es para escapar la barra invertida, que aparentemente es la que usa gammu para manejar el sistema de archivos del celular. Se pueden pasar como parámetro uno o más archivos, y los descarga en el directorio en que lo estemos ejecutando con el nombre que tenían en el celular.
Como no hay una manera muy práctica de bajar todo un directorio me puse a improvisar este miniscript, que probablemente funcione joya (
aunque se tomará su tiempo, y bastante sin exagerar) SÓLO si los nombres de las fotos NO contienen espacios ni caracteres extraños que rompan la armonía ASCII (?), el código es:
for a in $(gammu getfolderlisting d:\\predefgallery\\predefphotos | cut -d ";" -f 1); do gammu getfiles "$a"; done
(originalmente a la salida del cut le ponía
| sed -e 's/[\/|\\]/\\\\/g' para que me devuelva el path en el formato con doble barra pero extrañamente con eso no funciona, y así como está sí)
Reemplacen predefphotos por el directorio que se quiera bajar y probablemente ande, voilà!
Es medio chancho y muy lento, pero bueno, es una sóla línea y es ultra práctico. Si a alguien le quedan ganas de decir que esta es "la manera complicada", supongo que son libres de descargar las fotos una por una desde gMobileMedia: yo no soy de esos que juzgan o se quejan de la distinta forma que tienen otros de las cosas porque no tiene sentido.
Esto fue: cómo bajar los archivos del celular Nokia (preferiblemente 6101) en Debian GNU/Linux aunque seguramente gammu es igual en otras distribuciones, espero que les haya gustado chau.