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

hace 3 años y 5 meses - 6486 visitas

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 :) 

 


autor

Javier Pérez de la Axarquía

Padre, marido, amante, humanista, programador, escritor, emprendedor... y algunas cosas más que aún no sé que soy.

etiquetas
artículos relacionados
comentarios
avatar de magarto
#1
magarto - hace 3 años y 5 meses ir arriba escribe un comentario
Interesante
avatar de IaRRoVaWo
#2
IaRRoVaWo - hace 3 años y 5 meses ir arriba escribe un comentario
Interesante y muy útil. Muchas gracias.



Pero yo de movistar no me fio, cuanto costaría media hora o una hora conectado?
avatar de javier.perez
#3
javier.perez - hace 3 años y 5 meses ir arriba escribe un comentario
¿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...
avatar de Xavi Ivars
#4
Xavi Ivars - hace 3 años y 4 meses ir arriba escribe un comentario
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.
avatar de McNolo
#5
McNolo - hace 3 años y 1 mes ir arriba escribe un comentario
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.
avatar de Enric
#6
Enric - hace 3 años y 1 mes ir arriba escribe un comentario
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
avatar de javier.perez
#7
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.
avatar de Romero
#8
Romero - hace 3 años y 2 días ir arriba escribe un comentario
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
avatar de Benjamí
#9
Benjamí - hace 2 años y 10 meses ir arriba escribe un comentario
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!
avatar de Daniel_Laixer
#10
Daniel_Laixer - hace 1 año y 11 meses ir arriba escribe un comentario
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í:

www.guia-ubuntu.org/index.php?title=Yoigo
avatar de Alberto
#11
Alberto - hace 6 meses y 15 días ir arriba escribe un comentario
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
escribe un comentario

Se permite código HTML: <a> <img> <b> <strong> <em> <i> <strike> <p>

#12
- hace 1 segundo
Normas de uso
El autor del comentario se hace responsable del contenido de éste. En caso de que el autor del comentario infringiera alguna ley, se ofrecerán todos los datos necesarios a las autoridades pertinentes para que tomen las medidas oportunas.
Se debe escribir correctamente en el mismo idioma del artículo que se comenta. En caso contrario podría ser eliminado.
El comentario debe ceñirse a la temática del artículo.

En la siguiente lista de palabras, haz clic en bluetooth:
  1. conexion
  2. a
  3. internet
  4. por
  5. bluetooth
  6. mediante
  7. el
  8. movil
  9. en
  10. ubuntu
Esta pregunta es para evitar comentarios spam. Perdón por las molestias.