Archivo de la etiqueta: bluetooth

Hacer tethering WiFi con tu Nokia N900

Recientemente he instalado uno de los programas más útiles que he visto para mi Nokia N900. Se trata de JoikuSpot, un software muy ingenioso y bien hecho que convierte nuestro Nokia favorito en un Punto de Acceso WiFi / Router que redirecciona la salida hacia la conexión 3G del móvil. Es software comercial, pero el precio son actualmente solo 5€, merece la pena, te lo aseguro.

Cualquier otro dispositivo WiFi que tengamos (un iPod Touch, un ordenador portátil, un Netbook, otro teléfono…) verá que en su pantalla aparece un Punto de Acceso WiFi llamado JoikuSpot al que puede conectarse libremente. Obviamente, el software ofrece posibilidades de encriptación, aunque solo WEP, no WPA. No creo que sea demasiado problema, porque es una conexión móvil muy dificil de predecir para quien pretenda romper las contraseñas. En cualquier caso, cuando el programa está activo muestra en pantalla dos gráficos con la velocidad de transmisión de datos y permite ver qué dispositivos están conectados.

En mi opinión, es el mejor tethering que he probado nunca con un teléfono móvil y es mucho más fácil de configurar para los dispositivos clientes que usando Bluetooth.

Aparte del problema de la seguridad inherente a WEP, también son a mencionar otros dos:

  1. Necesitas un plan de datos con tarifa plana, porque si no la compañía telefónica se te va a comer vivo. Pero eso es de cajón… ;-)
  2. Cuando el programa está funcionando, está usando simultaneamente dos señales de radio distintas: 3G y WiFi, lo que no es muy normal. Y el WiFi, además, en un modo que chupa energía como loco. Eso significa que JoikuSpot te va a devorar batería cual monstruo de las galletas (y la batería del N900 no destaca precisamente por su larga duración). Cuando digo que la verás desaparecer delante de tus ojos, posiblemente pienses que exagero… te aseguro que hasta me quedo corto… Pero obviamente existe un workaround muy sencillo, tanto que también es de cajón: cuando uses JoikuSpot para conectar tu ordenador, o lo que sea, simplemente deja el Nokia N900 cargando. :-D

Configurar Gnome para conectarse a Internet a través de un teléfono 3G

En otra sección te contaba cómo conectar tu ordenador portátil a Internet usando un teléfono 3G Nokia E71 (y, por extensión, cualquier móvil con sistema Symbian). Te recomiendo que vayas allí, porque los sistemas que especifico en esa sección para configurar la conexión son el estándar. Lo que te voy a contar ahora funciona, pero con algunos problemas que puede que no te interesen (principalmente problemas de permisos y de errores en la conexión). Así que lo que viene a continuación es más bien para frikis. Dicho queda.

Vale, los scripts están muy bien, pero puede que a algunos usuarios les guste más conectarse a golpe de ratón, como en Windows, sin necesidad de abrir una ventana de comandos. ¿Puede hacerse?. Pues sí, claro, por lo menos en Gnome. Y supongo que también habrá alguna forma de hacerlo en KDE. Pero como ahora mismo mi portátil está usando Fedora 8 y Gnome, ahí va una posible forma de hacerlo que queda bastante elegante, aunque ya digo que da algunos problemas que no he conseguido resolver.

Para simplificar, Vamos a obviar esta vez cómo crear el enlace bluetooth entre el teléfono y el ordenador (ya lo he contado varias veces). Si no sabes cómo conseguir que tu teléfono quede linkado a un dispositivo /dev/rfcomm1, puedes consultarlo en otra sección de esa misma web.

Una vez linkados el ordenador y el teléfono, tenemos que configurar la conexión a Internet, usando el móvil como un modem. Para ello vamos a usar el programa «system-config-network». En el caso de Fedora, puedes entrar en el Menú Sistema, Administración, y arrancar «Control de Dispositivos de Red». Esto arrancará «system-config-network».

Verías tal que esto (observa que en el screenshot el trabajo ya está hecho y hay un dispositivo para nuestra conexión 3G):

*

Vale, ahora haz click en «Configurar». Seguramente ahora te pedirá la contraseña de root, porque lo que vas a hacer exige que seas administrador. Y entonces te sacará este otro cuadro de diálogo:

*

Bien, vamos a crear una nueva conexión modem con nuestro teléfono. Para ello, haz click en el botón «Nuevo». Aparecerá otro cuadro de diálogo en el que nos pregunta qué tipo de dispositivo. Ahí elige «Conexión de modem». A continuación te saca otro cuadro en el que te pregunta los datos de tu proveedor, que tienes que conocer. En el caso de Vodafone, por ejemplo, tendrías que poner el número telefónico «*99***1#», el nombre de inicio de sesión «vodafone» y las contraseña «vodafone». El nombre del proveedor es lo que tu quieras, por ejemplo «Vodafone3G». El Prefijo y el Codigo de Area se dejan en blanco.

A continuación te pregunta por la configuración IP. Ahí tienes que marcar la opción «Obtener las configuraciones automáticamente» y también la opción «Obtener información de DNS automáticamente».

Con esto se crea un nuevo dispositivo ppp0 y regresas al cuadro de diálogo del anterior screenshot. Ahora vete a la pestaña «Hardware» y pulsa el botón «Nuevo». Cuando te pregunte «Tipo de hardware» selecciona «Modem». En «Dispositivo del módem» pon el dispositivo bluetooth de tu teléfono, por ejemplo «/dev/rfcomm1». La «velocidad en baudios» sería 460800, y «Control de flujo» sería «Hardware (CRTSCTS)». En «Volumen del módem» pon «apagado», y marca la casilla de «usar marcación por tonos». Con esto se crearía un nuevo hardware que se llamará por ejemplo «Modem0», y regresas otra vez al cuadro de diálogo del anterior screenshot.

Vamos a repasar para que quede clarito.

Entra en la pestaña «Dispositivos», selecciona el dispositivo ppp0 que creaste antes y le das a «Modificar». Verías todas las opciones de antes y alguna más. Por ejemplo, en la pestaña «General», tendrías que ver algo así:

*

