Conectando a Internet Bluetooth/Nokia-3G.

[Ubuntu-Nokia-BT]Las posibilidades de interaccion con los teléfonos móviles de (pen)última generación, con o sin BT, en Ubuntu (GNU/Linux) es algo pobre e incompleta todavía, y no de mucha ‘facilidad de uso’ tal como la entendemos la mayoría; ventanas y ‘clicks’ de ratón.

Aunque no estoy muy seguro de que para algunas tareas administrativas, no repetitivas como esta, sea lo más conveniente. Con una buena receta puedes incluso ahorrar tiempo con las configuraciones basadas en texto, ya que controlas el proceso, y es más fácil corregir errores. Exige algo más de esfuerzo de comprensión y atención, aunque este último es relativo con cortar y pegar, pero al final todo se reduce a poner unas opciones; en vez de en unas casillas, en unas líneas de texto, y en lugar de usar del botón Aceptar se usa el de Grabar Archivo… Como disponemos de un entorno gráfico, con editor y explorador de fichero, no es engorroso.

Existen muchas recetas para poder conectar a Internet a través de un móvil GPRS/3G. Incluso algunas con el proceso “semi-asistido” por gnome-ppp o kppp. Pero ya puestos a abrir el terminal he optado por por hacerlo todo a mano, que es casí más fácil y rápido, y funcionó a la primera ….

Bueno, pues vamos a conectar Ubuntu 7.04 a Internet a través de un Nokia 6680 (Symbian S60) conectado, a su vez, al portátil por Bluetooth.

Antes mencionar que detectó y montó enseguida el dispositivo USB, y se mostró el applet con el símbolo del estandard BT y un balón informativo diciendo que el dispositivo estaba detectable para cualquiera. El applet en sí tiene pocas opciones. Permite ocultar o descubrir el dispositivo a terceros, y responde a las solicitudes de acceso o emparejamiento. Si no te apareciera, puede que no tengas instalados el paquete requerido; bluez-gnome, o que el applet esté desactivado. Se debe encontrar en el menú Sistema=>Preferencias con el nombre Preferencias de Bluetooth. En cualquier caso, para lo que nos trae aquí, supondremos que tenemos BT funcionado correctamente.

Como paso previo necesitaremos instalar el paquete bluez-utils. Lo que puedes hacer desde el Gestor de paquetes Synaptic en Sistema=>Administración .

[Pin Bluetooth Nokia]

  La primera tarea pues es emparejar los dispositivos para que la conexión sea automática. Lo más cómodo es iniciar el proceso desde el móvil:

Bluetooth=>Dispositivos Vinculados=>Opciones=>Disp. vincul. nuevo

Lo detectará, lo seleccionamos, introducimos las claves en ambos, y aceptamos las conexiones automáticas al Nokia.
  Ahora lo que sigue está basado en la documentación oficial, aunque con pequeñas variaciones:

Emulación del puerto serie

  • Primero hay que averiguar la MAC del teléfono haciendo:

hcitool -scan

Y que nos devuelve algo como esto:

00:13:FD:FF:FF:FF    Nokia 6680

  • Ahora averiguar el canal donde el Nokia presta el servicio Dialup Networking:

sdptool browse 00:13:FD:FF:FF:FF

Que nos entrega una salida muy larga, estará al principio:


Service Name: Dial-Up Networking
Service RecHandle: 0x10000
Service Class ID List:
  "Dialup Networking" (0x1103)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    
Channel: 1
......

  • Ahora miraremos que interface rfcomm tenemos libre.

Tecleamos el comando rfcomm, sin parámetros, que nos listará los interfaces que tenemos configurados previamente; rfcom0, rfcom1 etc… Lo normal es que no devuelva nada. Con lo que editamos el fichero rfcomm.conf, como root:

sudo gedit /etc/bluetooth/rfcomm.conf

y añadimos:

rfcomm0 {
    # Automatically bind the device at startup
    bind yes;
    # Bluetooth address of the device
    device
00:13:FD:FF:FF:FF;
    # RFCOMM channel for the connection
    channel
1;
    # Description of the connection
    comment "Nokia 6680 Bluetooth PPP connection";
}

  • Reiniciamos el servicio Bluetooth

sudo /etc/init.d/bluetooth restart
  * Restarting Bluetooth services    [ OK ]

Ahora si hacemos rfcomm nos devolverá:

rfcomm0: 00:13:FD:FF:FF:FF channel 1 clean

PPP

Creamos, como root, los dos ficheros que serán los que gobernarán el proceso de conexión. Asumimos el mismo nombre que el del ISP, en este caso; movistar. Aunque puede ser cualquiera.
Aquí dependemos tanto del operador que sea como del modelo de teléfono, aunque los ficheros que vienen por omisión en la documentación funcionan a la perfección para movistar y el Nokia 6680.

