Mostrando entradas con la etiqueta Hardware. Mostrar todas las entradas
Mostrando entradas con la etiqueta Hardware. Mostrar todas las entradas

martes, 9 de diciembre de 2008

40 años de ratón

Según he leido en un par de sitios (este y este), hoy hace 40 años que se presentó ese aparatito que va conectado al ordenador y que conocemos como "ratón", o en algunos sitios "mouse".

Mi primer contacto con dicho engendro mecánico creo que fue cuando estudiaba en el Instituto y teníamos en 1ª una asignatura optativa de Informática, a la que por supuestísimo opté (creo recordar que había alguna otra asignatura pero soy incapaz de recordar cual podía ser, tal era mi interés por ella). Los ordenadores que se usaban eran PCs con pantalla de fósforo naranja y disquetes de 5,25", y nos enseñaban a "programar" en LOGO y a manejar algún paquete integrado, que era como se llamaba entonces (finales de los 80) a lo que ahora llamamos suite ofimática

Pero cuando más lo usé fue cuando mis padres me compraron un Sony HB-F700S, del estándar MSX-2. A pesar de ser un ordenador de 8 bits, le daba 100.000 vueltas a los armatostes de PCs que había en mi Instituto, además de tener también ratón podía tocar melodías polífonicas por 3 canales de audio y usaba disquetes de 3,5" (de simple densidad, 720 Kb), mucho más manejables y robustos que los otros. Además de en el interior, también era mucho más bonito en el exterior, y si no mirad su foto:


Foto: old-computers.com

El ratón se usaba en ese ordenador básicamente para manejar un paquete integrado de Sony que venía con él, llamado si no recuerdo mal Hybrid. Tenía procesador de textos, hoja de cálculo, base de datos, editor de gráficos e incluso un gestor de fichero, todo muy sencillo. Apenas lo usé porque le costaba mucho de cargar del disquete y no resultaba práctico. A parte de para eso, la verdad es que el ratón tampoco se manejaba mucho, todo se hacía escribiendo con comandos, y salvo para dibujar o para algún juego muy especial, no se usaba para casi nada, en aquel entonces no era un periférico tan estándar como lo es ahora.

Como curiosidad, la anterior máquina me la compraron mis padres de segunda mano, después de estar un año "castigado" sin ordenador por haberme cargado el anterior (un Spectravideo 728) cuando introduje "a ver que pasaba" un cartucho ROM en la ranura que iba destinada a una unidad de disco externa. Lo que pasó fue que el ordenador no volvió a funcionar, y que ahí empezó a despuntar mi faceta de friki-digital :-)

Hoy día el ratón es imprescindible para manejar los entornos de ventanas. Solo los que son muy frikis (más que yo incluso) o los que no tienen más remedio (usuarios de vetustos mainframes) utilizan exclusivamente el teclado. En Linux, incluso cuando se trabaja con línea de comandos viene muy bien para hacer copy-paste entre ventanas.

¿Que habrá dentro de otros 40 años? ¿Seguirán existiendo los ratones? ¿O usaremos interfaces cerebrales u oculares? Ya os lo contaré si sigo por aquí...

viernes, 5 de septiembre de 2008

Ubuntu en un IBM 760XL

Hace unos meses rescaté del olvido un viejo portátil que compré hace algunos años de segunda mano, y decidí darle una segunda vida instalándole algo más moderno que el Windows 98 que llevaba. Al tener tantos años sus prestaciones no son precisamente el último grito:

- Procesador Pentium MMX a 166 Mhz
- 64 Mb de RAM
- 9 Gb de disco duro



¿Se le podría instalar un sistema operativo de última generación? Y no me estoy refiriendo a Windows Vista, por supuesto :-) Probemos con Ubuntu...


El arranque

El primer problema es cómo arrancar la instalación. El equipo dispone de un lector de CD-ROM pero no tiene la capacidad de arrancar desde un CD (eso lo inventaron allá por el año 1998, este portátil es anterior). La única forma de hacerlo es desde disquete, pero la instalación de Ubuntu y la mayoría de distros actuales no permiten iniciar la instalación arrancando con ellos.

Tras googlear un poco doy con la solución, que resulta que viene en el mismo CD de instalación de Ubuntu: Se trata de una utilidad llamada Smart Boot Manager (SBM), que es un disquete desde el que es posible arrancar a su vez el CD, aunque el ordenador no esté preparado para ello. La imagen del disquete está en el directorio install del CD de Ubuntu, con unas instrucciones que se resumen en que para generarlo basta ejecutar algo como:

