Conectarse a un movil GSM en Linux

Luego de un buen tiempo sin postear (el tiempo es un factor relevante en esto), he decidido inaugurar en este a~no (ok, uso el teclado en Ingles, y no tengo ‘ñ’, en lo adelante cuando vean ‘~n’, ya saben a lo que me refiero) con algo nuevo.

Para orientacion de los lectores, y leccion a usuarios de M$ Winblows que creen en Linux estamos desamparados, cuando a tecnologia se refiere; he escrito este post ;D

1. La magia de HAL (Hardware Abstraction Layer -Capa de Abstraccion de Hardware-)

Lo primero que debes saber es que es una ‘capa de abstraccion’.

Puesto en palabras simples, no es mas que una forma de esconder los detalles de implementacion de un conjunto dado de funcionalidades. Es decir, ocultar los detalles intimos acerca de como y por que funciona algo, y simplemente asegurarse de que funcione y darte acceso a dichas funcionalidades.

Entonces, HAL, es una capa de abstraccion entre el Hardware y el Software que corre en nuestro sistema. Este, se asegura de que las cosas funcionen, sin que tu tengas que saber por que, como y cuando (o intervenir en ello).

La funcion principal de HAL es proveer informacion al sistema operativo acerca del hardware conectado en nuestro sistema, independientemente del bus (ej. SATA, IDE, SCSI, PCI, PCIe, etc.) o el tipo de dispositivo (Camaras, Scanners, Printers, etc.)

Adicional a esto, HAL tambien mantiene metadata (meta, del griego μετά = mas alla, despues, :P , data = informacion) acerca de los dispositivos, la cual posibilita a los entornos graficos y otras aplicaciones, acceder a estos.

Nota: es demasiado lo que podriamos estudiar acerca de HAL, asi que por razones de brevedad, vamos a limitarnos (por ahora) a esto; en caso de que necesiten un estudio mas profundo acerca de HAL, saben donde encontrarme :)

2. UDEV , accediendo a los dispositivos.

Una vez que HAL ha provisto al Kernel de informacion acerca de un dispositivo conectado al sistema, entra en juego ‘UDEV’.

UDEV es el software encargado de proveer, en tiempo real, los accesos a dichos dispositivos en el directorio /dev. Este crea o remueve nodos a los dispositivos en el directorio /dev, y tambien es el encargado de renombrar las interfaces de red.

Por lo general udev corre como udevd, y recibe ‘uevents’ (notificaciones, eventos) directamente del Kernel si un dispositivo es agregado o quitado del sistema.

Conectarse a un Movil GSM

Habiamos visto que una vez que conectamos un dispositivo a nuestro sistema, HAL le da la informacion necesaria al Kernel, y este avisa a udev para que cree el nodo en /dev. Bien, esto tambien sucede al conectar nuestro telefono mobil a nuestro sistema.

En mi caso, estoy probando con un Sony Ericsson 550k, al conectarlo puedo ver que es reconocido como un ‘USB ACM device’ (Abtract Control Model).

Nota: En este articulo no voy, ni siquiera, a pasarle cerca a la explicacion acerca de que es ‘CDC ACM’ o ‘USB CDC’.

Para ver que informacion HAL le paso al Kernel, uso ‘demsg

# dmesg

Lo que me dice algo como esto:

usb 6-2: new full speed USB device using uhci_hcd and address 5
usb 6-2: configuration #3 chosen from 1 choice
cdc_acm 6-2:3.1: ttyACM0: USB ACM device
cdc_acm 6-2:3.3: ttyACM1: USB ACM device
usb0: register 'cdc_ether' at usb-0000:00:1d.0-2, CDC Ethernet Device, XX:80:XX:09:X3:XX

Veo que el dispositivo ha sido reconocido como una interfaz serial.

Ya que se con que nodo puedo conctarme al movil, (ttyACM0, ttyACM1) todo lo que tengo que hacer es utilizar el comando ‘cu‘ para conectarme, o utilizar la aplicacion ‘kandy’ que trae Slackware.

El comando ‘cu‘ se utiliza para llamar a otro sistema y actuar como un marcador de la terminal. También puede hacer transferencias de archivos simples, sin comprobación de errores.

Ya que el dispositivo movil se comporta como una interfaz de comunicaciones, por default udev creara el nodo en /dev como /dev/ttyACM0 o /dev/ttyACM1 con permisos de root:uucp (root , unix to unix copy). Para poder conectarte a el tienes que agregar el grupo ‘uucp’ como grupo adicional de tu usuario en el sistema:

# usermod -G uucp jespinal

Luego de hacer esto, tienes que salir del sistema y volver a entrar (para que tu usurio asuma los privilegios adicionales del grupo uucp, y puedas conectarte al movil utilizando ‘kandy’)

Una vez que hayas hecho esto, puedes configurar ‘kandy’ para que sue se conecte a tu movil, en mi caso utilizo el nodo /dev/ttyACM0. Con esto podras sincronizar tus contactos del movil con KDE Address Book, etc. (Cosas que realmente no utilizo para NADA, pero, es posible que alguno de mis lectores encuentre util :) )

Espero que esta informacion haya sido util a muchos usuarios de Linux que, posiblemente, se hayan encontrado con la duda en este sentido.

Hasta luego,

This entry was posted in General.

2 Responses to Conectarse a un movil GSM en Linux

  1. Pingback: Eslackware

Leave a Reply