2006/11/14

3G/UMTS con Linux Ubuntu Edgy / Feisty

*** Actualizado a 8/5/2007 con comentarios para Ubuntu 7.04 (FEISTY) ***

Bueno, tras un poco de investigación finalmente he conseguido hacer funcionar mi Ubuntu Edgy en mi portátil con la conexión 3G/UMTS de alta velocidad (HSDPA). En mi caso, el operador que estoy usando es Orange, pero el procedimiento será válido tanto con Movistar como Vodafone, y posiblemente también con otros operadores internacionales (me basé en un thread de un foro alemán sobre Vodafone.de).

Nota: Feisty (Ubuntu 7.04) ya trae compilado el módulo de NOZOMI, por lo que esta sección del tutorial se puede omitir y pasar directamente a instalar gcom.

Lo primero, por supuesto, es verificar la tarjeta a utilizar. En mi caso es una QUADCOMM GT 3G+ del servicio Bussiness Everywhere de Orange.
Así pues, empezaremos por traernos el módulo para que funcione nuestra tarjeta, que es el "nozomi". Para ello

sudo apt-get install nozomi-source linux-headers-2.6.17-10-generic


Nota: Sustituye linux-headers-2.6.17-10-generic por la versión de kernel que tengas. Puedes verla con el comando uname -a

Esto nos va a traer el código fuente del módulo, el cual deberemos compilar y modificar.
Con el kernel 2.6.17 deberemos parchear un fuente para que nos funcione, así pues, iremos a

cd /usr/src

tar -jxvf nozomi-source.tar.bz2
cd modules/nozomi
sudo vim nozomi.c