dd if=sbm.bin of=/dev/fd0

Una vez se consigue iniciar el ordenador con el CD, ya se puede hacer la instalación del resto del sistema de la manera habitual... o casi.


Elección del sistema

El Ubuntu para escritorio al que estamos acostumbrados es muy bonito, muy fácil de instalar y tiene todo el software que se puede necesitar, pero en nuestro caso ese es precisamente su mayor problema: No quiero entorno gráfico ni software como OpenOffice o K3B, solo que arranque y después ya instalaré por red lo que vaya haciendo falta.

Con las versiones de escritorio no se puede elegir una instalación así, pero en cambio la versión de servidor sí que lo permite (la instalación de un sistema mínimo) y además se puede hacer en modo consola (sin entorno gráfico). Así que, paradójicamente, instalo la versión más potente en el equipo más humilde.


Instalación

No hay mucho que decir. Se copian los ficheros al disco duro, detecta la tarjeta de red PCMCIA que tengo pinchada en el portátil, y todo va como la seda. Tras finalizar el proceso se reinicia y configuro el ssh para conectarme desde otro equipo y continuar configurándolo de forma más cómoda. Antes de hacer nada más aplico las últimas actualizaciones con aptitude update; aptitude upgrade y reinicio para que arranque con el último kernel.


Problema al arrancar

Para mi horror, depués de actualizar el kernel y reiniciar el proceso se interrumpe con un mensaje de error:

"ALERT! /dev/disk/by-uuid/xxxxxxxxxxx Does not exist, dropping to a shell"

...y aparece un shell reducido cuyo prompt es

(initramfs)

Así que toca googlear para averiguar qué significa y cómo arreglarlo. Parece ser que cuando, tras actualizar el kernel, se genera el disco ram de inicio no se cargan ciertos drivers para dispositivos IDE muy antiguos y por esa razón cuando arranca da el error de que no encuentra el disco duro.
Para solucionarlo en el shell reducido del ramfs hay que cargar los módulos ide, montar el sistema y regenerar el disco ram (el initrd):

Cargamos los módulos IDE:

(initramfs) modprobe ide-disk

(initramfs) modprobe ide-generic


Creamos un directorio y montamos en él la partición raiz:

(initramfs) mkdir /mnt
(initramfs) mount -t ext3 /dev/hda1 /mnt

En vez de /dev/hda1 habrá que poner el nombre de la partición raiz de tu sistema. En el comando mount hay que especificar el sistema de ficheros (ext3) ya que al ser una versión reducida no es capaz de averiguarlo por sí misma.

Convertimos el directorio que acabamos de montar en el nuevo raiz.

(initramfs) chroot /mnt

Al hacer esto se me quedaba congelado el shell y no continuaba. Si ocurre esto, se puede interrumpir con CTRL+D y ejecutarlo de nuevo indicando el comando a ejecutar con ese nuevo raiz, que será el intérprete bash para que podamos seguir introduciendo comandos: chroot /mnt bash

Montamos /proc y /sys:

# mount /proc
# mount /sys

Vamos a /boot, borramos el initrd de nuestra versión de kernel y lo regeneramos con el comando yaird. Si tenemos el /boot en una partición separada habrá que montarlo también.

# cd /boot
# rm initrd.img-2.6.24-19-generic
# /usr/sbin/yaird -o initrd.img-2.6.24-19-generic

Se generará el fichero del initrd, y además veremos que tiene bastante menos tamaño que el original. Reiniciamos, y cuando arranque ya no volverá a salir el error. Lo malo es que cuando se actualice de nuevo la versión del kernel, probablemente volverá a ocurrir lo mismo.

Y ahora que ya funciona el ordenador y arranca ¿para qué se puede usar con su limitada potencia? Bueno, diría que eso es casi lo de menos, lo divertido es hacerlo funcionar, pero lo he estado usando para capturar tráfico de redes wifi vecinas con fines puramente educacionales ;-)

martes, 29 de abril de 2008

Mando de la Wii en Linux

Cierto ser humano se enteró hace poco de que uno de los mandos de la Wii (el conocido como Wiimote) se puede utilizar en el PC como si de un ratón o joystick se tratara, ya que se comunica mediante la norma Bluetooth, estándar a más no poder. Al susodicho ser humano le faltó tiempo para entrar en eBay y adquirir uno de ellos por 46$, que al cambio actual son unos 30€.


Esta mañana lo ha recibido y por la tarde he estado trasteando un poco con él y con mi Linux.

