La instalacion del modem Alcatel X030 se realizo en una maquina con Ubuntu 9.04 (jaunty) , con las siguientes caracteristicas:
joseo@joseo-laptop:~$ uname -a
Linux joseo-laptop 2.6.28-19-generic #61-Ubuntu SMP Wed May 26 23:35:15 UTC 2010 i686 GNU/Linux
Como se observa el nucleo del Kernel es 2.6.28 y el procesador de la maquina es i686, como se conoce a los procesadores pentium.
Para la instalacion exitosa del modem Alcatel X030 se requiere instalar los siguientes paquetes:
libc6 (>=2.3) GNU C library share libraries
libusb-0.1-4 version 2:0.1.12-13 userspace USB programming library
libusb-1.0-0 version 2:1.0.0-1 userspace USB programming library
libusb-dev version 2:0.1.12-13 userspace USB programming library
Tcl version 8.4.16-2 The tool command languages (default version) run time files
wvdial 1.60.1+nmu2 PPP dialer with built in-intelligence
gnome-ppp 0.3.23-1 modem internet conection tool for the GNOME Desktop
Los anteriores paquetes se instalaron haciendo uso de Synaptic Graphic package manager, el cual se encuentra en la ruta Sistemas->Administracion->Synaptic dentro de Ubuntu.
Con el marco anterior y los paquetes instalados, se procede a instalar el software que permitira conectarse a Internet empleado el modem Alcatel X030; el software es el usb-modeswitch, el cual se baja de la direccion http://www.draisberghof.de/usb_modeswitch. En esta ubicación se bajaron los siguientes archivos .tar.bz2.
Usb-modeswitch-1.1.2.tar.bz2
Usb-modeswitch-data-200100418.tar.bz2
Como son archivos tar con bzip2, estos se descomprimen empleando el siguiente comando:
root#joseo-laptop:/home/joseo/Escritorio#tar jvxf archivo.tar.bz2
Al descomprimirlos se crea un folder dentro del folder Escritorio. Es importante mencionar que todo esto debe realizarse como superusuario.
En ubuntu:
joseo@laptop:~$ sudo su o joseo@laptop:~$ su
En Debian:
joseo@laptop:~$ su
En cada caso, luego hay que digitar la clave del root
Luego hay que instalar el software descomprimido, empezando por usb-modeswitch-data y posteriormente el usb-modeswitch-1.1.2; para esto hay que entrar en el respectivo folder y ejecutar una serie de comandos.
El usb-modeswitch-data-20100418, se instala digitando el siguiente comando dentro de la carpeta que se creo al descomprimirlo asi:
root@joseo-laptop:/usb-modeswitch-data-20100418# make install
Este comando no arroja ningun tipo de mensaje de salida.
El usb-modeswitch-1.1.2, se instala digitando el siguiente comando:
root@joseo-laptop:/usb-modeswitch-1.1.2# make install. El usb-modeswitch los que hace es expulsar el modo CDROM del modem para que este se reinicie, ya que para esta version de Ubuntu, el modem es reconocido como un dispositivo de almacenamiento. En versiones del Kernel 2.6.30 o 2.6.32, el modem ya es reconocido como tal.
Luego hay que modificar el wvdial.conf que se creo al instalar el paquete wvdial. Los cambios son los siguientes:
root@joseo-laptop:/home/usbmodeswitch# gedit /etc/wvdial.conf
Modificamos el archivo para que quede de la siguiente manera:
[Dialer Defaults]
#Created by wvdialconf:
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init1 = ATZ
Modem = /dev/ttyUSB0
Phone = *99#
Idle Seconds = 300
Modem Type = USB Modem
Stupid Mode = 1
Compuserve = 0
Baud = 460800
Auto DNS = 1
Dial Command = ATDT
Ask Password = 0
ISDN = 0
Username = user
Password = pass
New PPPD = yes
Luego de esto ejecutamos estas lineas:
root@joseo-laptop:/home/usbmodeswitch# modprobe usbserial vendor=0x1c9e product=0x6061
Esta entrada no va a dar ningun mensaje de salida y debe ser en una sola linea, con ella el modem es detectado como tal y no como una unidad de almacenamiento. Luego se ejecuta el siguiente comando:
rootstock-laptop:/home/usbmodeswitch# usb_modeswitch -v 0x1c9e -p 0x1001 -V 0x1c9e -P 0x6061 -m
0x05 -M "55534243123456780000000000000606f50402527000000000000000000000"
Con esta entrada observamos que se desmonta el modem y nos da un mensaje de salida como este (IMPORTANTE todo el comando es una sola linea):
* usb_modeswitch: tool for controlling “flip flop” mode USB devices
* Version 0.9.4 (C) Josua Dietze 2008
* Works with libusb 0.1.12 and probably other versions
Looking for target devices
No target device found
Looking for default devices
Found default devices (1)
Prepare switching, accessing latest device
Looking for active default driver to detach it
OK, driver found (“usb-storage”)
OK, Driver “usb-storage” successfully detached
Setting up communication with device
Trying to send the message
Sending the message returned error -19, trying to continue …
-> See /proc/bus/usb/devices (or call lsusb) for changes. Bye
root@joseo-laptop:/home/usbmodeswitch# wvdialconf create
Esta linea solo es necesario hacerla por esta vez y lo que logramos es verificar el puerto el cual por lo general es ttyUSB0 o 1 o 2 y nos sale algo asi:
ttyS0: ATQ0 V1 E1 — failed with 2400 baud, next try: 9600 baud
ttyS0: ATQ0 V1 E1 — failed with 9600 baud, next try: 115200 baud
ttyS0: ATQ0 V1 E1 — and failed too at 115200, giving up.
ttyS1: ATQ0 V1 E1 — failed with 2400 baud, next try: 9600 baud
ttyS1: ATQ0 V1 E1 — failed with 9600 baud, next try: 115200 baud
ttyS1: ATQ0 V1 E1 — and failed too at 115200, giving up.
Modem Port Scan: S2 S3
ttyUSB0: Device or resource busy
Modem Port Scan: USB0
WvModem: Cannot get information for serial port.
ttyUSB1: ATQ0 V1 E1 — OK
ttyUSB1: ATQ0 V1 E1 Z — OK
ttyUSB1: ATQ0 V1 E1 S0=0 — OK
ttyUSB1: ATQ0 V1 E1 S0=0 &C1 — OK
ttyUSB1: ATQ0 V1 E1 S0=0 &C1 &D2 — OK
ttyUSB1: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 — OK
ttyUSB1: Modem Identifier: ATI — Manufacturer: LONGCHEER HOLDINGS LIMITED
ttyUSB1: Speed 9600: AT — OK
ttyUSB1: Max speed is 9600; that should be safe.
ttyUSB1: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 — OK
WvModem: Cannot get information for serial port.
ttyUSB2: ATQ0 V1 E1 — failed with 2400 baud, next try: 9600 baud
ttyUSB2: ATQ0 V1 E1 — failed with 9600 baud, next try: 9600 baud
ttyUSB2: ATQ0 V1 E1 — and failed too at 115200, giving up.
WvModem: Cannot get information for serial port.
ttyUSB3: ATQ0 V1 E1 — OK
ttyUSB3: ATQ0 V1 E1 Z — OK
ttyUSB3: ATQ0 V1 E1 S0=0 — OK
ttyUSB3: ATQ0 V1 E1 S0=0 &C1 — OK
ttyUSB3: ATQ0 V1 E1 S0=0 &C1 &D2 — OK
ttyUSB3: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 — OK
ttyUSB3: Modem Identifier: ATI — Manufacturer: LONGCHEER HOLDINGS LIMITED
ttyUSB3: Speed 9600: AT — OK
ttyUSB3: Max speed is 9600; that should be safe.
ttyUSB3: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 — OK
Found a modem on /dev/ttyUSB0.
create: Can’t open ‘create’ for reading: No such file or directory
create: …starting with blank configuration.
Modem configuration written to create.
ttyUSB1: Speed 9600; init “ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0″
ttyUSB3: Speed 9600; init “ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0″
y por ultimo para concectar damos
root@joseo-laptop:/home/usbmodeswitch# wvdial 3g
Con esto ya todo esta listo ya estariamos conectados pero deberiamos repetir algunas lineas siempre que nos vayamos a conectar entonces para eso vamos a necesitar hacer un pequeño script que lo vamos a guardar en /etc para esto hacemos esto:
root@joseo-laptop:/home/usbmodeswitch# gedit /etc/comcel
El archivo lo dejamos de la siguiente manera:
modprobe usbserial vendor=0×1c9e product=0×6061
usb_modeswitch -v 0×1c9e -p 0×1001 -V 0×1c9e -P 0×6061 -m
0×05 -M “55534243123456780000000000000606f50402527000000000000000000000″
wvidal 3g
guardamos y listo, ahora cada que queramos conectarnos unicamente ejecutaremos el script de la siguiente manera:
root@joseo-laptop:/home/usbmodeswitch# sh /etc/comcel
Para saber si estamos conectados miramos que nos tiene que salir algo asi:
–> WvDial: Internet dialer version 1.60
–> Warning: section [Dialer 3g] does not exist in wvdial.conf.
–> Cannot get information for serial port.
–> Initializing modem.
–> Sending: ATZ
ATZ
OK
–> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
–> Modem initialized.
–> Idle Seconds = 300, disabling automatic reconnect.
–> Sending: ATDT*99#
–> Waiting for carrier.
ATDT*99#
CONNECT
–> Carrier detected. Starting PPP immediately.
–> Starting pppd at Thu Aug 6 15:36:24 2009
–> Pid of pppd: 4136
–> Using interface ppp0
–> pppd: �[7f]
–> pppd: �[7f]
–> pppd: �[7f]
–> pppd: �[7f]
–> pppd: �[7f]
–> pppd: �[7f]
–> local IP address 166.238.28.207
–> pppd: �[7f]
–> remote IP address 10.64.64.64
–> pppd: �[7f]
–> primary DNS address 4.2.2.3
–> pppd: �[7f]
–> secondary DNS address 198.228.90.210
–> pppd: �[7f]
y bueno como ultimo dato el firefox suele aparecer marcada la opcion de Trabajar sin conexion unicamente tenemos que desmarcarla y listo comenzar a navegar en Internet. :)
inconvenientes durante la instalacion
El unico inconveniente presentado fue en el momento de instalar el programa usb-modeswitch-1.1.2; al ejecutar el comando “make install” se presentaba el mensaje “error: usb.h No existe el fichero o directorio”, para solucionar ese error solo fue necesario instalar el paquete “libusb-dev” el cual lo hice impleando Synaptic. Por lo tanto se concluye que “usb.h” viene con dicho paquete y en efecto un archivo es creado en la direccion “usr/include”.
Post- instalacion del modem Alcatel X030
Para entender en profundidad dicho proceso de instalacion, se revisa en detalle lo que ocurrio. Primero se puede observar la creacion de una carpeta de nombre /etc/usb_modeswitch.d, que contiene la configuracion de todos los modem disponibles, se destaca el archivo 1c9e:1001 con la siguiente especificacion:
########################################################
# Alcatel One Touch X020
DefaultVendor= 0x1c9e
DefaultProduct=0x1001
TargetVendor= 0x1c9e
TargetProduct= 0x6061
CheckSuccess=20
MessageContent="55534243123456780000000000000606f50402527000000000000000000000"
Como se puede observar, son parametros del comando usb_modeswitch que se digito en lineas anteriores.
Igualmente en la misma carpeta /etc/ se encuentra el archivo usb_modeswitch.conf; archivo de configuracion para el paquete usb-modeswitch-1.1.2, el cual es una herramienta de switcheo que proporciona diferentes estados o modos a los dispositivos USB. Este archivo es evaluado por el Script usb_modeswitch (archivo ejecutable) en la carpeta /lib/udev.
El comando “make install” al ejecutarlo dentro de la carpeta usb-modeswitch-1.1.2, instala un script(/lib/udev/usb_modeswitch), un archivo de configuracion (/etc/usb_modeswitch.conf), el binario (/usr/sbin/usb_modeswitch) y un man (/usr/share/man/man1/usb_modeswitch.1).
Una vez el dispositivo este switcheado, se puede definir una regla en el “archivo de rules” (/lib/udev/rules.d/40-usb_modeswitch.rules), para permitir al “udev” ejecutar el “usb_modeswitch” tan pronto los ID son encontrados, es decir cuando el modem sea conectado al puerto usb.
El script usb_modeswitch trabaja en asocio con otros paquetes – ya mencionados-, el toma los parametros de un archivo de configuracion y hace la iniciacion y comunicación de ayuda del paquete “libusb”.