jueves, 23 de abril de 2009

Configurar Modem ZTE MF-616 UMTS/GPRS/EDGE (FCC. ZTE MF-626) 3G en Gentoo Linux amd64

Bueno mis apreciados lectores, Despues de dos años de con Ubuntu x86_64, finalmente decidí migrar a lo que es a mi parecer es la distribución mas optimizada y configurada a la medida del hardware del host sobre la cual corre. Además que se puede jugar con el ya que maneja una especie de busybox + live imagen al mejor estilo Linux From Scratch pero organizado con su soberbio administrador de paquetes/codigo fuente emerge el cual nos agiliza un poco el proceso. Como todo tiene su contra y es que Gentoo no sería grato para los que queremos todo rapido, debido a que por defecto soporta la instalación de ebuilds (makefiles adaptados al modelo Gentoo Linux).
Despues del ejercicio anterior con Ubuntu, en el que el proceso resulto sencillo y breve con resultados rapidos y satisfactorios, y como una tarea postinstalación y actualización general de gentoo a partir de su sistema base 2008.0, me tomé el atrevimiento de configurar este modem ZTE MF-616 UMTS/GPRS/EDGE 3G de Tigo en Gentoo. Realmente no encontré un HowTo (Cómo) consolidado y entendible que me llevara a conseguirlo rapidamente, sino que toco optar en partes por la guia anterior en parte: usb_modeswitch, wvdial, ppp pero con las caracteristicas que tenia ke manejar gentoo. Wvdial en 1era instancia no me habia servido (tal vez algun bloqueo en algun proceso en memoria, sin reiniciar la maquina pudo generarme dolores de cabeza con el hasta hace unos minutos).

Se efectuaron los parametros defaultroute y replacedefaultroute en los parametros de configuración de ppp ubicados en /etc/ppp/options. Si utilizaba replacedefaultroute ke junto a defaultroute podrían cambiar y restablecer la ruta defecto dinámicamente, a diferencia de Ubuntu que si ejercía esta tarea con wvdial+ppp (el paquete de ppp distribuido con ellos viene con el patch habilitado). En este caso con Gentoo Linux no se contempla en absoluto este movimiento de "default gateway" mientras exista predefinida antes de utilizar el protocolo ppp. Anotando entonces lo que comenta el sistema de QA de Gentoo en http://bugs.gentoo.org/227321 acerca de ese parche:

------- Comment #3 From Alin Năstac 2008-06-15 22:12:30 0000 [reply] -------

This replacedefaultroute is really a misfeature from my POV because you will be
left without a default route when pppd will be killed by the user with kill -9
(possibly with other signals as well, I didn't looked at their patch). We (or
at least I) like a different approach to this problem. Instead of blindly
replacing the default route, I let users choose the metric of the default route
created by pppd (see defaultmetric option in pppd man page). This way you could
adapt your setup to whatever needs you have, all you need to do is set the
right metric on the right route.
Anyway, did you looked at the current pppd version in our tree? Do you really
expect us to add such an old (and probably rejected by upstream) patch to our
source tree? :)
Closed as INVALID.


Vemos que no permiten el parche por defecto debido a cuestiones de seguridad. Luego de aclarada esta situación, se procedio con los siguientes pasos consolidados y resumidos:

a. compilar y subir al kernel el subsistema de usb_modeswitch

1. en /etc/conf.d/net: verificar que no exista un default gateway dentro de la configuración de la interface ethernet principal,

routes_eth0=( "default via 172.25.19.2")

Si existe esta linea entonces hay que eliminarlo o comentarlo, y preferiblemente agregar las rutas a redes que por defecto se iban con la configuración de ruta por defecto predeterminada:

routes_eth0=( "172.25.1.0/24 via 172.25.19.2" )

Despues de aplicados los cambios, no olvide reiniciar la interface: /etc/init.d/net.eth0 restart

2.Instalar ppp: emerge net-dialup/ppp
3. creacion de los archivos que controlaran el agregado y eliminado de la ruta default:

/etc/ppp/ip-up.d/adddefaultroute
#!/bin/sh
route add default dev $1

/etc/ppp/ip-down.d/deletedefaultroute
#!/bin/sh
route del default dev $1

3. configuración de /etc/ppp/options básicamente con los siguientes parametros:
lock
+pap
-chap
asyncmap 0
noauth
crtscts
hide-password
modem