Lo primero que he hecho ha sido comprobar que se veía a través del bluetooth. Después de mirar por Internet he averiguado que presionando a la vez los botones '1' y '2' el cacharrito se vuelve visible durante unos segundos, durante los cuales parpadean los cuatro LEDs azules que tiene en la parte de abajo. Se puede ver con el comando:

$ hcitool scan
Scanning...
     00:1E:35:E3:62:B5        Nintendo RVL-CNT-01

Lo siguiente es hacer "algo" con él. Busco y encuentro la página del proyecto WiiLi, en la que hay mucha información útil. Me descargo CWiid, que es una librería para Linux que permite hacer programas que usen el mando. Hay que compilarla, y como es habitual los pasos a dar son:

./configure
make
sudo make install

El primero lo tengo que ejecutar varias veces y tras cada una de ellas instalar alguna otra librería necesaria para que se pueda compilar esta (por ejemplo, las de bluetooth o las del interfaz gráfico GTK). Cuando están todas, el ./configure termina bien y el resto de pasos se ejecutan correctamente. Las librerias se instalan en /usr/local/lib y los programas de ejemplo en /usr/local/bin. Entre ellos están:

  • wmdemo, que muestra en un menú en modo texto varias opciones que permiten encender y apagar los LEDs del mando, el vibrador, mostrar los botones pulsados, y por supuesto los valores de aceleración en los 3 ejes que hacen tan especial a este mando.
  • Otro programa de prueba es wmgui, que hace lo mismo que el anterior, pero en modo gráfico, mostrando toda la información anterior en una ventana más amigable, y utilizando barras para los datos del acelerómetro.
  • Por último, con wminput podemos utilizar el mando para controlar nuestro PC. Antes de ello hay que cargar un módulo para que funcione algo llamado uinput simplemente ejecutando el comando modprobe uinput, ya que si no aparece un error nada más ejecutar el programita. Después de esto, se puede mover el puntero del ratón moviendo el mando hacia los lados o arriba/abajo, y apretar los botones izquierdo/derecho con los del mando ('A' y 'B'). Cuesta un poco hacerse con el control, pero el resultado es muy curioso.


Todos estos programas nada más lanzarlos lo primero que hacen es mostrar un mensaje en el que indica que hay que mantener apretados los botones 1 y 2 del mando para que lo descubra. Tras unos segundos comienzan a funcionar sin que haya que hacer nada más para que lo detecte.

La última prueba que he hecho ha sido bajarme el Tetriis. Las piezas se mueven con los cursores que tiene el mando, y para rotarlas hay que girarlo tanto como queramos que se mueva la pieza. Es decir, si queremos que gire 90 grados a la izquierda deberemos hacer eso mismo con el mando. Un poco raro de jugar, ya que al sacudir el mando lo que se espera que pase es que se muevan las piezas en lugar de girarse.


En fin, un cacharro curioso. No se me ocurren aplicaciones prácticas salvo usarlo para jugar (que al fin y al cabo es para lo que está pensado) o como mando a distancia, aunque para esto hay otras alternativas más convencionales (y menos geeks claro :-)

lunes, 21 de abril de 2008

Disquetera USB

Por una razón que ahora no viene al caso (bueno, en realidad sí que podría venir pero ya lo contaré otro día) he tenido que generar un disquete de arranque a partir de un fichero imagen. Como mi portátil no trae disquetera, he tomado prestada una del trabajo para poder hacerlo.

En Linux hay muchos y variados comandos para manejar disquetes de 3,5'' pero tienen un problema: Están pensados para unidades fijas (p.e. dispositivo /dev/fd0) y no funcionan bien (o no lo hacen en absoluto) con unidades USB. La razón es la forma en que tiene de trabajar con las unidades de disquete: Como todos los dispositivos, tiene asociado un fichero en el directorio /dev, siendo el que más frecuentemente se usa el famoso /dev/fd0 para referirse a la "unidad A:". Pero además existen otros llamados /dev/fd0H1440, /dev/fdH02880, etc. para especificar que el disquete tiene capacidad de 1,44 o 2,88 MB.

Las disqueteras USB se detectan como dispositivos SCSI (en mi caso /dev/sdb) y las utilidades típicas (como fdformat) necesitan tener acceso a esos otros ficheros con las capacidades posibles del soporte para saber cómo ha de tratarlo al formatearlo.

