GNU/Linux y la banda ancha móvil
Recientemente ha caído en mis manos un juguetito muy chulo: un kit de conexión a banda ancha móvil... me he pasado unas cuantas horas pegándome con un sinfín de recetas y módulos hasta conseguir la dichosa conexión... que va freshhquísima... aquí viene un resumen de mis periplos...
Ingredientes
El kit con el que me he pegado es el Vodafone HSPDA, con él nos podemos conectar indistintamente a redes GPRS o UMTS según la calidad de la cobertura que tengamos en nuestra zona y tal. El kit viene con los siguientes elementos:- Tarjeta SIM de 64k
- Manuales completamente inútiles
- Unos cablecitos USB muy monos
- Un módem 3.5G HUAWEI mod.E220 (muy bonico)
- Debian (no podía ser de otro modo)
- Linux 2.6.18-1
La tarjeta SIM
Aquí sucede lo siguiente: podemos usar la SIM con su PIN o sin él, se supone que ponemos el PIN para que en caso de pérdida nadie lo use y tal, pero el PIN tendremos que almacenarlo en un archivo de texto plano a la hora de conectar con lo que la seguridad del PIN no servirá de mucho. Yo lo tengo desactivado, para desactivarlo podemos usar comandos AT del módem y tal... o podemos pinchar la SIM en un móvil y desactivarlo ahí :-). De todas formas explicaré más adelante como se supone que se debe hacer si tenemos PIN activo.El módem
Pues nada, cogemos el cable más corto (he leído que con otros cables puede no funcionar) y conectamos el módem... esperamos unos segundos a que el linux lo detecte y taaachán! tenemos detectado un.... ¿¿¡¡Unidad CD-ROM externa!!?? vaaaya... lo montamos y... ¡los drivers y kits de conexión para Hassefroch XP! que bien... lástima que no podamos borrarlo y usarlo de pen-drive en fins... ignoramos esto y desmontamos la unidad, etc. y hacemos lo siguiente:T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 5 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=12d1 ProdID=1003 Rev= 0.00 S: Manufacturer=HUAWEI Technologies S: Product=HUAWEI Mobile C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage E: Ad=83(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0msY ahí tenemos el Vendor y ProdID que buscábamos :-). Ahora debemos crear los dispositivos con los que manejar el módem (si no se ha hecho automáticamente):
Configurar la conexión
Bueno, ahora debemos instalar los siguientes programas:usbserial_generic 2-1:1.0: generic converter detected usb 2-1: generic converter now attached to ttyUSB0 usbserial_generic 2-1:1.1: generic converter detected usb 2-1: generic converter now attached to ttyUSB1Si aparece, gnome-ppp ya debería detectar un módem, en caso contrario... buscad por los enlaces porque hay algo que está fallando... Ahora configuramos el marcado, esto lo hacemos en /etc/wvdial.conf, y lo dejamos como sigue:
# wvdial for Vodacom Data. Created by Tazz_tux # and adapted by Int-0 for http://crysol.org # Version 1.0 # Change Log: # # Support only for Vodafone Mobile [Dialer Defaults] # Con este numero me funciona a mi: Phone = *99***1# # Este numero es el que se marca desde hassefroch XP # si no os funciona con el anterior, probad este. #Phone = *99# Username = vodafone Password = vodafone Stupid Mode = 1 Dial Command = ATDT # Si vuestra tarjeta tiene PIN, lo poneis aqui [Dialer pin] Init1 = AT+CPIN=1234 [Dialer vodafone] Modem = /dev/ttyUSB0 Baud = 460800 Init2 = ATZ Init3 = ATE0V1&D2&C1S0=0+IFC=2,2 ISDN = 0 Modem Type = Analog Modem [Dialer internet] # APN al que nos conectamos Init5 = AT+CGDCONT=1,"IP","ac.vodafone.es";Ya tenemos el archivo listo, si el módem funcionaba sólo nos queda ejecutar:
Apéndice A: Comandos del módem útiles
Si configuráis minicom para que use la puerta serie /dev/ttyUSB0 podemos "hablar" con el módem y mandar comandillos, estos son unos cuantos útiles que he encontrado por ahí (ni que decir tiene que podéis usarlos en el archivo de configuración de wvdial). Ahora pondré un ejemplo de chat con el módem, en cursiva están las respuestas que debemos obtener y en negrita los comandos:ATZ OK ATI Manufacturer: huawei Model: E220 Revision: 11.110.01.03.00 IMEI: 351827011164648 +GCAP: +CGSM,+DS,+ES OK AT+COPS? +COPS: 0,0,"vodafone ES D",2 OK at+cpin=xxxx OK at+csq +CSQ: 22,99 OKEl comando AT+COPS? nos da información sobre la red en la que nos encontramos. Con at+csq obtenemos la calidad de la cobertura, cuanto mayor sea el número, mejor. El primer número (22 en el ejemplo) debe ser mayor de 12 para tener una señal aceptable. Los comandos para el manejo del PIN son: at+clck="sc",0,"1234" (donde "1234" es el PIN actual), con esto deshabilitamos el PIN. Con at+clck="sc",1,"1234" lo volvemos a habilitar. Si queréis saber más comandos: Comandos AT Hayes en wikipedia.
Apéndice B: Configurar modprobe
Como es un rollo todo eso del vendorId y tal podemos hacer más simple la carga del módulo de esta forma: creamos el archivo /etc/modprobe.d/huawei con el siguiente contenido:# Huawei E220 alias huawei usbserial options huawei vendor=0x12d1 product=0x1003Y ahora con modprobe huawei tendremos el módem funcionando ;-).
Apéndice C: nozomi
Bueno, ¿qué es esto de nozomi?... es un modulito que se usa para las conexiones HSDPA y que no viene de serie en linux. Se supone que es necesario para hacer funcionar el invento... pero a mi no me ha hecho falta... de todas formas os digo como instalarlo por si a alguno le hace falta. El módulo no compila con 2.6.18 y no hay parche hasta la fecha (aunque el bug si está abierto). En Debian se supone que se podría hacer:/* if (test_bit(TTY_DONT_FLIP, &tty->flags)) { */ /* D6("TTY_DONT_FLIP set!! %d", index); */ /* /\* Here we disable interrupt for that port and schedule *\/ */ /* /\* task. Task wakes up a little bit later and enables interrupt.. *\/ */ /* port->tty_dont_flip = 1; */ /* disable_transmit_dl(index, dc); */ /* #ifdef KERNEL_2_4 */ /* schedule_task(&dc->tty_flip_queue); */ /* #endif */ /* #ifdef KERNEL_2_6 */ /* if (!queue_work(dc->tty_flip_wq, &dc->tty_flip_wq_struct)) { */ /* ERR("Call to queue_work() failed."); */ /* } */ /* #endif */ /* return 0; */ /* } */Y ahora modificad la línea 2183 que tiene lo siguiente:
td->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_NO_DEVFS,por esto:
td->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV,Y ya os tiene que compilar, la instalación debéis hacerla a mano.
Enlaces de interés
...y la verdad que hay mucho más... sólo buscad en foros... Ale... disfrutad... para dudas y correciones ya sabéis ;-) [ show comments ]
blog comments powered by Disqus