4. Habilitando la conexión con el modem 3G, usando ppp daemon directamente:
4a. /etc/conf.d/net:
Agregar la configuración del protocolo ppp con la información similar basada en el caso de wvdial.conf pero con la sintaxis compatible a ese archivo base de networking setup en Gentoo:

#Internet mobile 3G ZTE MF626 TIGO
config_ppp0=( "ppp" )
link_ppp0="/dev/ttyUSB2"
phone_number_ppp0=( "*99#" )

pppd_ppp0=(
"maxfail 10"
"noauth"
"lcp-echo-interval 5"
"lcp-echo-failure 12"
"debug"
"noipdefault"
"defaultroute"
"usepeerdns"
"ipcp-accept-remote"
"ipcp-accept-local"
"holdoff 3"
"noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp"
"460800"
"lock"
"nocrtscts"
)

chat_ppp0=(
'ABORT' 'BUSY'
'ABORT' 'ERROR'
'ABORT' 'NO ANSWER'
'ABORT' 'NO CARRIER'
'ABORT' 'NO DIALTONE'
'ABORT' 'Invalid Login'
'ABORT' 'Login incorrect'
'TIMEOUT' '5'
'' 'ATZ'
'OK' 'AT+CFUN=1'
'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0'
'OK' 'AT+CGDCONT=1,"IP","web.colombiamovil.com.co"'
'OK' 'ATDT\T'
'TIMEOUT' '60'
'CONNECT' ''
'TIMEOUT' '5'
'~--' ''
)


4b. Si no existe el link en el sistema se debe crear la nueva interface ppp0:
en /etc/init.d:
$ sudo ln -s
$ sudo ln -s net.lo net.ppp0

5. Iniciar usb_modeswitch:
Enviar los parametros para switcheo del dispositivo a modo modem/storage:

$ sudo usb_modeswitch -W -v 0x19d2 -p 0x2000 -V 0x19d2 -P 0x0031 -m 0x01 -M 55534243123456782000000080000c85010101180101010101000000000000



Para el Caso de usar configuración directa de pppd:
Se inicia el daemon ppp:

$ sudo /etc/init.d/net.ppp0 start * Starting ppp0
* Bringing up ppp0
* ppp
* Running pppd ...
* Backgrounding ...

5. Si se utiliza el clasico wvdial:
5.a verificar que la configuracion de wvdia.conf contenga:

[Dialer Defaults]
Init1 = ATZ
Init2 = AT+CFUN=1
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init5 = AT+CGDCONT=1,"IP","web.colombiamovil.com.co"
Stupid Mode = 1
Modem Type = Analog Modem
; Phone =
Phone = *99#
ISDN = 0
; Username =
Username = off
; Password =
Password = off
Dial Command = ATDT
New PPPD = yes
Modem = /dev/ttyUSB2
;Baud = 9600
Baud = 460800
Remote Name = *
Auto DNS = on

5b. Iniciar proceso wvdial: sudo wvdial
--> WvDial: Internet dialer version 1.60
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: AT+CFUN=1
AT+CFUN=1
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","web.colombiamovil.com.co"
AT+CGDCONT=1,"IP","web.colombiamovil.com.co"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Thu Apr 23 11:48:02 2009
--> Pid of pppd: 21606
--> Using interface ppp0
--> pppd: �[7f]
--> pppd: �[7f]
--> pppd: �[7f]
--> pppd: �[7f]
--> local IP address 186.97.60.84
--> pppd: �[7f]
--> remote IP address 10.64.64.64
--> pppd: �[7f]
--> primary DNS address 200.13.249.101
--> pppd: �[7f]
--> secondary DNS address 200.75.51.133
--> pppd: �[7f]


. Monitorear el daemon desde la consola:
$ sudo tail -f /var/log/messages | ccze
Entre otras cosas debe aparecerle al final del log:

Apr 23 10:03:18 m0n0 pppd[1277]: Could not determine remote IP address: defaulting to 10.64.64.64
Apr 23 10:03:18 m0n0 pppd[1277]: local IP address 186.97.63.117
Apr 23 10:03:18 m0n0 pppd[1277]: remote IP address 10.64.64.64
Apr 23 10:03:18 m0n0 pppd[1277]: primary DNS address 200.13.249.101
Apr 23 10:03:18 m0n0 pppd[1277]: secondary DNS address 200.75.51.133
Apr 23 10:03:18 m0n0 pppd[1277]: Script /etc/ppp/ip-up started (pid 1287)
Apr 23 10:03:18 m0n0 pppd[1277]: Script /etc/ppp/ip-up finished (pid 1287), status = 0x0