La única solución que he encontrado ha sido utilizar un programa especialmente preparado para manejar unidades USB, que increiblemente no viene en los repositorios oficiales de las distribuciones habituales. Se llama ufiformat y de su página se pueden descargar tanto los fuentes como binarios y paquetes RPMs.

Una vez instalado su uso es muy simple. Basta con ejecutar:

ufiformat

así sin parámetros, y él solito encontrará la disquetera que tengamos conectada y dará formato al disco según su capacidad máxima. Si somos poco atrevidos con eso de la detección automática podemos especificar el dispositivo si nos quedamos más tranquilos con ello:

ufiformat /dev/sdb

miércoles, 13 de febrero de 2008

Configuración de un NAP bluetooth (II)

Este post es una ampliación de otro anterior en el que se explicaba cómo configurar un punto de acceso bluetooth (NAP) en Linux. Con ello se conseguía una forma básica de conectar una PDA a Internet, pero tiene el inconveniente de que no sirve si se quieren conectar al mismo tiempo varios dispositivos.

A continuación resumiré todos los pasos que hay que seguir para configurar un NAP que permite la conexión de varios dispositivos simultáneamente. Están hechos pensando en Debian/Ubuntu Linux, en otras distribuciones se hará de forma parecida aunque posiblemente algún fichero esté en otro sitio.

1) Instalar utilidades de bluetooth y de ethernet bridging:

$ sudo aptitude install bluez-utils
$ sudo aptitude install bridge-utils


2) Asegurarse de que se detecta el adaptador bluetooth en el ordenador:

$ hcitool dev
Devices:
hci0 00:03:7A:EE:B6:76


3) Editar /etc/bluetooth/hcid.conf y modificar las siguientes líneas para que queden así:

# Default PIN code for incoming connections
# (Aquí ponemos el PIN que queramos).
passkey "1234";

# Default link mode
# none - no specific policy
# accept - always accept incoming connections
# master - become master on incoming connections,
# deny role switch on outgoing connections
lm accept,master;


4) Si no existe ya, crear un interfaz puente Ethernet de nombre pan0, con el siguiente comando:

# brctl addbr pan0

Para asegurarnos de que se ha creado podemos ejecutar:

$ brctl show
bridge name bridge id STP enabled interfaces
pan0 8000.000000000000 no


5) El interfaz pan0 se puede configurar como cualquier otro, en /etc/network/interfaces, por ejemplo así:

auto pan0
iface pan0 inet static
address 192.168.2.1
netmask 255.255.255.0
gateway 192.168.0.1


6) Editar /etc/default/bluetooth y modificar las siguientes líneas para que queden así:

BLUETOOTH_ENABLED = 1
PAND_ENABLED = 1
PAND_OPTIONS=" --listen --role NAP --devup /etc/bluetooth/pan/dev-up"
SDPTOOL_OPTIONS="add NAP"


7) Crear el fichero /etc/bluetooth/pan/dev-up con el siguiente contenido:

#!/bin/sh
ifup pan0
brctl addif pan0 $1
ifconfig $1 0.0.0.0

No olvidarse de darle permisos de ejecución. Este script se invocará cada vez que se conecte al ordenador un dispositivo. Cuando esto sucede se crea automáticamente un interfaz de red llamado bnep0 (o bnep1, bnep2... si se conectan otros después). El script anterior lo que hace es añadir el recien creado interfaz al puente pan0 del que hemos hablado antes y se asegura de que está levantado.

8) En el fichero /etc/init.d/bluetooth buscar la parte donde pone start) y justo después de donde pone start_pan || true añadir una línea como esta:

start_rfcomm || true
start_pan || true
(sleep 5; run_sdptool || true) &
log_end_msg 0

Que lo que hace es esperar 5 segundos antes de lanzar el servidor SDP (el que anuncia los servicios ofrecidos por el bluetooth). El "&" del final lo lanza como tarea de fondo, para que el arranque no se ralentice mientras pasan los cinco segundos.

9) Por último, para que el PC haga de router:

$ sudo echo "1" > /proc/sys/net/ipv4/ip_forward
$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


Se supone que la PDA tiene una dirección IP estática en la misma red que la que se ha configurado para el interfaz pan0. Se podría poner también que fuera dinámica configurando en el PC un servidor DHCP para esa red, que es bastante sencillo.

Si todo funciona como debería cada vez que se conecte un dispositivo bluetooth al PC deberá aparecer un interface de red llamado bnepX. Al hacer un ifconfig veremos que no tiene IP asignada en el PC, pero responderá a un ping si se lo hacemos a la dirección estática que le hubieramos configurado