Es importante que esté marcada la opción «Permitir que todos los usuarios habiliten y deshabiliten el dispositivo», porque si no tendrás que volverte root para poder conectarte a Internet.

En la pestaña «Ruta», estaría todo en blanco, porque es para rutas estáticas y nosotros queremos las dinámicas. La pestaña «Proveedor» mostraría esto:

*

En la pestaña «Compresión», pueden estar todas las casillas desmarcadas. En la pestaña Opciones puedes dejar todo en blanco. En la pestaña «Avanzado», modifícalo para que quede algo así:

*

La cadena de inicialización del módem puede estar en blanco y puede que funcione. Yo tengo esta otra que viene a significar «poner todo a cero», y que también me funciona. Tú puedes dejarlo en blanco, probar con la secuencia más clásica (que es ATZ) y si no te va, probar con la que he puesto yo.

Acuérdate de marcar la casilla «dejar que PPP haga toda la negociación», porque si no puedes obtener extraños errores de tipo «no se permite abrir/no se permite cerrar el puerto serie».

Vale, pues regresas al cuadro de diálogo de «Configuración de red» y ahora entra en la pestaña «Hardware».

*

Elige el modem que acabas de crear y pulsa en «Modificar». Verías esto:

*

En la pestaña DNS puedes meter servidores DNS que quieras, a tu gusto. Por ejemplo:

*

Observa que en «Ruta de búsqueda DNS» yo tengo metido «dancerine». Esa es mi red local, así que si necesita una IP, el portátil preguntará primero a la red local, pero tu puedes dejar en blanco ese apartado.

Del mismo modo, en «Hosts», puedes dejarlo en blanco salvo que tengas una red local y una máquina que no tenga nombre oficial. Por ejemplo yo tengo:

*

Pues ya está todo configurado. Ahora cierra y regresas al primer cuadro de diálogo de todos:

*

Desde ahí, puedes conectarte y desconectarte. Tan simple como seleccionar ppp0 y pulsar en «Activar» para conectarte a Internet, o «Desactivar» para colgar el teléfono y desconectar. Facil, ¿no?.

¿Puedo conectar el portátil a un móvil Nokia E71?

Si tienes un teléfono Nokia E71 (precioso teléfono, por cierto), seguramente querrás usarlo como módem para conectar tu portátil Linux a Internet, a través de un cable de datos USB o una conexión Bluetooth. ¿Se puede?. Pues claro que sí. De hecho, teóricamente se podría conectar exactamente igual cualquier teléfono Symbian. Y es mucho más fácil y cómodo de hacer que con el puñetero protocolo PAN que usan los dispositivos Windows Mobile, porque el bluetooth Symbian ofrece un perfil DUN clásico, con lo que la comunicación entre el ordenador (o la PDA) y el teléfono, se autorizan de antemano y a partir de ahí será todo automático sin que tengas que tocar el móvil para nada.

Y por supuesto, todo eso puede configurarse en el Linux de tu portátil sin demasiados problemas.

a verlo siguiendo este esquema (las opciones marcadas con asterisco son las que yo te recomiendo por su sencillez y comodidad en el uso):

*

*

Si quieres usar el cable de datos lo tienes muy, muy fácil. Por lo menos con Ubuntu y Fedora. Lo siento, no he probado con Gentoo, pero teóricamente debería funcionar igual. Y es que el teléfono es reconocido automáticamente como modem de banda ancha en cuanto lo enchufas por USB al ordenador. La única precaución es que tienes que tener configurado el USB del teléfono para que utilice el modo «PC Suite», y no el modo de almacenamiento masivo.

Si por cualquier motivo el ordenador no te ofrece de mano configurar el nuevo modem, es tan sencillo como ir al gestor de red, hacer click con el botón derecho del ratón y elegir «Editar conexiones».

*

Ahora vete a la pestaña de Banda Ancha y pulsa en «Añadir». Saldrá un asistente en el que lo único que tienes que hacer es especificar tu país, y tu compañía de teléfonos (en mi caso es Vodafone). Vale, pues ya está.

*

Una vez hecho eso, si haces click con el botón izquierdo del ratón en el gestor de red (naturalmente con el teléfono enchufado por USB), verás que ya no salen solo las redes inalámbricas WiFi, sino que también aparece la red de Banda Ancha Vodafone (o la que uses tú). Pues la eliges, y el ordenador se conectará a Internet directamente. Más fácil no puede ser. :-)

*

El cable de datos, sin embargo, es un pequeño engorro. Seguramente tú prefieres usar Bluetooth, ¿verdad?. ;-)

Lo primero de todo es configurar una conexión Bluetooth entre el teléfono y el ordenador. Eso, en si mismo, no debería suponer ningún problema, pues está bastante bien documentado y puede encontrarse googleando un poco, pero en fin.

Si tu ordenador portátil no tiene Bluetooth, necesitarás un USB Dongle, por ejemplo sirven los de Conceptronic. Deberías poder consultar la lista del hardware soportado por Linux en la página Bluetooth Hardware Support for Bluez, pero si vas a mirar te encontrarás con una sorpresita bastante curiosa: que como esos dispositivos no dan soporte en Linux, podría ser ilegal decir que, de hecho, funcionan en Linux, así que la lista ha desaparecido… Increíble, ¿no?. En fin, googlea un poco y encontrarás un dispositivo USB adecuado. Luego, habrá que configurarlo para que funcione. Y a eso vamos.

Si usas Fedora o Ubuntu, lo tienes muy fácil, porque las utilidades para Bluetooth se instalan de serie y funcionan automáticamente. Así que solo tienes que poner el teléfono en modo visible y hacer una búsqueda en el ordenador (o al revés) para emparejarlos con su correspondiente contraseña. Una vez emparejados, ya puedes poner el teléfono en modo oculto, porque el ordenador lo reconocerá sin necesidad de hacer nada más.

En el caso de Gentoo no es tan automático, pero tampoco tiene tanto misterio y está ampliamente documentado por ahí. Pero por si acaso, también te lo especificaré adecuadamente. De nada.

Nota sobre Gentoo

Ya sabes que Gentoo no instala casi nada por defecto, así que tendrás que emerger todas las utilidades Bluetooth antes que nada.