Lo que nos indica ke la conexion ha sido satisfactoria y verificar igual que pppd haya aplicado el default gateway al sistema:
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.64.64.64 * 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
dimarbtacx01.di 172.25.19.2 255.255.255.0 UG 0 0 0 eth0
172.25.19.0 * 255.255.255.0 U 0 0 0 eth0
loopback * 255.0.0.0 U 0 0 0 lo
default 10.64.64.64 0.0.0.0 UG 0 0 0 ppp0


Verificamos /etc/resolv.conf, en lo ke tiene ke ver con la resolución DNS:

cat /etc/resolv.conf
nameserver 200.13.249.101
nameserver 200.75.51.133


Hakuna Matata again! :D

viernes, 13 de marzo de 2009

Instalar y configurar modem ZTE MF616 HSDPA/UMTS/EDGE 3G de Colombia Móvil "Tigo" bajo GNU/Linux (Ubuntu)

Desde la semana pasada me conseguí este nuevo "gadgedcito" para poder tener un amigo al cual recurrir para cuando se necesite tener un acceso breve y eficiente a la red en teoría desde cualquier punto de la ciudad y en cualquier otra ciudad del país. Como era de esperarse el proceso a seguir en windows era sencillo, sólo habia ke imaginar al menos si había alguna posibilidad de subirlo a linux (ubuntu) y la tarea ya estaba servida, un nuevo reto nacía. El googleo me llevo a varios sitios interesantes, entre esos el sitio principal del aplicativo ke permite switchear la función inicial de CD-ROM ke viene grabada en el hacia modem y/o almacenamiento. Era un poco dispendioso ya que no reunía la info importante en las pruebas para poder aclarar al menos el paso inicial que era poder verificar que el bus usb me desplegaba las pistas necesarias.
Un problema en ese momento era que aún no podría identificar cual era el modelo de ZTE que me podía servir para este y asi poder inyectar satisfactoriamente los parámetros efectivos que me permitieran lograr el switcheo. Leyendo y leyendo en la red encontré que el modelo MF626 era el modelo que fisicamente encontraba mucha equivalencia con el que tenía en mis manos. Buena señal eh!, resulta que la etiqueta trasera del modem basicamente me muestra:

ZTE Model: MF616
HSDPA USB MODEM
IMEI: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
S/N: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
EAN: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

FCC ID: Q78-ZTEMF626
Z T E C O R P O R A T I O N

Con esa indicación del FCC finalmente entendí que Tigo le coloca ese numero de modelo MF616 como por alguna variación o no se con que intención pero realmente el core de ese dispositivo es un MF626. Ya con esa identificación, procedí a googlear con el MF626 en Linux y afortunadamente encontre información relacionada con Ubuntu, la pagina principal del proyecto usb_modeswitch, posteriormente actualizar Ubuntu a la ultima stable release 8.10 amd64. Estos fueron los pasos basicos:

En 1era instancia al insertar el modem, verificamos los codigos iniciales:
$ lsusb
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 19d2:2000
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Podemos ver en negrita que el dispositivo fue identificado con el 19d2 (DefaultVendor) y el 2000 (DefaultProduct) que nos indica que el dispositivo arranca en modo de CD-ROM para la instalación del driver (tal como sucede en Win32). En el siguiente paso el comando mágico usb_modeswitch permitirá cambiar el modo de operación del dispositivo y lograrlo pasar a modo usb storage y modem común y corriente.

$ sudo usb_modeswitch -W -v 0x19d2 -p 0x2000 -V 0x19d2 -P 0x0031 -m 0x01 -M 55534243123456782000000080000c85010101180101010101000000000000

.....
.....
Setting up communication with device
Trying to send the message
OK, message successfully sent.
-> See /proc/bus/usb/devices (or call lsusb) for changes. Bye

"OK, message successfully sent", nos indica que fue exitoso el switcheo.

Solo unos segundos despues de inyectado los parametros y si el dispositivo 3G tiene memoria microSD insertada se crea el dispositivo de almacenamiento desplegando su información de inmediato. En ese momento verificamos que ya este switcheado con lsusb:

$ lsusb
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 007: ID 19d2:0031
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

El DefaultProduct 0031 es el que debe aparecer antes de continuar.
Además de esto, se crearán 3 dispositivos en disco como:
/dev/ttyUSB0.../dev/ttyUSB1 y /dev/ttyUSB2 los cuales al no identificar el puerto correcto del modem, podemos entonces ir a prueba/error hasta lograr enviar todos los parametros con wvdial y activar el daemon ppp que nos permitirá finalmente conectarnos al proveedor Tigo.

Seguimos con la activación del modulo usbserial en el kernel:

$ sudo /sbin/modprobe usbserial vendor=0x19d2 product=0x0031
Este paso No debe arrojar ningun error.

La primera vez debemos configurar nuestro fichero con los parámetros de reconocimiento del dispositivo:
$ sudo wvdialconf

El cual nos generara un archivo inicial de configuración para utilizarlo con wvdial ubicado en /etc/wvdial.conf. Luego de aplicar los parámetros esenciales que debo tener presente para una correcta conectividad con el ISP (3.5G Tigo) el archivo de configuración queda de la siguiente manera:

[Dialer Defaults]
Init1 = ATZ
Init2 = AT+CFUN=1
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init5 = AT+CGDCONT=1,"IP","web.colombiamovil.com.co"
Stupid Mode = 1
; Remote Name = *
; Baud = 9600
Modem Type = Analog Modem
Stupid Mode = 1
Baud = 460800
New PPPD = yes
Modem = /dev/ttyUSB2
ISDN = 0
Phone = *99#
Password = off
Username = off
Dial Command = ATDT
Remote Name = *


Modificamos los parámetros PPP en /etc/ppp/options activando esencialmente:
+pap
-chap

Finalmente conectamos al ISP 3.5G con wvdial:

$ sudo wvdial
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: AT+CFUN=1
AT+CFUN=1
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","web.colombiamovil.com.co"
AT+CGDCONT=1,"IP","web.colombiamovil.com.co"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Fri Mar 13 10:31:01 2009
--> Pid of pppd: 9651
--> Using interface ppp0
--> pppd: �[7f]
--> pppd: �[7f]
--> pppd: �[7f]
--> pppd: �[7f]
--> pppd: �[7f]
--> local IP address 190.102.202.36
--> pppd: �[7f]
--> remote IP address 10.64.64.64
--> pppd: �[7f]
--> primary DNS address 200.13.249.101
--> pppd: �[7f]
--> secondary DNS address 200.75.51.133
--> pppd: �[7f]

Hakuna Matata!, Conectado!

domingo, 8 de marzo de 2009

Un poco mas de movilidad

