Conexión a Internet por bluetooth mediante el móvil en Ubuntu

Usar Internet para muchos de nosotros ha pasado de ser un artículo de lujo a una necesidad. Y muchas veces he echado en falta una conexión cuando he estado fuera, teniendo que tirar del Opera Mini en mi móvil con su minúscula pantalla.

Pero eso se acabó, porque a partir de ahora si salgo fuera me llevaré el portátil, y esté donde esté me conectaré a internet mediante el móvil. Al menos mientras FON no consiga la utopía de tener Internet inalámbrico en cualquier parte del mundo.

Para ello necesitamos un PC (un portátil a poder ser, para poder encontrarle utilidad) con Ubuntu, un bluetooth USB, y un móvil con bluetooth.

En Ubuntu instalaremos los siguientes paquetes:

$ sudo apt-get install bluez-utils ppp wvdial

Editamos hcid.conf para configurar el dispositivo bluetooth USB:

$ sudo vi /etc/bluetooth/hcid.conf

Y lo dejamos con las opciones siguientes:

hcid.conf
  1. options {
  2. autoinit yes;
  3. security auto;
  4. pairing multi;
  5. passkey "1905";
  6. }
  7. device {
  8. name "%h-%d";
  9. class 0x3e0100;
  10. iscan enable; pscan enable;
  11. discovto 0;
  12. lm accept;
  13. lp rswitch,hold,sniff,park;
  14. }

Ejecutamos lo siguiente para comprobar que nuestro dispositivo está configurado correctamente: 

$ sudo hciconfig -a

Y obtenemos el ID de nuestro móvil con la herramienta hciscan

$ hciscan

Editamos rfcomm.conf para configurar la conexión serie con nuestro móvil:

/etc/bluetooth/rfcomm.conf
  1. rfcomm0 {
  2. bind no;
  3. device 00:00:00:00:00:00;
  4. channel 1;
  5. comment "mi movil";
  6. }

Ponemos bind a no (#2) para hacer pruebas primero, pero luego lo pondremos a yes. En device debes poner el ID de tu móvil que obtuviste con hciscan.

Reiniciamos el dispositivo bluetooth USB con:

$ sudo /etc/init.d/bluetooth restart

Comprobamos que se puede efectuar una conexión serie:

$ sudo rfcomm connect 0

Después de introducir el PIN en teléfono y PC, debe salir:

Connected /dev/rfcomm0 to 00:16:4E:6A:17:30 on channel 1
Press CTRL-C for hangup

Reintentar la conexión si se colgara por introducir el PIN. 

Ahora sí, en rfcomm.conf (/etc/bluetooth/rfcomm.conf) ponemos

bind yes;

Volvemos a reiniciar bluetooth, y cargamos el módulo del kernel ppp_async con:

$ sudo modprobe ppp_async

Y añadimos ppp_async a /etc/modules para que se cargue automáticamente en cada reinicio del PC.

Editamos /etc/ppp/peers/wvdial con el siguiente contenido:

hide-password
noauth
name wvdial
debug
usepeerdns
defaultroute
noipdefault
mtu 472

Editamos /etc/wvdial.conf

[Dialer Defaults]
Modem = /dev/rfcomm0
Baud = 115200
Init = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 FCLASS=0
Init3 = AT CGDCONT=1,"IP","movistar.es","",0,0

Phone = *99#
ISDN = 0
Username = ''
Password = ''
New PPPD = yes

Esa configuración es para Movistar. Los datos para Yoigo son: 

...
Init3 = AT CGDCONT=1,"IP","internet"
Phone = *99***1#
...

Desconozco los datos de otras operadoras.

Y para conectar, simplemente ejecutamos wvdial:

$ wvdial

Espero que todo haya ido bien :) 

 

