[HOWTO] Como conectar Ubuntu / Kubuntu a Internet por móvil de Orange con tu móvil (en mi caso Blackberry) por Bluetooth

Imagen de rcm
rcm
0 puntos

Hola amigos. Día a día uso Kubuntu, y la pestaña de NetworkManager de Banda Ancha móvil estaba desactivada, el gestor de Bluetooth me resultaba errático, y blueman no me daba los resultados esperados. Instalé ubuntu-desktop (todo gnome) a ver si el soporte era mejor: igualmente me fue imposible conectar. Finalmente, tras darle mil y una vueltas, he pasado a vuelo manual xDDDD, y he conseguido conectar a Internet móvil de Orange (España) a través de la tarifa de datos que tengo contratada para mi Blackberry 9300, a la que se conecta por 3G, por bluetooth. En teoría debería funcionar con cualquier distribución (yo lo usé con Kubuntu/Ubuntu 64 bits, y Slax Linux), salvo la instalación de cosas en distribuciones no-apt, que dependiendo de cada cual será de una manera u otra.

Comentaros que necesitáis unos conocimientos más o menos básicos para poder seguir esto, pero vamos, está todo cortado y pelado.

Empezamos. Abrimos terminal.

sudo apt-get install bluez bluez-utils ppp wvdial

Antes de nada, nos pueden surgir problemas porque el demonio de Bluetooth no este activado (o porque seamos cazurros y lo desactivemos). El proceso se llama bluetoothd (si tenéis funcionando el gestor de de bluetooth de KDE o Gnome correctamente, es que lo tenéis bien). Si está desactivado, probad a reiniciar, si no:

sudo bluetoothd

Antes de seguir, podríamos aparear los dispositivos con el gestor de Bluetooth de nuestro entorno de escritorio (ya sabeis, buscar, conectar, etc). Tened en cuenta que para que vuestro PC encuentre el dispositivo lo tenéis que activar en el móvil, y que se esté mostrando. De todas formas, este paso no es fundamental (aunque os hará la cosa más fácil para conectaros con frecuencia). Una vez apareado, desde el PC o el mismo dispositivo podremos conectarlo (hablamos mas tarde de esto).

Para buscar redes

sdptool browse

Este detecta todos los dispositivos y todos sus canales (en este caso nos tendremos que fijar en el que indique "Service Name: Dialup Networking"), como lo que nos interesa es el DUN, que es el de internet, podemos directamente hacer

sdptool search DUN

Si alguno de los dos no os va, no os preocupéis, sacad los datos del otro. Es importante que tengamos el bluetooth del móvil "mostrándose" (esperando/escuchando conexiones) cuando hagamos esto anterior. Por supuesto, tendréis que configurar el móvil para que comparta las conexiones, si es que al dispositivo le es posible (si no, mejor que no sigáis xD).

Obtendremos algo tal que:
Inquiring ...
Searching for DUN on XX:XX:XX:XX:XX:XX ...
Service Name: Dialup Networking
Service RecHandle: 0x10000
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100

Esto nos muestra el dispositivo (XX:XX:XX:XX:XX:XX) y el canal del DUN (Channel: 1).

Hacemos

 sudo gedit /etc/bluetooth/rfcomm.conf

Lo dejamos asi:

#
# RFCOMM configuration file.
#

rfcomm0 {
#	# Automatically bind the device at startup
	bind yes;
#
#	# Bluetooth address of the device
	device XX:XX:XX:XX:XX:XX;
#
#	# RFCOMM channel for the connection
	channel	1;
#
#	# Description of the connection
	comment "Mi Blackberry Curve";
}

Sustituyendo el device y el channel por los que vimos antes, y el comment por lo que queráis.

Hacemos

sudo rfcomm connect 0

Esto "conecta" con el móvil (si no habéis emparejado antes, es posible que el móvil/dispositivo os pida la pass, que por defecto es 0000). Abrimos otro terminal.

Hacemos

sudo gedit /etc/wvdial.conf

Y metemos:

[Dialer defaults]
Modem = /dev/rfcomm0
Baud = 30720000
Dial Command = ATDT
Init1 = ATE1
Init2 = AT+CGDCONT=1,"IP","internet","",0,0
FlowControl = CRTSCTS
Init3 = ATM0
Phone = *99#
Username = orange
Password = orange
Stupid Mode = 1

"internet" es donde va el nombre del APN, que en el caso de Orange es, precisamente ese, internet. El username y password de Orange son orange para ambos, si teneis otra compañía estos datos serán diferentes. De hecho, quizá estas configuraciones no funcionen para ellos. NOTA: Lo he probado exitosamente también con Vodafone con el APN "airtelnet.es" y como usuario y contraseña vodafone.

Hacemos

sudo gedit /etc/ppp/peers/wvdial

y metemos:

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

Ahora hacemos

sudo gedit /etc/ppp/peers/wvdial-pipe

y metemos:

noauth
name wvdial
plugin passwordfd.so
defaultroute
replacedefaultroute

Hacemos, finalmente,

sudo wvdial

Y a volar!!!!!!!!!! Para ahora deberíais estar conectados. Si no obtenéis conexión, puede deberse a varias cosas. Podríais tener una conexión abierta de otra red (LAN, Wireless) mientras conectábais al móvil, luego la habéis cerrado para probar la conexión móvil, y ésta no funciona. Desactivad otras redes antes de conectar con el móvil.
También podrían ser las DNS (este fue mi caso cuando lo probé con Slax linux), vamos a descubrirlo.

ping -w 3 www.google.es

Si os responde correctamente, es que estáis conectados. Si no, probad:

ping -w 3 8.8.8.8

Si os responde este, pero no el anterior, es que os fallan las DNS. La solución es sencilla:

sudo echo "nameserver 208.67.222.222" >/etc/resolv.conf
sudo echo "nameserver 208.67.220.220" >>/etc/resolv.conf

Con estos dos comandos hemos añadido las DNS de OpenDNS. Ahora todo debería funcionar correctamente.

Hay unas últimas consideraciones a hacer.

Ya lo hemos configurado todo, pero ¿cómo desconectamos? y ¿cómo volvemos a conectar?
Los procesos "sudo rfcomm connect 0" y "sudo wvdial" se cierran haciendo Ctrl+C en la consola donde se ejecutan. Otra forma para cerrar ambos es matarlos mediante

sudo killall wvdial pppd rfcomm

Para volver a conectar, podemos hacer un script. El primero que os propongo es "silencioso", "ciego":

sudo rfcomm connect 0 & sleep 5 && sudo wvdial

El segundo que os propongo abre dos pantallas de xterm mostrando los procesos (debéis tener instalado xterm; sudo apt-get install xterm):

echo -e 'sudo xterm -e rfcomm connect 0 & sleep 5 && sudo xterm -e wvdial' >> ~/.conectbt.sh
chmod +x  ~/.conectbt.sh

Ahora teneis el script hecho, sólo teneis que crear un acceso directo a

gksudo sh ~/.conectbt.sh

Para desconectar, vamos a las pantallas donde se ejecutan los procesos, y hacemos Ctrl+C

Espero que os haya sido de utilidad!!