Instalar y configurar un dispositivo de infrarrojos en Linux.

Este tutorial o manual esta basado en el dispositivo CIR4u de conceptronic, con chip STIR4210 de Sigmatel.
Sigmatel fue adquirida por freescale en el año 2008 y como puede parecer lógico, la página web no se encuentra operativa.
Gracias a Internet Archive, es posible encontrar información del chip, driver, firmware para Linux y notas de aplicación.
Puedes consultar la información en este enlace:
http://web.archive.org/web/20050206010419/http://www.sigmatel.com/products/technical_docs.htm
o bien descargarla desde el blog.

Información técnica (Datasheet)

Esquema adaptador USB-IR

Firmware stir4210-4220-4116 (Linux)

Instalación.

1 Abrir un terminal, Aplicaciones -> Accesorios -> Terminal o bien Alt+F2 y ejecutar "gnome-terminal" sin comillas.

2 Instalar los siguientes paquetes:

sudo aptitude install irda-utils openobex-apps

3 Copiar en el directorio /lib/firmware los dos parches (42101001.sb, 42101002.sb) que se encuentran dentro del archivo "stir4210_4220_4116_patch_files.tar.gz"

Desde la carpeta actual.

tar zxvf stir4210_4220_4116_patch_files.tar.gz
sudo cp *.sb /lib/firmware


3 Crear el fichero /etc/modprobe.d/blacklist-usbserial.

sudo gedit /etc/modprobe.d/blacklist-usbserial

4 Añadir este contenido.

#If these modules are loaded stir421x driver won't work.
blacklist ir_usb
blacklist usbserial

guardar y cerrar el archivo.

Configuración.

5 Abrir el fichero de configuración /etc/default/irda-utils

sudo gedit /etc/default/irda-utils

Configurar tal y como aparece aquí.

    ENABLE="true"
    AUTOMATIC="false"
    DISCOVERY="true"
    DEVICE="irda0"
    DONGLE="none"
    SETSERIAL=""

guardar y cerrar el archivo.

Ahora es necesario reiniciar el sistema con el dispositivo conectado, o bien conectarlo una vez reiniciado.
Si optamos por conectar el dispositivo después de reiniciar, es necesario iniciar el servicio de irda.

sudo /etc/init.d/irda-utils restart

Verificación.

6 Para verificar que el dispositivo es reconocido y funciona correctamente, enviar los siguientes comandos:

dmesg

respuesta obtenida:


[  349.299342] IRDA-USB found at address 5, Vendor: 66f, Product: 4210
[  349.300002] irda_usb_parse_endpoints(), And our endpoints are : in=02, out=01 (512), int=00
[  349.310429] irda_usb_init_qos(), dongle says speed=0x17F, size=0x20, window=0x8, bofs=0x80, turn=0x4
[  349.311660] IrDA: Registered device irda0
[  349.311665] usb 1-1: firmware: requesting 42101002.sb
[  349.323706] stir421x_patch_device(): Received firmware 42101002.sb (1687 bytes)
[  349.343998] irda_usb_init_qos(), dongle says speed=0x17F, size=0x20, window=0x8, bofs=0x80, turn=0x4
[  349.344052] usbcore: registered new interface driver irda-usb
[  349.344059] USB IrDA support registered

ifconfig irda0

respuesta obtenida:
irda0     Link encap:IrLAP  direcciónHW 00:00:00:00
          NOARP  MTU:2048  Métrica:1
          Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:0 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:8
          Bytes RX:0 (0.0 B)  TX bytes:0 (0.0 B)

sudo irdadump

respuesta obtenida:
20:21:57.966408 xid:cmd e52c5b89 > ffffffff S=6 s=0 (14)
20:21:58.053362 xid:cmd e52c5b89 > ffffffff S=6 s=1 (14)
20:21:58.131360 xid:rsp e52c5b89 < 51473487 S=6 s=1 TuxPalm hint=8220 [ PDA/Palmtop IrOBEX ] (25)
20:21:58.141901 xid:cmd e52c5b89 > ffffffff S=6 s=2 (14)
20:21:58.229340 xid:cmd e52c5b89 > ffffffff S=6 s=3 (14)
20:21:58.318339 xid:cmd e52c5b89 > ffffffff S=6 s=4 (14)
20:21:58.406361 xid:cmd e52c5b89 > ffffffff S=6 s=5 (14)
20:21:58.493326 xid:cmd e52c5b89 > ffffffff S=6 s=* laptop hint=0400 [ Computer ] (22)
20:22:00.966316 xid:cmd e52c5b89 > ffffffff S=6 s=0 (14)
20:22:01.053312 xid:cmd e52c5b89 > ffffffff S=6 s=1 (14)
20:22:01.141305 xid:cmd e52c5b89 > ffffffff S=6 s=2 (14)
20:22:01.229332 xid:cmd e52c5b89 > ffffffff S=6 s=3 (14)
20:22:01.307243 xid:rsp e52c5b89 < 51473487 S=6 s=3 TuxPalm hint=8220 [ PDA/Palmtop IrOBEX ] (25)
20:22:01.317332 xid:cmd e52c5b89 > ffffffff S=6 s=4 (14)
20:22:01.405295 xid:cmd e52c5b89 > ffffffff S=6 s=5 (14)
20:22:01.493324 xid:cmd e52c5b89 > ffffffff S=6 s=* laptop hint=0400 [ Computer ] (22)
20:22:03.965332 xid:cmd e52c5b89 > ffffffff S=6 s=0 (14)
20:22:04.054140 xid:cmd e52c5b89 > ffffffff S=6 s=1 (14)
20:22:04.141362 xid:cmd e52c5b89 > ffffffff S=6 s=2 (14)
xid:rsp e52c5b89 < 51473487 S=6 s=2 TuxPalm hint=8220 [ PDA/Palmtop IrOBEX ] (25)
20:22:04.229350 xid:cmd e52c5b89 > ffffffff S=6 s=3 (14)
20:22:04.318286 xid:cmd e52c5b89 > ffffffff S=6 s=4 (14)
20:22:04.406349 xid:cmd e52c5b89 > ffffffff S=6 s=5 (14)
20:22:04.494330 xid:cmd e52c5b89 > ffffffff S=6 s=* laptop hint=0400 [ Computer ] (22)
^C
24 packets received by filter


Para detener el comando irdadump, es necesario pulsar ctrl-c.

Nota:  Si disponemos de un dispositivo de infrarrojos, podemos colocarlo delante para comprobar la comunicación entre ambos (Ver texto en negrita).

0 comentarios:

Publicar un comentario