[lacofi@lynette ~]$ su
password:
[root@lynette /home/lacofi]# emerge bluez-utils gnome-bluetooth kdebluetooth

Una vez instalado Bluez, tienes que arrancar el demonio bluetooth:

[root@lynette /home/lacofi]# /etc/init.d/bluetooth start

Y si quieres, mete este demonio en los script de inicio para que se ponga en marcha automáticamente en cada arranque.

[root@lynette /home/lacofi]# rc-update add bluetooth default

Ahora tienes que configurar la conexión con el teléfono. Asegúrate de que la configuración Bluetooth del móvil está ajustada para que el teléfono sea detectable por otros dispositivos. Si no, vas de cráneo. ;-)

Una vez que tu teléfono es visible para las redes Bluetooth, puedes pedirle a Linux que lo busque:

[root@lynette /home/lacofi]# hcitool scan
Scanning ...
        08:00:1F:2D:8B:4F       nokiacofi

Vale. Lo ha encontrado, y ya sabes cual es su dirección MAC (08:00:1F:2D:8B:4F). Ahora consulta qué servicios ofrece el teléfono para comprobar que uno de ellos es «Dial-up Networking». Esto, además te proporcionará otro dato importante: el canal.

[root@lynette /home/lacofi]# sdptool search DUN
Inquiring ...
Searching for DUN on 08:00:1F:2D:8B:4F ...
Service Name: Dial-up Networking
Service RecHandle: 0x10002
Service Class ID List:
  "Dialup Networking" (0x1103)
  "Generic Networking" (0x1201)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 2
Profile Descriptor List:
  "Dialup Networking" (0x1103)
    Version: 0x0100

El canal es el 2, ¿has visto?. Una vez pasado este trámite, tienes que enganchar esa dirección MAC a un dispositivo /dev/rfcomm?, en el canal 2. Como tengo ya otro teléfono bluetooth linkado, el dispositivo no será /dev/rfcomm0 sino /dev/rfcomm1.

El comando es algo así como «rfcomm bind [nº dispositivo] [MAC] [Canal]». O sea:

[root@lynette /home/lacofi]# rfcomm bind 1 08:00:1F:2D:8B:4F 2
[root@lynette /home/lacofi]# rfcomm show
rfcomm1: 08:00:1F:2D:8B:4F channel 2 clean
Nota sobre Gentoo

El emparejamiento es automático en Fedora y Ubuntu. Y también en las últimas versiones de Gentoo. Pero si hace tiempo que no has actualizado, puede que tengas que hacerlo a mano. Ahí va:

Ahora tienes que emparejar los dos dispositivos Bluetooth: El del ordenador y el teléfono. Fedora lo hará automáticamente en el momento que hagas la primera conexión. Y Gentoo también, si tienes bien configurado kde-bluetooth, pero nosotros vamos a usar aquí el camino tortuoso. Para ello edita o crea un fichero /etc/bluetooth/pin que contenga un número de al menos 4 cifras (mejor si son 8, mucho mejor si son 10) con el siguiente formato:

#!/bin/sh
echo "PIN:6820317173"

Ahora dale a ese fichero permisos de ejecución para todos:

[root@lynette /home/lacofi]# chmod a+rx /etc/bluetooth/pin

Ahora edita el fichero /etc/bluetooth/hcid.conf y modifica la línea con la entrada pin_helper para que apunte a /etc/bluetooth/pin:

Donde dice:

pin_helper /usr/bin/bluepin;

Debe decir:

pin_helper /etc/bluetooth/pin;

Con esto, el ordenador solicitará al teléfono un emparejamiento a la primera ocasión que tenga (es decir, cuando conectes por primera vez). Una vez emparejados ambos dispositivos, quedarán enlazados para siempre, y ya podrás volver a configurar el Bluetooth del teléfono para que se oculte. A partir de entonces, el teléfono solo será visible para el ordenador.

Pero el punto flaco de todo esto son los comandos «sbptool search DUN» y «rfcomm bind» que vimos más arriba, porque es un poco peñazo tener que estar tecleando eso cada vez que quieres conectarte a Internet. Para evitarlo (o sea, para que se enganchen automáticamente), hay que editar el fichero /etc/bluetooth/rfcomm.conf y dejarlo así:

#
# RFCOMM configuration file.
#
# $Id: rfcomm.conf,v 1.1 2002/10/07 05:58:18 maxk Exp $
#

rfcomm1 {
	bind yes;
	device 08:00:1F:2D:8B:4F;
	channel 2;
	comment "Conexion con Movil Nokia E71";
}

Con ello estamos metiendo el número de dispositivo (rfcomm1), la MAC y el canal en el fichero de configuración de rfcomm, con lo cual lo hará todo automáticamente.

Nota sobre Gentoo

Si estás usando UDEV, cosa que te recomiendo, edita además el fichero /etc/udev/rules.d/10-local.rules e introduce una entrada tal que así:

# Bluetooth USB Dongle
KERNEL="rfcomm*", NAME="%k", MODE="660", GROUP="usb"

Esto hará que los dispositivos /etc/rfcomm0 y /etc/rfcomm1 se creen siempre con permisos de acceso para el grupo usb. Asegúrate, naturalmente, de que todos los usuarioa que van a usar la conexión con el teléfono pertenecen a dicho grupo.

*

Bien, pues lo peor ya ha pasado. Ahora queda solo la parte fácil: conectarse a Internet. :-)

En esta sección vamos a hacerlo mediante un sistema de scripts. Pero si quieres hacerlo de forma más amigable, puedes usar también el programa «system-config-network» tal y como te cuento en otra sección de esta misma web. Si prefieres el script, que es lo que yo te recomiendo, puedes seguir leyendo a continuación. Y, concretamente, tienes dos posibilidades distintas: usar wvdial, o usar los scripts ppp. La primera opción es, con mucho, la más sencilla, pero eso ya depende de las ganas que tengas de complicarte la vida.

*

Es el modo más simple y el que te recomiendo yo. Solo tienes que asegurarte de que el usuario que va a conectarse está en el grupo dialout. Una vez hecho esto, tienes que editar el fichero /etc/wvdial.conf y dejarlo así:

[Modem0]
Modem = /dev/rfcomm1
Baud = 460800
SetVolume = 0
Dial Command = ATDT
Init1 = ATZ
Init3 = ATM0
FlowControl = CRTSCTS

[Dialer Vodafone3G]
Username = vodafone
Password = vodafone
Phone = *99***1#
Stupid Mode = 0
Init1 = ATZ
Init3 = ATZ
Inherits = Modem0

Naturalmente, las entradas «username», «password» y «phone» son los de tu compañía de teléfonos. Y la entrada «Modem» apunta al dispositivo Bluetooth.

Ahora tu usuario puede teclear el comando «wvdial Vodafone3G» y verás como se conecta.

Si, ya está. No mires con esa cara, que ya está. ¿Ves por qué lo recomiendo?. :-D

*

Solo hay que crear una configuración para el demonio pppd. Es muy fácil, una vez que sabes qué comandos de módem se necesitan. En el directorio /etc/ppp/peers crea tres ficheros tal que así:

El fichero /etc/ppp/peers/nokia-e71 debería ser:

#!/bin/sh
#El fichero original fue generado con el Generador de Scripts de
#GPRS Easy Connect para un Sharp GX20 y modificado por mí para
#adaptarlo al Sharp 703SH. No precisa modificaciones para el Nokia E71
#salvo apuntarlo al dispositivo /dev/rfcomm1 o el que hayamos configurado.

debug
/dev/rfcomm1
460800
crtscts
modem
lock
receive-all
nopcomp
noaccomp
nomagic
noccp
novj
novjccomp
nodetach
noipdefault
defaultroute
usepeerdns
user vodafone
password vodafone
connect '/usr/sbin/chat -e -f /etc/ppp/peers/nokia-e71-connect -v'
disconnect '/usr/sbin/chat -e -f /etc/ppp/peers/nokia-e71-disconnect -v'

El fichero /etc/ppp/peers/nokia-e71-connect debería ser:

#El fichero original fue generado con el Generador de Scripts de
#GPRS Easy Connect para un Sharp GX20 y modificado por mí para
#adaptarlo al Sharp 703SH y Nokia E71.

'' AT
TIMEOUT 240
OK ATE0
OK ATV1
OK ATDT*99***1#
TIMEOUT 30
CONNECT ""

El fichero /etc/ppp/peers/nokia-e71-disconnect debería ser:

#El fichero original fue generado con el Generador de Scripts de
#GPRS Easy Connect para un Sharp GX20 y modificado por mí para
#adaptarlo al Sharp 703SH y Nokia E71.

SAY "\nDisconnect...\n"
"" "\K"
"" "+++ATH"
SAY "\nDisconnected.\n"

Ahora asegúrate de que estos tres ficheros tienen permisos de lectura para el usuario que ha de conectarse. Si no, solo podrás conectarte como root.

Vale, pues ya está. Ahora solo tienes que conectarte a Internet a velocidad 3G HDSPA (que es una velocidad de la leche). Abre una ventana de terminal y arranca la conexión. Para colgar el teléfono y cerrar la conexión solo tienes que pulsar Ctrl-C.

[root@lynette /home/lacofi]# exit
[lacofi@lynette ~]$ /usr/bin/pppd file /etc/ppp/peers/nokia-e71
AT
OK
ATE0
OK

OK

CONNECT
Serial connection established.
using channel 2
Using interface ppp0
Connect: ppp0 <--> /dev/rfcomm1
sent [LCP ConfReq id=0x1 <asyncmap 0x0>]
rcvd [LCP ConfReq id=0x2 <auth chap MD5> <accomp> <pcomp>
  <asyncmap 0x0> <magic 0xdc84b0b5>]
sent [LCP ConfRej id=0x2 <accomp> <pcomp> <magic 0xdc84b0b5>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0>]
rcvd [LCP ConfReq id=0x3 <auth chap MD5> <asyncmap 0x0>]
sent [LCP ConfAck id=0x3 <auth chap MD5> <asyncmap 0x0>]
rcvd [CHAP Challenge id=0x0
  <8d7ffc507bb24322(blablabla)9ce2163bc93ff41b1a22d41>, name = "Kermit"]
sent [CHAP Response id=0x0 <79913c26f3ae1f030ca92fc7fe50286c>, name = "vodafone"]
rcvd [CHAP Success id=0x0 "Congratulations!"]
CHAP authentication succeeded: Congratulations!
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfNak id=0x1 <addr 0.0.0.0>]
rcvd [IPCP ConfNak id=0x1 <addr 62.87.126.93> <ms-dns1 212.73.32.3> <ms-dns3 212.73.32.67>]
sent [IPCP ConfReq id=0x2 <addr 62.87.126.93> <ms-dns1 212.73.32.3> <ms-dns3 212.73.32.67>]
rcvd [IPCP ConfReq id=0x2]
sent [IPCP ConfAck id=0x2]
rcvd [IPCP ConfAck id=0x2 <addr 62.87.126.93> <ms-dns1 212.73.32.3> <ms-dns3 212.73.32.67>]
Could not determine remote IP address: defaulting to 10.64.64.64
local  IP address 62.87.126.93
remote IP address 10.64.64.64
primary   DNS address 212.73.32.3
secondary DNS address 212.73.32.67
Script /etc/ppp/ip-up started (pid 7180)
Script /etc/ppp/ip-up finished (pid 7180), status = 0x7

Esto significa que ya estás conectado a Internet. ¡Con un teléfono UMTS a velocidades HDSPA!. Abre Firefox y navega un poco, anda, si no me crees.

Si es la primera vez que lo haces, estate atento a la pantalla de tu móvil, porque aparecerá un mensaje diciéndote que un dispositivo desconocido está pidiendo emparejarse. Dile que sí. Luego te pedirá una contraseña. Ahí tienes que poner el PIN de 8 ó 10 cifras que habías puesto en el fichero /etc/bluetooth/pin. Esto solo tendrás que hacerlo la primera vez. Después, quedan ya emparejados para siempre con lo que puedes decirle a la configuración Bluetooth del teléfono que se oculte (cosa que te recomiendo encarecidamente), y puedes olvidarte del dichoso PIN.