Y nos vamos a la lína 966, sustituyendo esto:
if (tty->flip.count >= TTY_FLIPBUF_SIZE) {

por esto:
if (tty_buffer_request_room(tty, i) < face="georgia">A continuación compilaremos el módulo y lo instalaremos
sudo make
sudo mkdir /lib/modules/2.6.17-10-generic/kernel/drivers/3G
sudo cp nozomi.k /lib/modules/2.6.17-10-generic/kernel/drivers/3G
sudo depmod -a

Nota: Ajusta 2.6.17-10-generic a tu versión de kernel.

Si hemos llegado hasta aquí es que todo va bien. Ahora deberemos comprobar que el módulo nos funciona adecuadamente. Para ello, comprueba que el módulo PCMCIA está operativo, cargamos el módulo de nozomi y verificamos en el log del kernel:

sudo /etc/init.d/pcmciautils start

sudo modprobe nozomi
dmesg

Deberá aparecer algo así en el log:
[17243729.156000] ACPI: PCI Interrupt 0000:0c:00.0[A] -> GSI 16 (level, low) -> IRQ 169
[17243729.156000] Nozomi driver nozomi_tty<6>[792] nozomi_read_config_table(): Version of card: 3
[17243729.468000] [784] nozomi_read_config_table(): Initialization OK!

Verfica además, que los siguientes dispositivos existen:
ls /dev/noz*

Llegado a este punto, y si están los dispositivos creados, necesitaremos unos nuevos paquete para manejar adecuadamente la tarjeta.
sudo apt-get install gcom wvdial

Una vez instalados, comenzaremos las pruebas para ver si la tarjeta funciona.
sudo gcom -d /dev/noz0 info

Deberá devolver algo como esto:
##### GlobeTrotter Configuration #####
Manufacturer Text: Option
IMEI and Serial Number: XXXXXXXXXXXXXXXXXXXXXX
Manufacturer's Revision: (Date: May 31 2006, Time: 15:49:25)
Hardware Revision: 2.2
Network Locked: 1
Customisation: Not defined
Band settings: Europe 900/1800MHz (4)
Auto Attach:

##### END #####

A continuación, introducimos el PIN:
sudo gcom -d /dev/noz0

Tras pedirnos el PIN, devolverá algo tal que así:

SIM ready
Waiting for Registration..(120 sec max)
Registered on Home network: "E AMENA",2
Signal Quality: 31,99

Finalmente, comprobaremos los operadores y que todo va bien
sudo gcom -d /dev/noz0 /usr/share/doc/gcom/examples/operator

Devolverá algo tal que así:
SIM ready
Waiting for Registration..(120 sec max)
Registered on Home network: "E AMENA",2
Signal Quality: 30,99
Getting Operator list: ..................

+COPS: (1,"E AMENA","AMENA","21403",0),(2,"E AMENA","AMENA","21403",2),(1,"vodafone ES","voda ES","21401",0),(1,"vodafone ES","voda ES","21401",2),(1,"movistar","movistar","21407",0),(1,"movistar","movistar","21407",2),,(0, 1, 3),(0-2)

==============================================================
Format: (Access,Long Name, Short Name, Network ID [,Technology])
Access: 2 - Registered, 1 - Available, 3 - Forbidden
Technology: 0 - GSM/GPRS, 2 - UMTS (Not available on all cards)

Enter the Network ID to attempt manual registration
[blank = automatic selection]:
Registration request accepted
Command was: AT+COPS=0

Ahora que todo funciona, ya podemos proceder a realizar la conexión. Para ello configuraremos el wvdial:

sudo vim /etc/wvdial.conf
Nota: Tanto el username como la password deberá ser cambiada para que coincida con el operador que tengas. En el caso de Orange, es CLIENTE y AMENA, pero sé que en Movistar y Vodafone esto cambia. Mira en tu teléfono la configuración del servicio, pregunta en tu operador o consulta por internet.
De igual forma, deberás cambiar el APN. En el caso de Orange es "internet", pero cambiará igualmente con Vodafone y Movistar. El resto de la configuración debería ser la misma

[Dialer Defaults]
Phone = *99***1#
Username = CLIENTE
Password = AMENA
Stupid Mode = 1
Dial Command = ATDT
New PPPD = yes

[Dialer hsdpa]
Modem = /dev/noz0
Baud = 460800
Init2 = ATZ
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ISDN = 0
Modem Type = Analog Modem

[Dialer 2gonly]
Init4 = AT+COPS=0,0,"internet",0

[Dialer 3gonly]
Init4 = AT+COPS=0,0,"internet",2

[Dialer orange]
Init5 = AT+CGDCONT=1,"IP","internet";

[Dialer 384k]
Init6 = AT+CGEQMIN=1,4,64,384,64,384
Init7 = AT+CGEQREQ=1,4,64,384,64,384

[Dialer 144k]
Init6 = AT+CGEQMIN=1,4,64,144,64,144
Init7 = AT+CGEQREQ=1,4,64,144,64,144

[Dialer 64k]
Init6 = AT+CGEQMIN=1,4,64,64,64,64
Init7 = AT+CGEQREQ=1,4,64,64,64,64

Modifica igualmente la configuración del wvdial para ppp:
sudo vim /etc/ppp/peers/wvdial

Con esta información:
plugin passwordfd.so
noauth
name wvdial
replacedefaultroute
noipdefault
nomagic
usepeerdns
ipcp-accept-local
ipcp-accept-remote
nomp
noccp
nopredictor1
novj
novjccomp
nobsdcomp

Finalmente comprobaremos que podemos conectarnos... y navegar!!!
sudo wvdial hsdpa orange

Deberemos ver una salida de este tipo:
--> WvDial: Internet dialer version 1.56
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATZ
ATZ
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","internet";
AT+CGDCONT=1,"IP","internet";
OK
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
CONNECT 1800000
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Tue Nov 14 11:16:57 2006
--> Pid of pppd: 15133
--> Using interface ppp0
--> local IP address 83.231.16.108
--> remote IP address 213.143.42.106
--> primary DNS address 213.143.32.20
--> secondary DNS address 213.143.33.8
--> Connect time 0.1 minutes.
--> local IP address 83.231.16.108
--> remote IP address 213.143.42.106
--> primary DNS address 213.143.32.20
--> secondary DNS address 213.143.33.8

Ahora que ya estamos dentro, podemos crearnos un script de inicialización que ejecutaremos cuando queramos conectarnos.
sudo touch /usr/bin/3G.sh
sudo chmod a+x /usr/vim/3G.sh
sudo vim /usr/bin/3G.sh

Script:
-----
#!/bin/bash

case $1 in
start | init)
echo "Cargando modulo"
sudo modprobe nozomi
echo "Inicializando tarjeta 3G"
sudo gcom -d /dev/noz0
wait
echo "Conectando"
sudo wvdial hsdpa orange
;;
eject)
echo "Ejectando tarjeta"
sudo pccardctl eject
echo "Ya puede retirar la tarjeta"
;;
* )
echo "Uso: 3G.sh [start|eject]"

Uso:

Para iniciar la conexión:
sudo 3G.sh start

Para finalizar la conexión: CTRL^C

Para sacar la tarjeta
sudo 3G.sh eject