Bueno llego la hora de tener un poco mas de movilidad pero a su vez de libertad en poder acceder a internet de manera sencilla (sin tener en cuenta tnato las velocidades) a traves de la red GSM con el proveedor Colombia Movil S.A. - Tigo. Bueno hasta ahora la cosa pues es aceptable, digamos que tiene ratos eficiente y otros ratitos bajan las ratas U/D pero dentro de su comportamiento normal. He realizado tests de velocidad (http://www.speedtest.net) con distintos puntos en internet y aqui tenemos algunos resultados a distintas horas del dia con distinto trafico:



El mejor registro: Mar-15-09_01:30

Marzo 28 09: Ahora con la politica de "Uso justo" que encontre en una pagina no oficial de Tigo. No vi que despues de 20GB se aplica un "Uso Justo" de la red y me bajan el ancho de banda a 256Kbps... ke mal! y andamos por aca sin banda ancha!.

Abril 18 09: De vuelta con ADSL de Telefonica - Telecom (Ahora con Banda Ancha 2.0, devasta cualquier otro test previo realizado con Tigo y su 3.5G)


Nuevamente sin el baneo de Tigo internet movil con acceso a todo el ancho de banda disponible para el servicio:

martes, 17 de febrero de 2009

Reunion Familiar en Valledupar (Cesar)

Este ultimo fin de semana fue sin duda un fin de semana de "mucho miedo" como se dice a veces
Con el arribo de la familia Dorville Prens (Tia Teresa y el primo Julián) que no los conocía nos organizamos junto al tio "Miguelito", Gumercinda y la prima Jakeline arrancamos el sabado anterior lo que sería una verdadera "Travesía por el Himalaya" hasta llegar a nuestro destino, la hermosa ciudad de Valledupar, capital mundial del vallenato!. Que barbaro!, tuvimos de todo un poco y lo mas increible es ke el viaje mas largo que haya vivido a Barranquilla ocurrió ese pasado sabado 14 de febrero (Dia de San Valentin en muchos paises). A la altura del pueblito de Luruaco (Atlántico) nos encontramos con una varada de bus magistral, momentos previos a la detención se sentía un fuerte olor a quemao, hubo susto entre los pasajeros ya que igual la cuestión estaba complicada y casi 40 minutos despues hubo que parar el bus para poder arreglar. Duramos ahi en ese show mas de una hora... Eran poco o mas de las 4PM y aun estabamos en ese sitio detenidos.. había tensión entre la gente, como siempre yo muy tranquilo sin perder calma esperando que pronto arrancaramos de nuevo. Finalmente pasadas casi las 5PM arrancamos de nuevo para ubicarnos en la via. El bus se sentía extraño ya que el conductor no iba con alta velocidad y demorariamos mas en llegar a Barranquilla. Por momentos se sentía como si el bus fuese a irse a un lado, y era que como de un lado no estaban las llantas disponibles entonces lógicamente se balanceaba facilmente como si se fuese a voltear a un lado. Despues de pasar por Sabanalarga, el conductor anunciaba que habia problemas y que algunos de los pasajeros voluntariamente podrían abordar otro bus de la flota que venía detrás y así fue!. A las 6:30PM arribamos finalmente a Barranquilla.. ke viaje tan complicao!.

lunes, 26 de enero de 2009

La trampa de los "señores" conductores...

Hace unos meses mientras salía de visitar unos amigos, siendo las 23:00 tomé un taxi y me fui a casa mientras medio me entretenía charlando con el taxista para hacer el viaje mas corto. Fui a sacar mi billetico de 20 barras (COP $20.000) y pagarle la carrera de 7 mil pesos. El señor toma el billete y sin percatarme pq todo fue friamente calculado por parte del conductor sagáz que aprovechó para hacerme en ese espabilar de ojos un cambio de billetes. Mientras yo lo miraba al rostro no me percate que en ese momento cumbre mi amigo el conductor tramposo me había cambiado el billete por otro que tenía en la mano... haciendose el marica y revisandolo haciendome cara me dice... "Este billete esta falso.. mirelo... ", Yo más asombrado aún le dije: "Cómo que este billete está falso?, si fuese falso yo no lo tuviese metido en la billetera!" ... El conductor insiste en ke el billete está falso.. y yo atonito e incomprendiendo la situación con rabia y aburrimiento no hice mas que recibirle el billete falso y pagarle con otro de 20 para ke me diera mi vuelto y entendiendo ke habia sido engañado vilmente por uno de estos personajes que mienten. Hago alusión a este tema, ya que esta mañana antes de salir de la casa para venir a mi trabajo, mi hermana Julieth llama al teléfono a mi mamá contandole que tuvo ke devolverse por que el conductor del bus o buseta urbana que había tomado para ir a su trabajo le dijo que curiosamente el billete de 20 barras con el que iba a pagarle era bien falso y que no se lo partía en la cara pq era una mujer. Que descaro por Dios, ella regresó a casa sin ganas de nada.. triste y aburrida porque no entendía lo que ocurría... Entonces recordé lo que me había pasado meses atrás con el taxista, wow! le habían hecho la misma jugada a mi hermana... que tristeza y rabia a la vez saber que estas cosas pueden ocurrir a menudo y muchas veces por confianza no tomamos la debida precaución. De todas formas para un lector como ud., es para que tengamos presente los siguientes detalles muy importantes para contrarrestrar esta situación:

  • Marcar el billete y analizar muy bien las manos del conductor que no tenga ningún otro billete a la mano ya que por lo general ellos en una de las dos manos antes de recibir el billete bueno tienen el falso... es muy breve hacer el cambio de billete para ese momento.
  • Tratar de cambiar el billete grueso por "menudo".
De todas formas la experiencia nos enseña de lo bueno o malo que nos pueda ocurrir en algún momento ya que nunca esperamos que nos sucedan las cosas.. para tomar acciones necesarias y estar atento y precavido. Ahora le ocurrió a mi hermana, pero puede ocurrirle a cualquiera, asi que Atento a las trampas de los "señores" conductores.