Para colgar, solo tienes que volver a la ventana de terminal y pulsar Ctrl-C. La respuesta será algo así:

Terminating on signal 2.
Script /etc/ppp/ip-down started (pid 8112)
sent [LCP TermReq id=0x2 "User request"]
Script /etc/ppp/ip-down finished (pid 8112), status = 0x0
rcvd [LCP TermAck id=0x2]
Connection terminated.
Connect time 0.2 minutes.
Sent 80 bytes, received 56 bytes.

Disconnect...

Disconnected.
Serial link disconnected.
Connect time 0.2 minutes.
Sent 80 bytes, received 56 bytes.
[lacofi@lynette ~]$ _

Y ahora llama al Servicio de Atención al Cliente de Vodafone y contrata un bono GPRS de datos, anda. En el momento de escribir estas líneas hay uno muy práctico de 200 Mb/mes por 25 euros. Elige el bono que más te convenga, pero hazme caso y no navegues a pelo, que te vas a pulir una pasta, creeme…

Y sobre todo que lo disfrutes… :-)

¿Puedo conectar el portátil a un móvil HTC p3600 con tecnología 3G?

Sí, claro que puedes.

A estas alturas ya tengo probados unos cuantos móviles de distintos tipos y compañías. Nunca me he preocupado de si estarían o no soportados por Linux. Y hasta el momento siempre he podido usarlos. El móvil HTC p3600, más conocido por sus fans como «Trinity», o como la «Trini», no es ninguna excepción en ese sentido, aunque es un teléfono muy particular porque en realidad es un híbrido entre PDA y móvil que usa Windows Mobile 5.0, con lo que se encuadraría en el terreno de las PocketPC.

Técnicamente, la Trinity es un dispositivo Windows Mobile 5 AKU3. Si has leído la sección sobre el Sharp 703SH, te diré que esto significa que no ofrece ningún perfil DUN, por lo que no puedes conectarte de la misma forma que con los móviles corrientes. En lugar de eso, la Trinity (y por extensión, se supone que cualquier dispositivo AKU3), ofrece un perfil PAN, lo que significa que se comporta como una especie de emulación de red Ethernet con NAT activo, es decir, que puede hacer navegar por Internet simultáneamente a la PDA y al Linux de tu portátil, y que se utiliza una asignación de IP para establecer el enlace entre ambas máquinas.

A decir verdad, poner esto en marcha es bastante fácil, pero hay que saber cómo hacerlo. Afortunadamente, nuestro amigo Moucha comentó como hacerlo en los foros de XDA-Developers. Muchas gracias, Moucha.

Asumo que tienes configurada una conexión a Internet en la Trinity. Es decir, asumo que con ella puedes navegar con el Explorer, por ejemplo. Si no es así, googlea un poco y configúralo, anda. Luego vuelve aquí y seguimos para que puedas navegar también con el portátil Linux.

¿Ya?. Bueno, pues al igual que con un teléfono móvil Bluetooth (que es como vamos a establecer en enlace con la Trini), tienes que tener capacidad Bluetooth en tu portátil (eso es de cajón), e instalar el paquete Bluez Utils.

[lacofi@lynette]$ su
password:
[root@lynette]# emerge bluez-utils gnome-bluetooth kdebluetooth

Ahora arranca el subsistema bluetooth y mételo en los scripts de arranque para lo haga siempre de forma automática.

[root@lynette]# /etc/init.d/bluetooth start
[root@lynette]# rc-update add bluetooth default

Ahora tienes que modificar tu kernel (2.6.x) para incluir soporte BNEP. Haz un «make menuconfig», vete a Networking, vete a Bluetooth subsystem support, y activa las casillas: BNEP protocol, Multicast filter, Protocol filter, y HIDP, además del Bluetooth device adecuado a tu caso (yo uso un lápiz USB Conceptronic Bluetooth, por lo que tengo activado el dispositivo HCI BCM203x). Ahora recompila y reinicia con el nuevo kernel. Si has activado BNEP dentro del kernel ya no tienes que hacer nada. Si lo has hecho como módulo tendrás que usar «modprobe bnep». ¿Vale?.

Ahora lógate en tu máquina Linux, a ser posible en KDE. Entra en el menú K, vete a Internet y ejecuta el demonio servidor «kbluetoothd». Con esto, debería aparecer en tu bandeja del sistema el logo de Bluetooth en tono gris, indicando que está escuchando pero no conectado.

Ahora entra en tu Trinity, vete a Inicio, vete a Configuración, vete a la pestaña Conexiones y abre el Administrador de Comunicación. Entra en Configuración y elige Bluetooth. Activa Bluetooth y la casilla «Permitir que sea visible». Vete a Dispositivos y pulsa en «Añadir nuevo dispositivo», con lo que debería detectar a tu portátil como Broadcom BCM2035 o similar. Mientras haces esto, te pedirá una contraseña. Mete una serie de números (8 cifras, por ejemplo). Ahora mira al portátil. En pantalla debería pedirte que metas la misma contraseña. Métela. Ahora vuelve a mirar al teléfono. Con esto la Trinity debería mostrar en la lista de Dispositivos al Broadcom BCM2035. Esto significa que ambos han quedado emparejados y se reconocen el uno al otro como dispositivos autorizados. Y nunca volverán a pedirte esa contraseña, simplemente bastará con que actives el Bluetooth de la Trini.

Una vez emparejados, coge la Trinity y cierra la configuración. Vete a la pantalla de Hoy. Vete a Inicio. Vete a Programas. Arranca «Conexión compartida». En «Conexión de PC» elige «PAN de Bluetooth». Luego pulsa en «Conectar».

Ahora abre una ventana Terminal en Linux y ejecuta una serie de comandos para arrancar el demonio de soporte de Bluez PAN, pídele al demonio que busque un dispositivo emparejado y se conecte a él, y luego crea una red Ethernet con él que te permita enganchar Internet. Esto es lo que nos contaba Moucha:

[root@lacofi]# pand -s -r PANU
[root@lacofi]# pand -Q10
[root@lacofi]# pand -l
(esto debería mostrarte la MAC de la Trini. Ahora levantamos la red.)
[root@lacofi]# ifconfig bnep0 192.168.0.2
[root@lacofi]# route add default gw 192.168.1
[root@lacofi]# echo "nameserver 194.102.255.2" > /tmp/resolv.conf.bnep0

Y ya está. Si todo ha ido bien, ahora tienes ya tu Linux conectado a Internet a través de la Trini. Observa que el símbolo de Bluetooth de la bandeja del sistema de KDE, ha cambiado a color azul indicando que está conectado. Naturalmente, puedes crear un script con todos estos comandos para que con una sola orden te conectes a Internet. :-)

Pero eso no es todo. Si en la Configuración Bluetooth de la Trini activas la compartición FTP, puedes usar los menús del icono de Bluetoothd (en la bandeja del sistema de KDE) para intercambiar ficheros entre Linux y la Trinity, y alguna cosilla más que dejo que descubras por tí mismo. :-)

Para cerrar la conexión y deshacerlo todo, solo tienes que pulsar «Desconectar» en la Trini. Disfrútalo.

No consigo conectar mi Pocket PC a Internet usando un Sharp 703SH

Esto me ha llamado mucho la atención. Resulta que he conectado a Internet con Linux a través de un móvil UMTS/3G Sharp 703SH con relativamente pocos problemas.

Y sin embargo, me ha resultado casi imposible conectar una iPAQ Rx3715 al mismo teléfono. Y eso a pesar de que hablamos del sistema operativo Windows Mobile 2003SE y de una marca y un proveedor que dan soporte a ese tipo de conexiones y a ese teléfono. Pero el Servicio de Atención al Cliente de Vodafone era incapaz de conseguir que me funcionara la conexión, y no he visto ninguna Web que me aclarara dónde estaba el problema.

De hecho, encontré la solución por mí mismo, símplemente porque Linux, que enganchaba el teléfono sin problemas, me estaba dando la respuesta delante de mis narices.

Porque vereis, descubrí que si tecleaba los comandos de módem de los scripts de linux en una ventana de terminal de la PocketPC, la iPAQ Rx3715 sí se conectaba a Internet. Unas cuantas pruebas más me llevaron a pensar que el problema estaba en las cadenas de inicialización del modem.

Y googleando un poco, descubrí que se podía modificar el registro de Windows Mobile para que envíe las cadenas de inicialización correctas al teléfono móvil. Tan simple como eso.

Sin enrollarme demasiado:

La configuración correcta de una Pocket PC con Windows Mobile 2003SE es tal y como dice el Servicio de Asistencia al Cliente de Vodafone:

  1. Abre «Configuración»
  2. Abre «Conexiones»
  3. Tap en icono «Conexiones»
  4. Abre «Agregar nueva conexión de módem»
  5. Ponle un nombre, por ejemplo «Vodafone»
  6. Selecciona como modem «Bluetooth Dialup Modem»
  7. Tap en «Siguiente»
  8. Ahora te pide un número de teléfono. Pon *99***1#
  9. Tap en «Siguiente»
  10. En Usuario pon «wap@wap» (también vale «vodafone»)
  11. En Contraseña pon «wap125» (también vale «vodafone»)
  12. Tap en «Avanzado»
  13. En Velocidad pon 115200
  14. Tap en «OK» (arriba a la derecha)
  15. Tap en «Finalizar»

Vale. Si ahora intentas poner en marcha la conexión verás que falla. El error está en la cadena de inicialización, que no es la correcta para este móvil. ¿Como cambiarla?. Bueno, pues tienes que hackear el registro de Windows Mobile. Para ello necesitas un editor del registro, como por ejemplo PHM RegEdit, que es el que te recomiendo.

Con el editor del registro, abre la siguiente entrada:

  1. HKEY_LOCAL_MACHINE
  2. Drivers
  3. Unimodem
  4. Init
  5. 2

Ahí verás que pone «ATE0V1&C1&D2<cr>». Cámbialo a «ATE0V1<cr>», simplemente (si te fijas, es la misma cadena de inicialización que enviaba linux). Pulsa OK, OK, cierra el editor, y haz un soft-reset a la PDA.

Ya está. Prueba ahora. Deberías conectar sin problemas. :-)

¿A velocidad 3G?.

Bueno, no. El Windows Mobile 2003SE tiene una estúpida limitación en el puerto que hace que no puedas seleccionar una velocidad superior a 115200, cuando con un teléfono UMTS/3G debería ser superior a 384000. Parece que eso se puede hackear también. Para ello edita de nuevo el registro de Windows Mobile y abre la siguiente entrada:

  1. HKEY_CURRENT_USER
  2. Comm
  3. RasBook
  4. Vodafone (o el nombre que tú le hayas puesto a la conexión)
  5. DevCfg

Ahora localiza la secuencia de bytes donde diga «00.c2.01» (115200 en hexadecimal), y cambialo por «00.08.07» (460800 en hexadecimal). Pulsa OK, OK, cierra el editor y haz un soft-reset a la PDA. Esto puede duplicar la velocidad de navegación de tu PDA. Si vuelves a abrir la configuración, verás que la velocidad de transmisión ahora está en blanco, pero así es como tiene que estar. Déjala así, no la cambies, ¿vale?.

Que lo disfrutes.

¿Puedo conectar el portátil a un móvil Vodafone Sharp 703SH con tecnología 3G?

Pues sí. Claro que puedes. La cuestión es cómo configurarlo, porque hasta el momento y que yo sepa, ningún software linux da soporte a éste teléfono. De hecho, el excelente programa GPRS Easy Connect afirmaba en su página web que el teléfono está soportado, pero si lo intentas descubrirás que no es cierto porque no consigues conectar con Vodafone: el programa se empeña en decirte una y otra vez que el teléfono está apagado.

Sin embargo, sí podemos usar el Generador de Scripts que viene incluido en GPRS Easy Connect para crear los scripts que utilizaría un Sharp GX25. Estos Scripts no nos sirven para el 703SH, pero es relativamente fácil modificarlos según los parámetros que proporciona el Servicio de Atención al Cliente de Vodafone. No te preocupes, no te haré seguir todos estos pasos: te lo doy ya todo masticado, ¿vale?. ;-)