43 comentarios:

  1. Te estoy muy agradecido por el tutorial, muy completo y simple. Yo he recogido hoy mi tarjeta Amena/Orange de Bussiness Everywhere (He firmado el contrato con Orange, pero lo cierto es que la tarjeta y la caja pone Amena Empresas xD). La mia es una Novatel Wireless Merlin U630, y aunque al principio he pensado que era como la tuya, no es exactamente igual, y es incluso mas fácil de configurar, pues me ahorro la instalación del nozomi (no me hace falta) y sustituyo el noz0 por ttyS0 (puerto serie normal).

    Lo cierto, es que ha sido casi mas sencillo que en windows, pues con el CD que me han dado, la conexión no funcionaba y he tenido que llamar a Orange y que me dieran la URL de unos drivers/programa actualizado con los que ya si he conseguido funcionar.

    De nuevo gracias por tu post.

    Saludos!

    ResponderEliminar
  2. Magnífico tutorial, el primero que veo en castellano que puede ser realmente útil. Todavía no lo he probado pero tiene buena pinta, espero que vodafone no sea un problema para configurarla.Todo perfectamete explicado. Muchas gracias por la ayuda a los nuevos usuarios de ubuntu.

    ResponderEliminar
  3. He conseguido utilizar mi Merlin con Movistar, pero tengo una duda:
    Me coge las DNS que le metí desde Windows. Entonces deduzco que las tiene grabadas en la tarjeta. La pregunta es, ¿cómo las puedo cambiar?

    ResponderEliminar
  4. Hola a todos, soy muy novato en eso de Linux y no consigo que me funcione la novatel con movistar, para empezar no tengo el comando gcom, aún así si configuro todo tal y como pone el tutorial siempre me indica que el modem no responde... :(

    ResponderEliminar
  5. Tengo esa tarjeta desde hace 48 horas y este tutorial es justo lo que estaba buscando!!! Gracias.

    ResponderEliminar
  6. Bueno, Javier, si eres novato en Linux la verdad es que va a ser complicado que pongas a funcionar la tarjeta tan rápidamente.
    Gcom puedes bajarlo del repositorio de Ubuntu. Tendrás que usar el apt-get o el synaptic. Si tienes otras distribuciones deberás buscar el paquete o bien compilarlo, cosa que si es de las primeras veces te costará.

    ResponderEliminar
  7. La verdad es que esta muy currado el tutotial. Yo estoy peleando con la Melin U630 no sobre ubuntu 6 y no hay manera.

    Aitor ¿donde has encotrado lo drivers para linux de la merlin?

    ResponderEliminar
  8. hola ,yo tengo una sierra aircard 850 de telefonika . Mi 1ª pregunta es sobre si seria posible trabajar kon otras redes (orange o vodafone)
    la 2ª pregunta no se muy bien komo formularla pues nunka he visto la luzezita
    en otro kolor ke no fuese ambar

    ResponderEliminar
  9. 1) Claro que puedes utilizarla en otras redes. De hecho en el tutorial utilicé precisamente Orange.
    Si usas Movistar o Vodafone cambia la información del APN y el usario/contraseña. De hecho parte viene de un tutorial alemán que usaba Vodafone.

    2) Si no te explicas un poco más... cada tarjeta es un mundo.

    ResponderEliminar
  10. Iñigo
    Me ha ido perfecto el tutorial para configurar mi tarjeta pcmcia de vodafone. No obstante, despues de un par de semanas funcionando a la perfección de repente ayer me fue imposible cargar el modulo nozomi. Al ejecutar modprobe nozomi me aparecia un FATAL: cannot load module nozomi.
    Revisé todo de nuevo e incluso volví a ejecutar el proceso de configuracion descrito en tu blog pero nada. Lo que me di cuenta es que al recompilar el kernel me daba un warning referente a que no existía el directorio build dentro de modules.. Tienes idea a que puede ser debido? Gracias

    ResponderEliminar
  11. No sé a qué versión de kernel te has actualizado ni que distribución Linux tienes.
    Si estás usando Ubuntu Edgy, el kernel sigue en la 2.6.17-10-generic, por lo que no es necesario recompilar.
    Si estás utilizando otra distro, y en función de la versión que le hayas metido, es posible que el módulo de nozomi ya no te valga, por lo que o bien te buscas uno que sea válido o bien vuelves a la versión anterior del kernel a la espera de que hagan las modificaciones oportunas.
    De hecho es posible que sin modificar el source de nozomi ya te compile.
    Por otro lado, antes de nada prueba a hacer un "make clean" dentro del directorio de nozomi para que te recompile todo limpito.

    ResponderEliminar
  12. Hola Iñigo,
    Uso Ubuntu Edgy 6.10 y lo que he comprobado es que en alguna de las ultimas actualizaciones de repente dejó de funcionar. He visto que al hacer la actualización desde adept recientemente se bajan la imagen y los sources de la 2.6.7-11-386 mientras que originalmente lo compilé con 2.6.7-10. Crees que puede ser eso? voy a probar el tema del "make clean".
    El error que me da siempre con modprobe nozomi es "FATAL: Module nozomi not found"

    ResponderEliminar
  13. Al haberse actualizado el kernel a la versión -11 automáticamente hay que rehacer el módulo del kernel.
    Es una "minor version", pero un cambio a fin de cuentas.

    ResponderEliminar
  14. Muchas gracias por tan secillo y útil howto.

    ResponderEliminar
  15. Iñigo,
    No ha habido manera. He intentado bajar de nuevo los headers y nozomi source y recompilar usando el nuevo kernel pero me dice que falta un directorio.

    jjcmmgb@jjcmmgb-laptop:/usr/src/modules/nozomi$ sudo apt-get install linux-headers-2.6.17-11-generic
    Leyendo lista de paquetes... Hecho
    Creando árbol de dependencias
    Leyendo información de estado... Hecho
    linux-headers-2.6.17-11-generic ya está en su versión más reciente.
    0 actualizados, 0 se instalarán, 0 para eliminar y 20 no actualizados.
    jjcmmgb@jjcmmgb-laptop:/usr/src/modules/nozomi$ sudo mkdir /lib/modules/2.6.17-11-generic/kernel/drivers/3G
    mkdir: no se puede crear el directorio `/lib/modules/2.6.17-11-generic/kernel/drivers/3G': El fichero ya existe
    jjcmmgb@jjcmmgb-laptop:/usr/src/modules/nozomi$ sudo depmod -a
    jjcmmgb@jjcmmgb-laptop:/usr/src/modules/nozomi$ sudo /etc/init.d/pcmciautils start
    * PCMCIA bridge driver already present in kernel
    jjcmmgb@jjcmmgb-laptop:/usr/src/modules/nozomi$ sudo modprobe nozomi
    FATAL: Module nozomi not found.
    jjcmmgb@jjcmmgb-laptop:/usr/src/modules/nozomi$ sudo make
    Warning: Compiling for 2.6:
    make -C /lib/modules/2.6.17-11-386/build SUBDIRS=/usr/src/modules/nozomi modules
    make: *** /lib/modules/2.6.17-11-386/build: No existe el fichero ó directorio. Alto.
    make: *** [default] Error 2

    jjcmmgb@jjcmmgb-laptop:/usr/src/modules/nozomi$ ls
    CHANGELOG COPYING kfifo.c Makefile nozomi.c readme todo
    copying debian kfifo.h Modules.symvers nozomi.c~ README TODO
    jjcmmgb@jjcmmgb-laptop:/usr/src/modules/nozomi$

    ResponderEliminar
  16. ¿Has hecho un "make clean" antes de hacer el make del módulo?
    La verdad es que no he experimentado este problema para nada, pero cierto es que en el portátil no he actualizado el kernel porque me he mudado y T todavía no tiene cobertura ADSL.

    ResponderEliminar
  17. Hola Iñigo
    Si, hice un make clean antes pero el resultado ha sido el mismo.
    Hoy he echado un vistazo a las características del nuevo kernel de la Feisty Fawn de Ubuntu (2.6.20) y parece que por fin incluyen soporte para tarjetas 3G GT Max.. supongo que con esto se resolverá el problema definitivamente no? que opinas?

    ResponderEliminar
  18. Acabo de actualizar a la 2.6.17-11. He recompilado el módulo y no me ha dado ningún problema, y me conecto exactamente igual que antes.

    ¿Copiaste el .ko al directorio lib/modules/2.6.17-11.... e hiciste un "depmod -a" para comprobar dependencias a posteriori?

    ResponderEliminar
  19. Iñigo,
    He hecho borrón y cuenta nueva. He borrado los directorios del nozomi, los headers del nuevo kernel y lo he reinstalado todo de nuevo. Cuando ejecuto el comando sudo make he comprobado que apunta en el primer paso a la version 11 y en el segundo a la version 10.. no sé de que variable del sistema obtiene dicho dato pero supongo que este es el problema.
    jjcmmgb@jjcmmgb-laptop:/usr/src/modules/nozomi$ sudo make
    Warning: Compiling for 2.6:
    make -C /lib/modules/2.6.17-11-386/build SUBDIRS=/usr/src/modules/no
    make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.17-10-
    CC [M] /usr/src/modules/nozomi/nozomi.o
    Building modules, stage 2.
    MODPOST
    CC /usr/src/modules/nozomi/nozomi.mod.o
    LD [M] /usr/src/modules/nozomi/nozomi.ko
    make[1]: se sale del directorio `/usr/src/linux-headers-2.6.17-10-ge
    jjcmmgb@jjcmmgb-laptop:/usr/src/modules/nozomi$ ls

    ResponderEliminar
  20. Haz antes un "sudo make clean" para borrar todo.
    Asegúrate además de que has arrancado con el kernel -11

    ResponderEliminar
  21. Hola Iñigo, gracias por las explicaciones. He hablado con Orange, user e password ahora son:
    orange
    orange.

    La unica cosa que no logro hacer es esta:
    sudo touch /usr/bin/3G.sh
    sudo chmod a+x /usr/vim/3G.sh
    sudo vim /usr/bin/3G.sh

    Me contesta:
    $ sudo chmod a+x /usr/vim/3G.sh
    chmod: no logro aceder a `/usr/vim/3G.sh': Arquivo ou diretório inexistente

    Me puedes ayudar? Muchas gracias.

    ResponderEliminar
  22. Una preguntita más: sabes como puedo medir el trafico que estoy gastando? Tengo 1 giga cada mes, non queria exagerar.
    Otra vez gracias.
    Andrea

    ResponderEliminar
  23. Hola Andrea.

    El problema es que has puesto /usr/vim/ en lugar de /usr/bin

    Sobre la transferencia mensual, yo también tengo 1GB. Si no instalas ningún programa peer-to-peer y no descargas ficheros grandes (o no actualizas tu Ubuntu) no tienes de qué preocuparte.

    ResponderEliminar
  24. Hello, this tutorial is great, I will use it for my new Ubuntu(which is on it's way to me, ordered it from their site:D ). I have a Globettroter Module 3G+ Modem, i hope i will manage to make it work, not only on Windows, which is giving me headaches, but on Linux too. Again, you did a great work with this tutorial.

    ResponderEliminar
  25. Thank you, Daniel.
    Anyway, this tutorial is for Ubuntu 6.10 Edgy. Be careful because you will probably receive the new 7.04 (Feisty) and this one uses kernel 2.6.20 instead of 2.6.17. So, it could work... or it couldn't.
    I will try to compile modules again as soon as possible to check that everything works as expected.

    ResponderEliminar
  26. Hello, till i get my Ubuntu 7.0.4, i will install Kubuntu 5.10... I know it's a little bit old, but what do you think, can i do that artifice on it too? Thank you in advance.

    ResponderEliminar
  27. Hi, Ainvar

    Well, I'm not sure.
    First, I don't know if nozomi drivers were at Ubuntu repositories for 5.10. If they are, great, you could compile them, but it's probably you won't need to make any modifications in source code since mod explained in this tutorial was for kernel 2.16 and higher, and KUbuntu 5.10 had an older kernel.
    If they aren't, then you should find by yourself nozomi drivers. Google will help you. Anyway, I cannot warrant they will work or compile. I don't remember what kernel 5.10 had. It's a 2.6 for sure, but I don't know what version exactly.
    If you manage to get the nozomi drivers and compile and install them, then you will probably get 3G work. ;)

    ResponderEliminar
  28. Todo perfecto! Sólo que no soy capaz de hacer andar el script 3G.sh. A la orden sudo 3G.sh start me produce el siguiente error: line 20: error de sintaxis: final de archivo inesperado.

    Me estoy volviendo loco, si he copiado tal cual el códico del script y tiene permisos de ejecución por que no va?
    Uf...no me rindo, espero alguna respuesta salvadora!

    Gracias por adelantado!

    ResponderEliminar
  29. Seguramente has metido algun código al copiar que no ves.
    Haz una prueba. Elimina el fichero, te creas otro, y copias y pegas pero en vez de una sola vez, hazlo línea por línea.

    ResponderEliminar
  30. Lo he hecho manualmente como me has dicho y me sigue diciendo lo mismo...
    :-( Ya no sé que hacer...

    ResponderEliminar
  31. Pues tecléalo a manita línea por línea...
    No me digas más... ¿usas un Windows? :)

    ResponderEliminar
  32. Jeje, claro que no...llevo 3 años usando linux al 99.9 %.

    Lo he intentado escribiendo a mano...voy a dejar lo del script como un espediente x...y lo haré tirando de consola manualmente para lanzar la conexión...

    Gracias de todas formas...

    ResponderEliminar
  33. Hello again! Is there a way i could make Option Globesurfer Icon, from Orange, work on Vector Linux SOHO 5.8? It's a Slackware based distro. I am going nuts! I've tried all the possible combinations, and nothing! I used some parts of your tutorial, some from another... and nothing... If you know a way to make it work, please tell me!

    ResponderEliminar
  34. Lo primero, felicitarte y darte las gracias por el tutorial, es realmente útil y me ha venido de perlas.

    Pero experimenté unos problemas para compilar el modulo con el kernel 2.6.22 que resolví (eso sí, crujiendome los sesos) y quiero compartir mi esfuerzo, por si ayuda a alguien:

    Después de conseguir el codigo fuente (en mi caso con apt-get de Debian). Tuve que hacer unas modificaciones al fichero nozomi.c. Siempre teniendo en cuenta que mi compilación fue contra un kernel 2.6.22, por lo visto han habido cambios en la interfaz PCI (al menos en las funciones) de la version 2.6.14 a la 2.6.15 y de la 2.6.17 a la 2.6.22 (aproximadamente, no he comprobado las versiones exactas). El caso es que me he visto forzado a modificar código para adaptar los símbolos que aparecen en el código fuente original con los definidos en las nuevas cabeceras del kernel. Por suerte no han sido muchos. Pongo el diff:

    CyberHell:/tmp# diff modules/nozomi/nozomi.c /usr/src/modules/nozomi/nozomi.c
    996c996,997
    < if (tty->flip.count >= TTY_FLIPBUF_SIZE) //pre 2.6.14 kernels*/
    ---
    > //if (tty->flip.count >= TTY_FLIPBUF_SIZE) //pre 2.6.14 kernels*/
    > if (tty_buffer_request_room(tty, i) < i)
    1568c1569,1570
    < INIT_WORK( &dc->tty_flip_wq_struct, tty_flip_queue_function, (void*) dc);
    ---
    > //INIT_WORK( &dc->tty_flip_wq_struct, tty_flip_queue_function, (void*) dc);
    > INIT_WORK( &dc->tty_flip_wq_struct,tty_flip_queue_function);
    2231c2233,2234
    < rval = pci_module_init(&nozomi_driver);
    ---
    > //rval = pci_module_init(&nozomi_driver);
    > rval = pci_register_driver(&nozomi_driver);

    En cualquier caso, subiré un tarball con las modificaciones. Por lo menos de esta forma se que compila y siguiendo este magnifico tutorial lo tuve rulando en seguida.

    Un saludo a todos.

    ResponderEliminar
  35. Hola, que tal?

    Te falla el script pq falta la palabra esac para salir del bucle, quedaria tal que asi->

    #!/bin/bash

    case $1 in
    start | init)
    echo "Cargando modulo"
    sudo modprobe nozomi
    echo "Inicializando tarjeta 3G"
    sudo gcom -d /dev/noz0
    wait
    echo "Conectando"
    sudo wvdial hsdpa orange
    ;;
    eject)
    echo "Ejectando tarjeta"
    sudo pccardctl eject
    echo "Ya puede retirar la tarjeta"
    ;;
    * )
    echo "Uso: 3G.sh [start|eject]"
    ;;
    esac


    Gracias por el manual!

    ResponderEliminar
  36. para empezar realmente agardezco muchisimo este tuttorial por que por mas que hu buscado por internet no he encontrado ni uno solo que me ayudara como el tuyo, he seguido todo paso a paso y me parece casi exactamente lo mismo que tu dices que me debe salir. debo alcarar que mi modem no es PCIMA si no USB pero todo va a la perfeccion y cuando vamos a la parte de teclear lo siguiente:

    sudo wvdial hsdpa orange

    tu pones que deberia aparecer esto:

    WvDial: Internet dialer version 1.56
    --> Cannot get information for serial port.
    --> Initializing modem.
    --> Sending: ATZ
    ATZ
    OK
    --> Sending: ATZ
    ATZ
    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","internet";
    AT+CGDCONT=1,"IP","internet";
    OK
    --> Modem initialized.
    --> Sending: ATDT*99***1#
    --> Waiting for carrier.
    ATDT*99***1#
    CONNECT 1800000
    --> Carrier detected. Starting PPP immediately.
    --> Starting pppd at Tue Nov 14 11:16:57 2006
    --> Pid of pppd: 15133
    --> Using interface ppp0
    --> local IP address 83.231.16.108
    --> remote IP address 213.143.42.106
    --> primary DNS address 213.143.32.20
    --> secondary DNS address 213.143.33.8
    --> Connect time 0.1 minutes.
    --> local IP address 83.231.16.108
    --> remote IP address 213.143.42.106
    --> primary DNS address 213.143.32.20
    --> secondary DNS address 213.143.33.8

    a mi me aparece casi exactamente lo mismo a exepcion de las ultimas 5 lineas no aparecen y el terminal queda como parpadeando sin opcion a teclearle algo mas entonces supongo que estoy listo para navegar por internet por que el LED del dispositivo deja de parpadear pero, no soy capaz de navegar en ninguna pagina.

    me ayudarias mucho si me ayudaras con esto oque creo que ya casi estoy listo para usarlo.

    gracias

    ResponderEliminar
  37. En el dell Latitude d505, el puerto que monta nozomi es el /dev/ttyS1, mira que estuve dando vueltas buscando el /dev/noz0.

    ResponderEliminar
  38. Hola, he visto tu tutorial y tu destreza para trabajar con una PC Card GT Max. Quiero consultarte algo, yo compre en Alemania una placa PCMCIA GT Max 3G+ que funciona a la perfeccion en Europa.
    Quiero utilizar esa placa en Sudamerica y resulta que como los proveedores del servicio UMTS-HSDPA operan en la banda 1900, mi placa GT es inutil ya que solo trabaja en 2100.
    Puede modificarse mediante comandos AT la banda en la que trabaja la placa y hacer que mi tarjeta SI pueda trabajar en 1900??
    gracias

    ResponderEliminar
  39. En 1900 lo único que encontrarás en EDGE, no 3G.
    Echale un vistazo a las especificaciones de tu tarjeta.

    http://www.option.com/products/overview.shtml

    ResponderEliminar
  40. Buenas. Felices fiestas a todos.
    Gracias por este tutorial tan detallado. Mi situación es que uso Debian en versión Etch, tengo una tarjeta ZTE 620 de 3.5G suministrada por Movistar, bajo Windows OK, pero no consigo que lo detecte debian. Quizas si alguien me pudiera guiar por linea de comandos, comentantando el output? Existe una aplicación de telefonica, Escritorio Movistar, pero esta hecha para SUSE y Fedora unicamente...

    ResponderEliminar
  41. Yo he conseguido hacer funcionar un ZTE MF620 de Movistar en Ubuntu Feisty:

    (todo lo siguiente como root)

    (1) Me bajo e instalo correctamente el usb_modeswitch

    Instalo el binario en /usr/sbin. También cojo la parte del fichero de configuración, usb_modeswitch.conf, relativa al módem ZTE MF620 y la pongo en /etc.

    (2) Instalo los programas adicionales necesarios

    Los programas añadidos que hay que instalar son wvdial y gcom (Option GlobeTrotter GPRS/EDGE/3G/HSDPA and Vodafone 3G/GPRS datacard control tool), cosa que hago con apt-get (el primero ya estaba instalado)

    (3) Creo el fichero de reglas udev

    /etc/udev/rules.d/15-zte-mf620.rules

    ACTION!="add", GOTO="ZTE_End"

    # Is this the ZeroCD device?
    SUBSYSTEM=="usb", SYSFS{idProduct}=="2000",
    SYSFS{idVendor}=="19d2", GOTO="ZTE_ZeroCD"

    # Is this the actual modem?
    SUBSYSTEM=="usb", SYSFS{idProduct}=="0001",
    SYSFS{idVendor}=="19d2", GOTO="ZTE_Modem"

    LABEL="ZTE_ZeroCD"
    # This is the ZeroCD part of the card, remove
    # the usb_storage kernel module so
    # it does not get treated like a storage device
    #RUN+="/sbin/rmmod usb_storage"
    RUN+="/usr/sbin/usb_modeswitch -d 1 -v 0x19d2 -p 0x2000 -V 0x19d2 -P 0x0001"

    LABEL="ZTE_Modem"
    # This is the Modem part of the card, let's
    # load usbserial with the correct vendor
    # and product ID's so we get our usb serial devices
    RUN+="/sbin/modprobe usbserial vendor=0x19d2 product=0x0001",
    # Make users belonging to the dialout group
    # able to use the usb serial devices.
    MODE="660", GROUP="dialout"

    LABEL="ZTE_End"

    (4) Hago la prueba de conectar el módem. Siguiendo lo que pasa en el syslog:

    * primero se detecta el dispositivo de almacenamiento USB e inmediatamente entran en funcionamiento las reglas (rules) de udev, pasándose el módem a su estado natural y creándose los dispositivos necesarios:

    Dec 30 14:26:00 yerart kernel: [919610.912000] usb 2-1: new full speed USB device using uhci_hcd and address 15
    Dec 30 14:26:00 yerart kernel: [919611.068000] usb 2-1: configuration #1 chosen from 1 choice
    Dec 30 14:26:00 yerart kernel: [919611.088000] Initializing USB Mass Storage driver...
    Dec 30 14:26:00 yerart kernel: [919611.088000] scsi22 : SCSI emulation for USB Mass Storage devices
    Dec 30 14:26:00 yerart kernel: [919611.088000] usbcore: registered new interface driver usb-storage
    Dec 30 14:26:00 yerart kernel: [919611.088000] USB Mass Storage support registered.
    Dec 30 14:26:00 yerart kernel: [919611.204000] usbcore: registered new interface driver usbserial
    Dec 30 14:26:00 yerart kernel: [919611.204000] drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
    Dec 30 14:26:00 yerart kernel: [919611.204000] usbcore: registered new interface driver usbserial_generic
    Dec 30 14:26:00 yerart kernel: [919611.204000] drivers/usb/serial/usb-serial.c: USB Serial Driver core
    Dec 30 14:26:29 yerart kernel: [919640.400000] usb 2-1: USB disconnect, address 15
    Dec 30 14:26:33 yerart kernel: [919644.428000] usb 2-1: new full speed USB device using uhci_hcd and address 16
    Dec 30 14:26:33 yerart kernel: [919644.592000] usb 2-1: configuration #1 chosen from 1 choice
    Dec 30 14:26:33 yerart kernel: [919644.592000] usbserial_generic 2-1:1.0: generic converter detected
    Dec 30 14:26:33 yerart kernel: [919644.592000] usb 2-1: generic converter now attached to ttyUSB0
    Dec 30 14:26:33 yerart kernel: [919644.596000] usbserial_generic 2-1:1.1: generic converter detected
    Dec 30 14:26:33 yerart kernel: [919644.596000] usb 2-1: generic converter now attached to ttyUSB1
    Dec 30 14:26:33 yerart kernel: [919644.600000] usbserial_generic 2-1:1.2: generic converter detected
    Dec 30 14:26:33 yerart kernel: [919644.600000] usb 2-1: generic converter now attached to ttyUSB2
    Dec 30 14:26:33 yerart kernel: [919644.600000] usbserial_generic 2-1:1.3: generic converter detected
    Dec 30 14:26:33 yerart kernel: [919644.600000] usb 2-1: generic converter now attached to ttyUSB3

    Durante diez segundos se comprueban los dispositivos USB detectados y se observa el cambio de Bus 002 Device 015: ID 19d2:2000 a Bus 002 Device 016: ID 19d2:0001. También se ven los nuevos dispositivos creados en /dev:

    crw-rw---- 1 root dialout 188, 0 2007-12-30 14:26 ttyUSB0
    crw-rw---- 1 root dialout 188, 1 2007-12-30 14:26 ttyUSB1
    crw-rw---- 1 root dialout 188, 2 2007-12-30 14:26 ttyUSB2
    crw-rw---- 1 root dialout 188, 3 2007-12-30 14:26 ttyUSB3
    crw-rw---- 1 root dialout 254, 10 2007-12-30 14:26 usbdev2.16_ep00
    crw-rw---- 1 root dialout 254, 13 2007-12-30 14:26 usbdev2.16_ep02
    crw-rw---- 1 root dialout 254, 19 2007-12-30 14:26 usbdev2.16_ep03
    crw-rw---- 1 root dialout 254, 15 2007-12-30 14:26 usbdev2.16_ep04
    crw-rw---- 1 root dialout 254, 17 2007-12-30 14:26 usbdev2.16_ep05
    crw-rw---- 1 root dialout 254, 11 2007-12-30 14:26 usbdev2.16_ep81
    crw-rw---- 1 root dialout 254, 12 2007-12-30 14:26 usbdev2.16_ep82
    crw-rw---- 1 root dialout 254, 18 2007-12-30 14:26 usbdev2.16_ep83
    crw-rw---- 1 root dialout 254, 14 2007-12-30 14:26 usbdev2.16_ep84
    crw-rw---- 1 root dialout 254, 16 2007-12-30 14:26 usbdev2.16_ep85

    Los módulos cargados en el kernel son los siguientes:

    ~# lsmod |egrep -i '(usb)'
    usbserial 32488 0
    usb_storage 72256 0
    libusual 17936 1 usb_storage
    scsi_mod 142348 6 usb_storage,sbp2,sg,sr_mod,sd_mod,libata
    usbcore 134280 7 usbserial,usb_storage,libusual,ov511,uhci_hcd,ehci_hcd

    Finalmente la información del bus en proc confirma que el módem está en marcha:

    T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 16 Spd=12 MxCh= 0
    D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
    P: Vendor=19d2 ProdID=0001 Rev= 0.00
    S: Manufacturer=Qualcomm, Incorporated
    S: Product=ZTE CDMA Technologies MSM
    C:* #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA
    I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
    E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms
    E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
    E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
    E: Ad=85(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    E: Ad=05(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    I: If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
    E: Ad=83(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    E: Ad=03(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms

    Para completar la prueba, ejecutamos:

    gcom -d /dev/ttyUSB0 /usr/share/doc/gcom/examples/operator

    Que nos saca:

    ~# gcom -d /dev/ttyUSB0 /usr/share/doc/gcom/examples/operator
    SIM ready
    Waiting for Registration..(120 sec max)
    Registered on Home network: "movistar",2
    Signal Quality: 8,99
    Getting Operator list: .

    +ZUSIMR:2

    ==============================================================
    Format: (Access,Long Name, Short Name, Network ID [,Technology])
    Access: 2 - Registered, 1 - Available, 3 - Forbidden
    Technology: 0 - GSM/GPRS, 2 - UMTS (Not available on all cards)

    Enter the Network ID to attempt manual registration
    [blank = automatic selection]:
    Registration request accepted
    Command was: AT+COPS=0


    Espero que mi experiencia ayude. Lo único que queda es configurar wvdial como se indica en el artículo principal

    ResponderEliminar
  42. He seguido todos los pasos y llego al mismo punto que comenta Demian:
    "Me aparece casi exactamente lo mismo a exepcion de las ultimas 5 lineas no aparecen y el terminal queda como parpadeando sin opcion a teclearle algo mas entonces supongo que estoy listo para navegar por internet por que el LED del dispositivo deja de parpadear pero, no soy capaz de navegar en ninguna pagina."

    No se si será algun problema con los DNS.

    Alguien me podría orientar con el problema ?

    Muchas gracias y muy bueno el artículo !!!

    ResponderEliminar
  43. A demian y a rodolfo, creo que el problema no es del modem ni de la conexión, sino de la configuración de ppp0.

    Yo tengo el mismo problema y llevo unas horas dándole vueltas a la configuración de pppd y de firestarter, a ver si lo consigo.

    En cuanto sepa algo, lo publico aquí

    ResponderEliminar