Enredando con el Bluetooth

calendario07/07/2004 reloj13:18 calendarioCategorías: Linux, Peripecias ComentarComentar

Siempre se me había atravesado el tema del bluetooth en linux, y bueno, por el momento solo he conseguido la mitad, es decir, he conseguido enviar cosas del pc al movil, pero al revés no, porque por el momento no me aparecen servicios locales en el movil del pc, así que por lo menos, voy diciendo lo que hice hasta ahora. Tras, como digo, de decenas de manuales, tutoriales y demás, me di por vencido, y entrando en una web que os recomiendo, Delirios de un informático, se me ocurrió retar al autor de esta web, ya que hasta ahora me había dado la impresión de que era alguien que controlaba, y una vez más me lo demostró brinándonos este tutorial en castellano (el primero que veo en toda mi andadura), así que me puse a seguir el tutorial, y estas son mis peripecias.
En mi caso, como ya contaba con tener que andar con el bluetooth cuando compilé el kernel, no me hizo falta tocar nada, simplemente puse en el /etc/modules.autoload.d/kernel-2.6 para que cargasen los módulos que necesito al inicio:

usbcore
ohci-hcd

Y luego empezar a emerger todo lo del portage que contiene bluez, es decir:

emerge bluez-bluefw
emerge bluez-hcidump
emerge bluez-hciemu
emerge bluez-kernel
emerge bluez-libs
emerge bluez-pan
emerge bluez-sdp
emerge bluez-utils
emerge gnome-bluetooth
emerge openobex

Una vez instalado todo, enchufé el bluetooth, y como no tenía el módulo ohci-hcd cargado en ese momento (se encarga de gestionar el bluetooth, grosso modo hablando), pues no me iba en un principio, así que lo cargué:
modprobe ohci-hcd
Y ya al hacer lsusb, aparecía:

root@CaNuTo patoroco # lsusb
Bus 002 Device 002: ID 03f0:1904 Hewlett-Packard
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 003: ID 0db0:1967 Micro Star International
Bus 001 Device 002: ID 05e3:0760 Genesys Logic, Inc.
Bus 001 Device 001: ID 0000:0000

Por lo que ahora había que comprobar que está aceptado:
usr/sbin/hciconfig -a
Y con esto debería aparecer algo como esto:

root@CaNuTo patoroco # /usr/sbin/hciconfig -a
hci0:   Type: USB
        BD Address: 00:00:00:00:00:00 ACL MTU: 0:0  SCO MTU: 0:0
        DOWN
        RX bytes:0 acl:0 sco:0 events:0 errors:0
        TX bytes:0 acl:0 sco:0 commands:0 errors:0
        Features: 0x00 0x00 0x00 0x00
        Packet type: DM1 DH1 HV1
        Link policy:
        Link mode: SLAVE ACCEPT

En mi caso no apareció a la primera, por lo que tuve que hacer:
usr/sbin/hciconfig hci0 up
Y ya aparecería up el dispositivo:

root@CaNuTo patoroco # /usr/sbin/hciconfig -a
hci0:   Type: USB
        BD Address: 00:10:DC:E9:3E:3A ACL MTU: 192:8  SCO MTU: 64:8
        UP RUNNING PSCAN ISCAN
        RX bytes:77 acl:0 sco:0 events:9 errors:0
        TX bytes:31 acl:0 sco:0 commands:8 errors:0
        Features: 0xff 0xff 0x0f 0x00
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy:
        Link mode: SLAVE ACCEPT
        Name: 'Linux Mola'
        Class: 0x000000
        Service Classes: Unspecified
        Device Class: Miscellaneous,
        HCI Ver: 1.1 (0x1) HCI Rev: 0x20d LMP Ver: 1.1 (0x1) LMP Subver: 0x20d
        Manufacturer: Cambridge Silicon Radio (10)

Ahora hay que configurar el bluetooth, para lo que editamos el archivo /etc/bluetooth/hcid.conf, y buscamos la línea donde pone lm accept;, la comentamos (#), y descomentamos la que pone lm accept,master;. También podemos editar el archivo /etc/bluetooth/pin, que es el código que deberemos de meter en el teléfono para emparejar, aunque yo lo dejé en el que viene por defecto, 1234.
Iniciamos el bluetooth (o lo reiniciamos, depende como estuviese antes :D):
etc/init.d/bluetooth start
Y ya podemos poner en nuestro movil a buscar, y emparejarlo con el ordenador. Este paso lo he conseguido hacer una vez simplemente, y luego no ha habido manera, pero para enviar cosas del PC al móvil, pide autorización de cualquiera de los dos modos, así que me da igual, que me da lo mismo :).
Ahora para recibir cosas en el PC, según comentan en Delirios, sería sencillamente operar con normalidad en el movil, y los archivos enviados aparecerían en el directorio de cada usuario (/home/patoroco en mi caso), pero como digo, por ahora no lo he conseguido.
Lo que si he conseguido ha sido enviarme archivos del PC al móvil, que por lo menos, algo es algo. Para hacerlo, lo primero que tuve que hacer es «adivinar» la dirección MAC de mi movil:

root@CaNuTo patoroco # hcitool scan
Scanning ...
        00:0A:D9:AA:FC:E5       Dios

Si, ¡he encontrado a Dios! Ah, que es mi móvil 🙂 que como se ve, tiene de dirección 00:0A:D9:AA:FC:E5, y ahora, para enviar cualquier archivo, habría que hacer:

gnome-obex-send /home/patoroco/amsn_received/smileyhartbroken.jpg --dest=00:0A:D9:AA:FC:E5

Y ya aparecería una ventanita, diciendo que está enviando.

Bluetooth Enviando

Apuntar algo importante, en mi caso, he estado trasteando con un bluetooth MSI de 100 metros, y el teléfono, un Sony Ericsson Z600, y decir que en este último, al enviar algo pide autorización, y créo que en el caso de Nokias (igual solo los de Symbian), se puede permitir siempre la recepción, por lo que andad pendientes del movil para ver si lo necesitais :).

Solo me queda «despedirme» de este minitutorial, basado como bien digo en la web Delirios de un informático, ya que he mirado bastantes mas enlaces sacados de Google, pero ninguno me había dejado ni enviar ni emparejar (aunque solo fuese una vez), y pediros que dejeis comentarios sobre lo que os ha parecido.

Comentarios