Lo primero de todo es configurar una conexión Bluetooth entre el teléfono y el ordenador. Eso, en si mismo, no debería suponer ningún problema, pues está bastante bien documentado y puede encontrarse googleando un poco, pero en fin.

Estableciendo una conexión Bluetooth entre Linux y el teléfono.

Si tu ordenador portátil no tiene Bluetooth, necesitarás un USB Dongle, por ejemplo sirven los de Conceptronic. Deberías poder consultar la lista del hardware soportado por Linux en la página Bluetooth Hardware Support for Bluez, pero si vas a mirar te encontrarás con una sorpresita bastante curiosa: que como esos dispositivos no dan soporte en Linux, podría ser ilegal decir que, de hecho, funcionan en Linux, así que la lista ha desaparecido… Increíble, ¿no?. En fin, googlea un poco y encontrarás un dispositivo USB adecuado. Luego, habrá que configurarlo para que funcione. Y a eso vamos.

Primero tienes que instalar el paquete Bluez. En el caso de Gentoo es muy fácil:

[lacofi@lynette ~]$ su
password:
[root@lynette /home/lacofi]# emerge bluez-utils gnome-bluetooth kdebluetooth

Una vez instalado Bluez, tienes que arrancar el demonio bluetooth:

[root@lynette /home/lacofi]# /etc/init.d/bluetooth start

Y si quieres, mete este demonio en los script de inicio para que se ponga en marcha automáticamente en cada arranque.

[root@lynette /home/lacofi]# rc-update add bluetooth default

Ahora tienes que configurar la conexión con el teléfono. Asegúrate de que la configuración Bluetooth del móvil está ajustada para que el teléfono sea detectable por otros dispositivos. Si no, vas de cráneo. ;-)

Una vez que tu teléfono es visible para las redes Bluetooth, puedes pedirle a Linux que lo busque:

[root@lynette /home/lacofi]# hcitool scan
Scanning ...
        08:00:1F:2D:8B:4F       lacofi

Vale. Lo ha encontrado, y ya sabes cual es su dirección MAC (08:00:1F:2D:8B:4F). Ahora consulta qué servicios ofrece el teléfono para comprobar que uno de ellos es «Dial-up Networking». Esto, además te proporcionará otro dato importante: el canal.

[root@lynette /home/lacofi]# sdptool search DUN
Inquiring ...
Searching for DUN on 08:00:1F:2D:8B:4F ...
Service Name: Dial-up Networking
Service RecHandle: 0x10002
Service Class ID List:
  "Dialup Networking" (0x1103)
  "Generic Networking" (0x1201)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 2
Profile Descriptor List:
  "Dialup Networking" (0x1103)
    Version: 0x0100

El canal es el 2, ¿has visto?. Una vez pasado este trámite, tienes que enganchar esa dirección MAC a un dispositivo /dev/rfcomm?, en el canal 2. Como no tienes ningún otro dispositivo Bluetooth (supongo), será llamado /dev/rfcomm0.

El comando es algo así como «rfcomm bind [nº dispositivo] [MAC] [Canal]». O sea:

[root@lynette /home/lacofi]# rfcomm bind 0 08:00:1F:2D:8B:4F 2
[root@lynette /home/lacofi]# rfcomm show
rfcomm0: 08:00:1F:2D:8B:4F channel 2 clean

Ahora tienes que emparejar los dos dispositivos Bluetooth: El del ordenador y el teléfono. Para ello edita o crea un fichero /etc/bluetooth/pin que contenga un número de al menos 4 cifras (mejor si son 8, mucho mejor si son 10) con el siguiente formato:

#!/bin/sh
echo "PIN:6820317173"

Ahora dale a ese fichero permisos de ejecución para todos:

[root@lynette /home/lacofi]# chmod a+rx /etc/bluetooth/pin

Ahora edita el fichero /etc/bluetooth/hcid.conf y modifica la línea con la entrada pin_helper para que apunte a /etc/bluetooth/pin:

Donde dice:

pin_helper /usr/bin/bluepin;

Debe decir:

pin_helper /etc/bluetooth/pin;

Con esto, el ordenador solicitará al teléfono un emparejamiento a la primera ocasión que tenga (es decir, cuando conectes por primera vez). Una vez emparejados ambos dispositivos, quedarán enlazados para siempre, y ya podrás volver a configurar el Bluetooth del teléfono para que se oculte. A partir de entonces, el teléfono solo será visible para el ordenador. Pero el punto flaco de todo esto son los comandos «sbptool search DUN» y «rfcomm bind» que vimos más arriba, porque es un poco peñazo tener que estar tecleando eso cada vez que quieres conectarte a Internet. Para evitarlo (o sea, para que se enganchen automáticamente), hay que editar el fichero /etc/bluetooth/rfcomm.conf y dejarlo así:

#
# RFCOMM configuration file.
#
# $Id: rfcomm.conf,v 1.1 2002/10/07 05:58:18 maxk Exp $
#

rfcomm0 {
	bind yes;
	device 08:00:1F:2D:8B:4F;
	channel 2;
	comment "Conexion con Movil Sharp 703";
}

Con ello estamos metiendo el número de dispositivo (rfcomm0), la MAC y el canal en el fichero de configuración de rfcomm, con lo cual lo hará todo automáticamente.

Si estás usando UDEV, cosa que te recomiendo, edita además el fichero /etc/udev/rules.d/10-local.rules e introduce una entrada tal que así:

# Bluetooth USB Dongle
KERNEL="rfcomm*", NAME="%k", MODE="660", GROUP="usb"

Esto hará que los dispositivos /etc/rfcomm0 se creen siempre con permisos de acceso para el grupo usb. Asegúrate, naturalmente, de que todos los usuarioa que van a usar la conexión con el teléfono pertenecen a dicho grupo.

Bien, pues lo peor ya ha pasado. Ahora queda solo la parte fácil: conectarse a Internet. :-)

Conectarse a Internet

Solo hay que crear una configuración para el demonio pppd. Es muy fácil, una vez que sabes qué comandos de módem se necesitan. En el directorio /etc/ppp/peers crea tres ficheros tal que así:

El fichero /etc/ppp/peers/sharp-703sh debería ser:

#!/bin/sh
#El fichero original fue generado con el Generador de Scripts de
#GPRS Easy Connect para un Sharp GX20 y modificado por mí para
#adaptarlo al Sharp 703SH.

debug
/dev/rfcomm0
460800
crtscts
modem
lock
receive-all
nopcomp
noaccomp
nomagic
noccp
novj
novjccomp
nodetach
noipdefault
defaultroute
usepeerdns
user vodafone
password vodafone
connect '/usr/sbin/chat -e -f /etc/ppp/peers/sharp-703sh-connect -v'
disconnect '/usr/sbin/chat -e -f /etc/ppp/peers/sharp-703sh-disconnect -v'

El fichero /etc/ppp/peers/sharp-703sh-connect debería ser:

#El fichero original fue generado con el Generador de Scripts de
#GPRS Easy Connect para un Sharp GX20 y modificado por mí para
#adaptarlo al Sharp 703SH.

'' AT
TIMEOUT 240
OK ATE0
OK ATV1
OK ATDT*99***1#
TIMEOUT 30
CONNECT ""

El fichero /etc/ppp/peers/sharp-703sh-disconnect debería ser:

#El fichero original fue generado con el Generador de Scripts de
#GPRS Easy Connect para un Sharp GX20 y modificado por mí para
#adaptarlo al Sharp 703SH.

SAY "\nDisconnect...\n"
"" "\K"
"" "+++ATH"
SAY "\nDisconnected.\n"

Ahora asegúrate de que estos tres ficheros tienen permisos de lectura para el usuario que ha de conectarse. Si no, solo podrás conectarte como root.

Vale, pues ya está. Ahora solo tienes que conectarte a Internet a velocidad 3G (¡te aseguro que vuela!). Abre una ventana de terminal y arranca la conexión. Para colgar el teléfono y cerrar la conexión solo tienes que pulsar Ctrl-C.

[root@lynette /home/lacofi]# exit
[lacofi@lynette ~]$ /usr/bin/pppd file /etc/ppp/peers/sharp-703sh
AT
OK
ATE0
OK

OK

CONNECT
Serial connection established.
using channel 2
Using interface ppp0
Connect: ppp0 <--> /dev/rfcomm0
sent [LCP ConfReq id=0x1 <asyncmap 0x0>]
rcvd [LCP ConfReq id=0x2 <auth chap MD5> <accomp> <pcomp>
  <asyncmap 0x0> <magic 0xdc84b0b5>]
sent [LCP ConfRej id=0x2 <accomp> <pcomp> <magic 0xdc84b0b5>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0>]
rcvd [LCP ConfReq id=0x3 <auth chap MD5> <asyncmap 0x0>]
sent [LCP ConfAck id=0x3 <auth chap MD5> <asyncmap 0x0>]
rcvd [CHAP Challenge id=0x0
  <8d7ffc507bb24322(blablabla)9ce2163bc93ff41b1a22d41>, name = "Kermit"]
sent [CHAP Response id=0x0 <79913c26f3ae1f030ca92fc7fe50286c>, name = "vodafone"]
rcvd [CHAP Success id=0x0 "Congratulations!"]
CHAP authentication succeeded: Congratulations!
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfNak id=0x1 <addr 0.0.0.0>]
rcvd [IPCP ConfNak id=0x1 <addr 62.87.126.93> <ms-dns1 212.73.32.3> <ms-dns3 212.73.32.67>]
sent [IPCP ConfReq id=0x2 <addr 62.87.126.93> <ms-dns1 212.73.32.3> <ms-dns3 212.73.32.67>]
rcvd [IPCP ConfReq id=0x2]
sent [IPCP ConfAck id=0x2]
rcvd [IPCP ConfAck id=0x2 <addr 62.87.126.93> <ms-dns1 212.73.32.3> <ms-dns3 212.73.32.67>]
Could not determine remote IP address: defaulting to 10.64.64.64
local  IP address 62.87.126.93
remote IP address 10.64.64.64
primary   DNS address 212.73.32.3
secondary DNS address 212.73.32.67
Script /etc/ppp/ip-up started (pid 7180)
Script /etc/ppp/ip-up finished (pid 7180), status = 0x7

Esto significa que ya estás conectado a Internet. ¡Con un teléfono UMTS a velocidades 3G!. Abre Firefox y navega un poco, anda, si no me crees.

Si es la primera vez que lo haces, estate atento a la pantalla de tu móvil, porque aparecerá un mensaje diciéndote que un dispositivo desconocido está pidiendo emparejarse. Dile que sí. Luego te pedirá una contraseña. Ahí tienes que poner el PIN de 8 ó 10 cifras que habías puesto en el fichero /etc/bluetooth/pin. Esto solo tendrás que hacerlo la primera vez. Después, quedan ya emparejados para siempre con lo que puedes decirle a la configuración Bluetooth del teléfono que se oculte (cosa que te recomiendo encarecidamente), y puedes olvidarte del dichoso PIN.

Para colgar, solo tienes que volver a la ventana de terminal y pulsar Ctrl-C. La respuesta será algo así:

Terminating on signal 2.
Script /etc/ppp/ip-down started (pid 8112)
sent [LCP TermReq id=0x2 "User request"]
Script /etc/ppp/ip-down finished (pid 8112), status = 0x0
rcvd [LCP TermAck id=0x2]
Connection terminated.
Connect time 0.2 minutes.
Sent 80 bytes, received 56 bytes.

Disconnect...

Disconnected.
Serial link disconnected.
Connect time 0.2 minutes.
Sent 80 bytes, received 56 bytes.
[lacofi@lynette ~]$ _

Y ahora llama al Servicio de Atención al Cliente de Vodafone y contrata un bono GPRS de datos, anda. En el momento de escribir estas líneas hay uno muy práctico de 200 Mb/mes por 25 euros. Elige el bono que más te convenga, pero hazme caso y no navegues a pelo, que te vas a pulir una pasta, creeme…

Y sobre todo que lo disfrutes… :-)