El protocolo IrDA (popularmente conocido como «infrarrojos»), fue un protocolo de transferencia de ficheros bastante popular durante los años 90 y 2000. Algunos modelos antiguos de portátil, así como los primeros móviles (antes de la popularización del Bluetooth) incorporaban este sistema como una manera sencilla de compartir ficheros entre dispositivos.
Como inconveniente tenía la obligación de mantener los equipos con sus receptores frente a frente a poca distancia, y la lentitud de su transmisión.
Con la popularización del Bluetooth, este protocolo ha quedado obsoleto, siendo retirados sus drivers del kernel Linux. Pero todavía podemos encontrar equipos antiguos donde se requiera del uso del mismo para transferencia de ficheros. Por esta razón, en este tutorial vamos a explicar como logré hacer funcionar un adaptador USB-IrDA en Debian 10.
Necesitaremos:
- Un adaptador USB – IrDA (en mi caso, SigmaTel, Inc. STIr4200 IrDA Bridge)
- Paquetes:
- binutils
- dkms
- irda-utils
- autoconf
- Drivers de IrDA del kernel Linux
- Instalación de los drivers
El primer paso para hacer funcionar el dispositivo es instalar los drivers.
Los módulos de los dispositivos IrDA fueron retirados hace varias años de los fuentes del kernel. Pero, por suerte, en este repositorio podemos encontrar una recopilación de estos módulos, listos para ser compilados con la última versión del kernel:
https://github.com/cschramm/irda- Descarga de los fuentes
Para descargar los fuentes, clonamos el repositorio usando git. Si no lo tenemos instalado, podemos instalarlo conapt install git
Y clonamos el repositorio congit clone https://github.com/cschramm/irda
Entramos en el directorio y comprobamos que se hayan descargado correctamente:cd irda
- Instalación de dependencias
Para poder compilar los drivers, se necesitan ciertas dependencias. Las instalamos desde aptapt install dkms binutils autoconf
- Compilación de los drivers
Una vez con todas las dependencias necesarias, iniciamos la compilación de los drivers con los siguientes comandos:autoconf -f && ./configure
dkms install "irda/$(git show --pretty=format:"%cd~%h" --date="format:%Y%m%d" | head -1)"
La compilación puede tardar varios minutos. Una vez terminado, nos mostrará un mensaje indicando que la compilación ha terminado de forma exitosa.
Este proceso también nos instalará los módulos dentro del kernel, ahorrando el proceso de copiarlos manualmente. - Carga de los módulos de los drivers
Una vez instalados los módulos, los cargamos con:modprobe irda-usb
- Descarga de los fuentes
- Instalación de las herramientas
Con los pasos anteriores, ya disponemos de los drivers para hacer funcionar el adaptador USB-IrDA. Pero, para poder realizar la transmisión, necesitamos herramientas preparadas para este protocolo.
En Debian, estas herramientas se encuentran en el paquete irda-utils. Pero, al igual que los drivers, este paquete fue retirado en las últimas versiones. Aunque aún podemos descargarlo desde el repositorio online. Lo descargamos con wget.wget http://ftp.de.debian.org/debian/pool/main/i/irda-utils/irda-utils_0.9.18-15_amd64.deb
Una vez descargado, lo instalamos con dpkgdpkg -i irda-utils_0.9.18-15_amd64.debirda-utils_0.9.18-15_amd64.deb
Con esto ya dispondremos de las herramientas necesarias para realizar nuestra transmisión. - Realizando la transmisión
Antes de iniciar, debemos asegurarnos de que ambos dispositivos tienen sus receptores frente a frente.
Hecho esto, usamos el comando irattach para escanear los dispositivos.irattach irda0 -s
Si todo ha ido bien, el otro dispositivo debería avisar de haber detectado nuestro adaptador IrDA. Lo comprobamos con este otro comando:irdadump
- Enviando archivos
Para enviar archivos, usamos el comando ircpircp [fichero_a_enviar
]
Donde fichero_a_enviar será la ruta del fichero que queremos enviar al otro dispositivo. Esto iniciará la transmisión, que podrá durar varios minutos, dependiendo del tamaño del archivo.
Si todo ha ido bien, la transmisión finalizará y el otro dispositivo podrá acceder al fichero transmitido.
- Enviando archivos
- Recibiendo archivos
Si queremos recibir archivos, debemos activar la transmisión con ircp -rircp -r [directorio_destino
]
Donde directorio_destino será la ruta del directorio donde queremos que se guarden los archivos recibidos.
Iniciamos la transmisión desde el dispositivo origen, y esperamos.
Si todo ha ido bien, al finalizar la transmisión nos aparecerá en dicho directorio el fichero enviado por el dispositivo origen.
Podemos encontrar mas información sobre estas herramientas, en este artículo
https://www.forosuse.org/forosuse/showthread.php?14992-infrarrojo-sigmatel-4200&p=124960#post124960