Fichero
/etc/ppp/peers/movistar /etc/chatscripts/movistar
Contenido
debug
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/movistar"
usepeerdns
/dev/rfcomm0 115200
defaultroute
user
MOVISTAR
crtscts
lcp-echo-failure 0
TIMEOUT 35
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' \rAT
OK 'AT+CGDCONT=1,"IP","
movistar.es"'
OK ATD*99***
1#
CONNECT ""

Cuida que no haya lineas en blanco al principio de los ficheros.

Si eres de otra operadora deberás cambiar los valores indicados en color. Si hay problemas intenta alguna de las configuraciones adicionales indicadas.

Usuario y contraseña

El nombre de usuario y la contraseña son dummies en el caso de movistar, y por lo tanto no son necesarios. Pero no en todos los proveedores, especialmente Europeos, es así, por lo que prefiero ponerlo para generalizar el procedimiento.

Tendremos que editar el fichero /etc/ppp/pap-secrets y añadir la línea:

MOVISTAR * MOVISTAR

Si borramos, o no ponemos, la línea “user MOVISTAR” del fichero /etc/ppp/peers/movistar, se enviará el nombre de la máquina y una contraseña, imagino que dummie, en su lugar. Pero funcionará igual.

Red

Tenemos que crear el interface de red para el dispositivo hci0, que sería el nuestro, editando como root:

sudo gedit /etc/network/interfaces

y añadir al final del fichero:

iface hci0 inet static

Puede ser que tengamos más dispositivos BT, como un ratón o de Audio. Podemos comprobar los dispositivos con el comando hciconfig, a secas. Los identificaremos por su número en BD Adress. Así sabremos si es hci0,hci1…

Iniciando

Los comandos de inicio/parada son pon y poff, respectivamente:

Para iniciar: Para parar:
pon movistar poff movistar


Tendrás que deshabilitar los otros interfaces de red activos durante la conexión, ya que si no, la máquina se puede ‘liar’ a la hora de buscar la ruta a Internet. Esto lo puedes hacer desde el applet de configuración de red. Haz ‘click’ izquierdo, abre configuración manual… del menu contextual y desmarca los interfaces activos para detenerlos.

Puedes ver los interfaces de red de tu equipo con ifconfig donde aparecerá ppp0 que sería nuestra configuración dialout, salvo que tengamos otras.

Diagnóstico y problemas

Yo, como he dicho, no he encontrado ninguno. Pero para diagnosticar, aparte del consabido ‘ping’ a alguna web, se puede analizar las entradas del fichero /var/log/syslog. Mejor que cargarlo en un editor, en Gnome, tenemos la aplicación Sucesos del sistema que se encuentra en Sistema=>Preferencias. Hay que abrir el fichero expresamente si no te aparece en la lista.

Habrá que buscar una línea como la siguiente, que indica el inicio del proceso de conexión:

May 18 20:48:44 localhost pppd[20400]: pppd 2.4.4 started by Usuario, uid 1000

Donde Usuario es tu nombre de inicio de sesión. Las entradas que aparecen a continuación son muy explicativas, ya que indicamos debug en el script.

Si dejas Sucesos del sistema abierto durante la conexión se irá actualizando en tiempo real, pudiendo ver, de esta menera, los mensajes de acierto o error cuando se producen.

Para ver los sucesos del proceso de desconexión buscar una línea como esta:

May 18 21:10:40 localhost pppd[20400]: Terminating on signal 15

Autorizar al usuario

Puede ser que tengas que hacer esto:

sudo adduser Usuario dialout

Para autorizar a un determinado Usuario a realizar conexiones dialout.

Firewall

En una de las pruebas sucedio que tenía activo el firewall Firestarter, y no podía acceder a Internet, apareciendome errores como el siguiente en syslog:

May 18 23:03:56 localhost kernel: [10101.180000] Unknown OutputIN= OUT=ppp0 SRC=81.20.XXX.XXX DST=195.173.XXX.XXX LEN=56 TOS=0×00 PREC=0×00 TTL=64 ID=25463 DF PROTO=UDP SPT=1048 DPT=53 LEN=36

Tendrás que configurar el firewall o deshabilitarlo durante las conexiones por móvil.

Enlace Bluetooth

Podemos chequear la calidad del enlace de radio durante la conexión, por ejemplo, con el móvil a unos 5 metros,:

hcitool lq 00:13:FD:FF:FF:FF
   Link quality: 168

u otros parámetros como:

hcitool tpl 00:13:FD:FF:FF:FF
   Current transmit power level: -8