11 pensamientos en “Conexión a Internet por bluetooth mediante el móvil en Ubuntu”

  1. ¿Movistar? Barato, barato… 0,50¤/MB cada 10 minutos. Cada vez que conectes, de entrada, 50 centimazos que pierdes. Un chollo. Benditas empresas de telecomunicaciones españolas…

  2. Quería hacer lo mismo, pero conectando el teléfono al portátil mediante un cable USB. Supongo que la configuración será la misma, sólo que obviando toda la conexión por bluetooth y cambiando

    Modem = /dev/rfcomm0

    por

    Modem = /dev/ttyUSB1

    o lo que salga.

    Sólo una pregunta: el número al que hay que marcar es ese? En todos los lados habia visto que era el mismo que tu has puesto para Yoigo. Además, había leído que usuario y contraseña era ‘movistar’.

    De todos modos, si tu lo has probado y funciona, vamos a ello!

    Gracias por la información.

  3. Javier,

    Este post es buenísimo y quiero felicitarte por él, hace tiempo que busco como hacer lo que explicas y no habia podido porque me fallaban los tutoriales que intentaba.

    Me gustaría comentarte que he tenido que hacer dos cambios para que me funcionara con Movistar en un Nokia 6021.

    1.- He puesto el número de teléfono que has puesto para Yoigo

    2.- He retirado la linea INIT2 ya que la secuencia de comandos me daba error y no conectaba.

    El problema lo tengo con un Samsung E530 con Yoigo que me da error de conexión:

    "Can’t connect RFCOMM socket: Connection refused"

    Me puedes ayudar?? Alguna sugerencia??

    Saludos y muchas gracias.

  4. Hola Javier,

    Antes de nada felicitarte por el blog, este es uno de los que me ha salvado de mas de un apuro.

    En cuanto a este tutorial despues de pelearme un poco (hay alguna cosilla que la he tenido que hacer diferente) hay una cosa que no veo clara (soy nuevo en el tema linux, uso UBUNTU). No entiendo la parte de "añadimos ppp_async a /etc/modules".

    He seguido con el tutorial i al hacer wdial me aparece:

    –> WvDial: Internet dialer version 1.56

    –> Cannot get information for serial port.

    –> Cannot open /dev/rfcomm0: Success

    Si me puedes echar un cable te lo agradeceré

    Gracias

    Enric

  5. Con "añadir ppp_async a /etc/modules" quiero decir que añadamos una línea a /etc/modules con ppp_async, para que se cargue ese módulo automáticamente al iniciar el PC.

    Sobre lo demás, lo que dice es que no consigue conectar con tu móvil por el puerto serie. Yo no soy un experto en estos temas, por lo que no sé qué puede ocurrir. Tan sólo vuelve a seguir los pasos de nuevo uno a uno, y anótalos. Si no te funciona envíamelos y veré si puedo ayudarte.

    Un saludo.

  6. Solo quiero saber que puedo hacer para conectarme a internet por mi celular pero via bluetooth siempre me pide un numero de telefono para marcar y conectase que puedo hacer

  7. Gracias, parte de tus instrucciones han servido para conectar con un Nokia E65, Vodafone contra un portátil ThinkPad X61s en Ubuntu Gutsy.

    Digo "parte" porque hay cambios. De paso, los datos de la operadora que te faltaba: Vodafone. Van:

    - En /etc/bluetooth/rfcomm.conf el channel es 2. Lo vi en otro blog buscando configuraciones del rfcomm de usuarios de Nokia serie N o E.

    - No hay que tocar /etc/ppp/peers/wvdial. No he mirado porqué, simplemente al conectar relacioné el error de wvdial con algun parámetro de este archivo, lo retrocedí entero, funcionó y no he investigado más.

    - Mi wvdial.conf es una mezcla de cosas pilladas en diferentes lugares: gente que conecta a Vodafone, gente que tiene Nokia serie N o E:

    <blockquote>

    $ cat /etc/wvdial.conf

    [Dialer Defaults]

    Phone = *99***1#

    Username = vodafone

    Password = vodafone

    Stupid Mode = 1

    Dial Command = ATDT

    [Dialer e65]

    Modem = /dev/rfcomm0

    Baud = 460800

    Dial Command = ATDT

    Init1 = ATZ

    Init2 = ATM0

    Init3 = AT+CGDCONT=1,"IP","ac.vodafone.es";

    FlowControl = crtscts

    Modem Type = Analog Modem

    </blockquote>

    Veo que debo hacer "wvdial e65" con sudo para que tenga permiso de acceso a diferentes configuraciones del PPP. El usuario de Ubuntu está en el grupo dialout, ya lo miraré. No sé si Gnome PPP servirá para conectar con algo gráfico. Ahora que sé que funciona, toca afinarlo un poco ;)

    Gracias!

  8. Muchísimas gracias por el tutorial, estoy pegando saltos de alegría. Ya puedo conectarme donde quiera con mi EEEPC y Yoigo jeje.

    Me parece que tienes dos líneas mal:

    Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 FCLASS=0

    Y tendría que ser…

    Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

    Init3 = AT+CGDCONT=1,"IP","internet"

    Y tendría que ser…

    Init3 = AT CGDCONT=1,"IP","internet"

    Es lo único que he tenido que cambiar para que me funcionara porque me daba errores al conectarse a internet.

    La "correción" la he sacado de aquí:

    http://www.guia-ubuntu.org/index.php?title=Yoigo

  9. Hola Javier, no se si me recuerdas: me ayudaste a hacer la conexión a Internet por bluetooth mediante el móvil con otras versiones de linux, que publiqué en mi web (haciendo la pertinente referencia a tu ayuda).
    La cuestión es que ahora uso el Kubuntu 9.10 y… por abreviar, me llama la atención que al ejecutar

    $ sudo modprobe ppp_async

    El sistema me informa de lo siguiente:
    WARNING: All config files need .conf: /etc/modprobe.d/em8300, it will be ignored in a future release.

    Con mi primario inglés deduzco que me está diciendo algo como…”OJITO: todos los ficheros config necesitan .conf” a lo que añade… (el fichero)/etc/modprobe.d/em8300 será ignorado en la futura versión

    El caso es que verifico todos los pasos, creo que si consigo conectar el movil (cuando ejecuto “sudo rfcomm connect 0″, me contesta
    “Connected /dev/rfcomm0 to 00:1E:A3:C1:6B:30 on channel 1
    Press CTRL-C for hangup”

    Pero… cuando rebooteo y doy la orden
    wvdial

    me contesta:
    –> WvDial: Internet dialer version 1.60
    –> Cannot open /dev/rfcomm0: No such file or directory
    –> Cannot open /dev/rfcomm0: No such file or directory
    –> Cannot open /dev/rfcomm0: No such file or directory

    Te copio los ficheros que he editado:

    mi actual /etc/bluetooth/hcid.conf:

    options {
    autoinit yes;
    security auto;
    pairing multi;
    passkey “1905″;
    }
    device {
    name “%h-%d”;
    class 0x3e0100;
    iscan enable; pscan enable;
    discovto 0;
    lm accept;
    lp rswitch,hold,sniff,park;
    }

    mi actual /etc/bluetooth/rfcomm.conf/etc/bluetooth/rfcomm.conf:

    #
    # RFCOMM configuration file.
    #

    rfcomm0 {
    # # Automatically bind the device at startup
    bind yes;
    #
    # # Bluetooth address of the device
    device 00:1E:A3:C1:6B:30;
    #
    # # RFCOMM channel for the connection
    channel 1;
    #
    # # Description of the connection
    comment “Nokia 6085″;
    }

    mi actual /etc/modules (este… no estoy seguro si había que editarlo: no me suena haberlo hecho las otras veces)

    # /etc/modules: kernel modules to load at boot time.
    #
    # This file contains the names of kernel modules that should be loaded
    # at boot time, one per line. Lines beginning with “#” are ignored.

    lp
    ppp_async

    mi actual etc/ppp/peers/wvdial

    hide-password
    noauth
    name wvdial
    debug
    usepeerdns
    defaultroute
    noipdefault
    mtu 472

    mi actual /etc/wvdial.conf (para Yoigo)

    [Dialer Defaults]
    Modem = /dev/rfcomm0
    Baud = 115200
    Init = ATZ
    Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 FCLASS=0
    Init3 = AT CGDCONT=1,”IP”,”internet”

    Phone = *99***1#
    ISDN = 0
    Username = ”
    Password = ”
    New PPPD = yes

    ¿Ideas?
    Salu2, Alberto

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>