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
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; }
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
rfcomm0 { bind no; device 00:00:00:00:00:00; channel 1; comment "mi movil"; }
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 :)
Pero yo de movistar no me fio, cuanto costaría media hora o una hora conectado?
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.
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.
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
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.
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!
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
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

