Como actualmente está tan de moda la conexión vía redes móviles
3G/UMTS/CDMA o cómo se quieran llamar, me he hecho (gratis, que no se da un duro por estas cosas) con un adaptador USB
ZTE MF110, al que le coloco la
SIM del móvil del currelo (reitero mi tacañería respecto a esto de gastar en el móvil). Y, evidentemente quiero que funcione en linux.
El
ZTE MF110 es un dispositivo
HSUPA a la par que
HSDPA. La "u" y la "d" de cada acrónimo vienen a indicar que mejoran la velocidad de recepción o bajada (
Download) y/o la velocidad de transmisión o subida (
Upload). Como esta manera de hablar es bastante farragosa, toda la nomenclatura
cool y comercial, además de dar a entender una evolución (que es más bien escasa) de la tecnología
W/CDMA, de móviles
3G hemos pasao a
3.5G (HSDPA) y a
3.75G (HSUPA).
Y para hacerlo más farragoso, llegan los dispositivos USB que contienen un modem 3.xxG, pero además, contienen un emulador de CDROM para que nuestro operador de móviles nos ofrezca los
drivers (de win, claro) y su aplicación propia. Y para aprovechar más el dispositivo, suelen traer un lector de memoria MicroSD, para tener un dispositivo
todo-en-uno-superideal.
El problema viene cuando estos cacharros se pinchan en, por ejemplo (jem) Linux. Lo primero que hace Linux es reconocer un dispositivo USB mediante su fabricante y modelo (llamado, en
técnico vendor:id). Una vez pinchado el dispositivo, sólo tenemos que arrancar una consola y teclear, como
root o no (depende) el comando
lsusb y se obtiene una de estas líneas:
Ubuntu 10.4:
Bus 001 Device 005: ID 19d2:0083 ONDA Communication S.p.A.
Debian u otros menos "modernos": Bus 004 Device 071: ID 19d2:0083
Sea como sea, el
vendor:id es 19d2:0083 que corresponde, atención, al CDROM emulado con los drivers. En un sistema operativo modernillo y fácil, como Ubuntu 10.4, que estoy usando para probar este cacharro, se montará automáticamente el CD en Gnome, y a correr. En otros, proceder como corresponda, montándolo manualmente, usando algún asistente, etc, etc. El caso es que el comando
dmesg nos puede informar de que ha reconocido lo siguiente:
scsi 4:0:0:0: CD-ROM ZTE USB SCSI CD-ROM 2.31 PQ: 0 ANSI: 2
sr1: scsi-1 drive
sr 4:0:0:0: Attached scsi CD-ROM sr1
¿Y dónde está en maldito dispositivo modem de UMTS o lo que sea eso? Pues escondido. Al ser un dispositivo multimodo, hay que pasar de un modo a otro. Después de leer mucho por
algunos lugares, llego a la solución "absurda", que consiste en
extraer el CDROM virtual por software, es decir, no sacar el dispositivo de su sitio, sino "Expulsar" el CDROM virtual, por ejemplo, pinchando en el icono con el botón derecho del ratón y eligiendo "Expulsar", o tecleando en consola
eject /dev/sr1.
A continuación, tras esa complicada maniobra, el dispositivo pasa al modo "modem GSM + lector MicroSD", detectándose la cosa con los ya usados comandos
lsusb y dmesg:
lsusb: Bus 001 Device 006: ID 19d2:0124 ONDA Communication S.p.A.
dmesg:
option 1-2:1.0: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
option 1-2:1.1: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
option 1-2:1.2: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2
option 1-2:1.3: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB3
option 1-2:1.4: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB4
option 1-2:1.5: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB5
scsi5 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 6
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 5:0:0:0: Direct-Access ZTE MMC Storage 2.31 PQ: 0 ANSI: 2
sd 5:0:0:0: Attached scsi generic sg2 type 0
Así que resumiendo, nos detecta 6 puertos serie (ttyUSB0 a ttyUSB5) y un lector de tarjetas (sg2).
Una vez que tenemos esos puertos serie reconocidos, lo demás es coser y cantar, ya que los puertos serie se comportan como modems normales de toda la vida, con PPP, CHAP/PAP y todo eso (y al que no le suene,
uwdial o pppconf al canto).
Parece ser que se reconocen tantos puertos debido a la acumulación de funciones del modem UMTS, como conexión de datos 3G, SMS, GPRS, etc, etc. Lo que nos interesa siempre, al parecer, es que exista el primer puerto, ttyUSB0, que es el modem de alta velocidad. Los datos de conexión se pueden obtener de la conexión de Win, llamando al proveedor de telefonía móvil o, en el caso del
NetworkManager de Gnome del último Ubuntu 10.4, sencillamente, una vez reconocido el modem UMTS, creando una nueva
conexión de banda ancha móvil y sabiendo nuestro proveedor, lo hará todo por nosotros.
Lo he probado y funciona.