Cosas que pueden fallar

  • Al intentar conectar desde la PDA al PC no ofrece ningún servicio bluetooth: No se ha configurado bien SDP. Revisar el parámetro SDPTOOL_OPTIONS y que se ha cambiado /etc/init.d/bluetooth como se decía en el apartado 8.
    Se puede añadir el servicio a mano ejecutando sdptool add nap.
    Deberá responder con el mensaje "NAP service registered", de lo contrario significará, que algo está pasando con ese servicio que no funciona bien...

  • El servicio de Network Access Point se ve, pero cuando se intenta conectar falla. Puede ser por muchas cosas. Asegurarse de que:

    • Existe el interface pan0 y tiene configurada una IP: ifconfig pan0
      pan0 Link encap:Ethernet direcciónHW 00:03:7a:ee:b6:76
      inet dirección:192.168.2.1 Difusión:192.168.2.255 Máscara:255.255.255.0
      ARRIBA DIFUSIÓN CORRIENDO MULTICAST MTU:1500 Métrica:1
      RX packets:16 errors:0 dropped:0 overruns:0 frame:0
      TX packets:19 errors:0 dropped:0 overruns:0 carrier:0
      colisiones:0 txqueuelen:0
      RX bytes:796 (796.0 B) TX bytes:2565 (2.5 KB)

    • Está creado el puente ethernet y en él está el interface pan0: brctl show
      bridge name bridge id STP enabled interfaces
      pan0 8000.00037aeeb676 no

    • Está ejecutándose el demonio pand: ps -ef | grep pand

      root 26317 1 0 Jun04 ? 00:00:00 /usr/bin/pand --devup /etc/bluetooth/pan/dev-up --listen --role NAP

      Si no está corriendo podemos lanzarlo a mano desde la línea de comandos con los parámetros de arriba. Si al hacerlo sigue sin lanzarse miraremos el log /var/log/syslog y es probable que encontremos algún mensaje como:

      Bind failed. Address already in use(98)

      Puede ser debido a que haya alguna otra utilidad de bluetooth pululando en el sistema. En alguna ocasión que me ha pasado eso mirando los procesos había dos llamados así:

      root 16844 16839 0 20:52 ? 00:00:00 /usr/lib/bluetooth/bluetoothd-service-input
      root 16845 16839 0 20:52 ? 00:00:00 /usr/lib/bluetooth/bluetoothd-service-network

      Tras matarlos pude lanzar el demonio pand.

    Si falla alguna de estas tres cosas se puede probar a reiniciar el servicio de bluetooth entero (/etc/init.d/bluetooth restart) o a descargar y volver a cargar el driver del dispositivo bluetooth que tengamos (puede variar según el hardware).

miércoles, 12 de diciembre de 2007

Configuración de un NAP bluetooth en Ubuntu Linux

En la jerga de bluetooth un NAP es un Network Access Point. Es decir, podemos hacer que nuestro ordenador actúe cómo router o pasarela para conectarse a Internet desde algún dispositivo que se comunique por bluetooth, como una PDA o un teléfono móvil.

Ubuntu tiene unas buenas utilidades gráficas para el manejo de dispositivos bluetooth, pero están orientadas al intercambio de ficheros y utilización como módem de los teléfonos móviles. No he sido capaz de configurar un NAP solo con esas utilidades, así que hay que hacerlo por línea de comandos. Para ello, hay que configurar por un lado la parte concreta de bluetooth, y por otro la parte más general de red del sistema. Estos pasos están pensados para Ubuntu y Debian, pero en otros sabores de Linux serán similares.

Configuración de la parte bluetooth

Para empezar, si no lo tenemos ya hay que instalar las utilidades bluetooth, ejecutando como root:

aptitude install bluez-utils

Lo primero será comprobar que el sistema detecta el adaptador de bluetooth que tengamos en el PC, mediante el comando:

hcitool dev

Deberá aparecer algo parecido a:

Devices:
hci0 00:03:7A:EE:B6:16

Donde hci0 es el dispositivo bluetooth y los números su dirección MAC. Si no aparece nada, es que el sistema no está detectando el adaptador.

Editar el fichero /etc/default/bluetooth. Está muy bien comentado qué es cada parámetro de los que aparecen en él, para nuestros propósitos será necesario asegurarse de que, al menos, los siguiente valores están así:

BLUETOOTH_ENABLED = 1

PAND_ENABLED = 1
PAND_OPTIONS="--devup /etc/bluetooth/pan/dev-up"
PAND_OPTIONS=$PAND_OPTIONS" --listen --role NAP "

SDPTOOL_OPTIONS="add NAP"

Aquí hay un par de cosas importantes que no vienen configuradas por defecto y que no he visto bien explicado en ningún sitio: En la primera línea PAND_OPTIONS indicamos la ruta de un script que se ejecutará cuando se establezca la conexión para levantar el interface. Este script no existe, hay que crearlo; es muy simple y más abajo se explica cómo hacerlo. El otro detalle es que en la otra línea donde pone PAND_OPTIONS, si no le añadimos lo que hemos puesto en la línea anterior se perderá. Para que no ocurra, se pone primero el valor que ya tenía, con $PAND_OPTIONS, y a continuación se le concatenan los nuevos valores.

A continuación, editar el fichero /etc/bluetooth/hcid.conf, y modificar la que pone passkey, donde indicaremos un password para la conexión desde la PDA. Más abajo donde pone Default link mode deberá poner: lm accept,master;

En el paquete bluez-utils hay una cosa mal en el script de arranque /etc/init.d/bluetooth, y es que no se lanza el demonio del servicio SDP, que se encarga de mostrar los servicios ofrecidos por nuestro servidor a los dispositivos que se quieran conectar a él. Para que lo lance deberemos buscar en el mencionado fichero la parte donde pone start) y veremos que hay varias líneas donde pone 'start_algo || true'. Añadiremos run_sdptool || true



Configuración de la parte de red del sistema

Cuando se establezca la conexión bluetooth se creará un interface llamado bnep0, que deberá tener su dirección IP. Para hacerlo más simple, suponemos que esta dirección es estática, y lo configuramos en el fichero donde se encuentran todos los interfaces de red del sistema, en /etc/network/interfaces :

auto bnep0
iface bnep0 inet static
address 192.168.2.1
netmask 255.255.255.0
gateway 192.168.0.1 (o el que tengamos en nuestra conexión a Internet por defecto)

Con esto configuramos la IP, pero el interface no estará activo hasta que no se conecte un dispositivo como una PDA. Para activarlo cuando llegue ese momento es necesario un pequeño script al que nos hemos referido más arriba. Lo habíamos configurado para que se llamara /etc/bluetooth/pan/dev-up, pero podría estar en cualquier otro sitio. Su contenido es el siguiente:

#!/bin/sh
ifup --force $1

La opción de --force es mejor ponerla porque a veces al terminar la conexión el interface se queda creado y la siguiente vez no se vuelve a levantar porque se piensa que sigue activo. El script este es ejecutado por el demonio que atiende las conexiones bluetooth, y le pasa como parámetro el nombre del interfaz creado, en nuestro caso bnep0.

Para que el PC haga de router y conseguir así que la PDA se conecte a internet, deberemos ejecutar estos dos comandos:

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Suponiendo que sea eth0 la tarjeta de red por la que salimos. Estos comandos pueden ponerse en algún script de arranque para que se ejecuten al iniciar el sistema.

Para terminar, reiniciaremos los servicios de bluetooth y de red para asegurarnos de que los cambios se aplican:

/etc/init.d/networking restart
/etc/init.d/bluetooth restart

Conexión desde la PDA

Esta parte ya depende del dispositivo que tengamos. En mi caso, una PDA HP iPAQ.

Lo primero es configurarle una dirección IP. Por simplificar, se la pongo también estática y la configuro como tarjeta de red. Esto también es importante, he visto muchos tutoriales que para hacer esto mismo usan una conexión serie, como si fuera un módem. En nuestro caso todo lo contrario, lo hacemos como si fuera una tarjeta ethernet.

A continuación, activar el interface bluetooth y escanear en busca de dispositivos. Deberá aparecer nuestro PC. Lo seleccionaremos y saldrán los servicios ofrecidos. Debería aparecer uno llamado "Network Access Point" o similar. Lo seleccionaremos y nos pedirá que introduzcamos un PIN, que es el que habremos configurado en el fichero /etc/bluetooth/hcid.conf

Y si todo va bien, se establecerá la conexión. En nuetro PC al ejecutar un ifconfig aparecerá el interface bnep0 y si hacemos ping a la IP de la PDA deberá responder. Parece complicado, pero después de hacerlo tres o cuatro veces es muy sencillo :-)

Más información:
http://bluez.sourceforge.net/contrib/HOWTO-PAN
http://quozl.netrek.org/bluetooth/
http://www.triptico.com/software/bluetooth.html