Linux, USB-IrDA, T300 on the rocks

Um pequeno relato das aventuras de um Fedora Core 2, um dongle USB-IrDA e um Sony Ericsson T300 na luta para se comunicarem.

[ Hits: 28.935 ]

Por: Cesar Cardoso em 30/07/2004


Fazendo o infravermelho funcionar



Depois de uma tentativa frustrada de utilizar um "espelho" infravermelho (culpa minha, diga-se de passagem), resolvi partir para o adaptador USB. Achei um a um preço interessante no MercadoLivre, da IRCON (http://www.ircon.com.br), e que funcionava em Linux. Comprei o adaptador, o bichinho veio sem problemas. Logo que pluguei na USB, o lsusb do meu Linux (Fedora Core 2, kernel 2.6.6-1.435.2.3) avisou da existência:

Bus 001 Device 003: ID 0df7:0620 Mobile Action Technology, Inc. MA-620 USB Infrared Adapter

Esta MA-620 é um popular chip de interfaceamento USB-Serial, utilizado em diversos cabos de comunicação USB, como podemos ver no banco de dados mantido pelo projeto Linux-USB (http://www.qbik.ch/usb/devices/search_res.php?pattern=pl2303). E sim, o nome do módulo carregado pelo hotplug é pl2303, por causa do chipset PL2303 da Prolific, utilizado em conjunto com a MA-620.

O problema é que o simples carregamento do módulo 'pl2303' não significava nada. Era necessário descobrir como carregar os módulos do infravermelho. Jean Tourrilhes, um dos papas do wireless no Linux, comenta que os adaptadores USB-IrDA que utilizam a MA-620 seriam SIR, ou seja, aceitam velocidade até 115200. Como não estou usando EDGE, então está tudo OK mesmo :)

Procurando no Google, achei um email na linux-usb-users que continha algo interessante:
Neste email, o autor acaba publicando dois scripts para levantar e derrubar o infravermelho:

levanta-dongle.sh:

#!/bin/sh
#
# Necessário para fazer o kernel reconhecer dongle USB-IrDA
# com chipset MA620 USB IRDA.
# Original em http://www.mail-archive.com/linux-usb-users@lists.sourceforge.net/msg10908.html

# As duas linhas abaixo somente devem ser descomentadas se você não tem o hotplug instalado
#/sbin/modprobe uhci_hcd # mude aqui caso seu host USB seja OHCI ou EHCI
#/sbin/modprobe pl2303
#
# Carregando a base do IrDA

/sbin/modprobe irda
#
# O kernel, por padrão, limita a velocidade dos adaptadores USB-serial MA-600 (do qual o MA-620
# é um derivado) a 9600bps.
# Modifique a linha 197 de linux/drivers/net/irda/ma600-sir.c de #1 para #0 e recompile o módulo
# para que o módulo ma600-sir aceite velocidades maiores

echo 9600 > /proc/sys/net/irda/max_baud_rate
#echo 57600 > /proc/sys/net/irda/max_baud_rate
#
# Carregando o módulo de suporte à SIR

/sbin/modprobe irtty-sir
# Carregando o suporte das MA-600/MA-620
/sbin/modprobe ma600-sir
# Carregando o suporte a IrCOMM
/sbin/modprobe ircomm-tty
#
# Caso sua distro não tenha um script SystemV, descomente a linha abaixo
#/usr/sbin/irattach /dev/usb/ttyUSB0 -d ma600 -s

/etc/init.d/irda start

derruba-dongle.sh:

#!/bin/sh
#
# Agora é para parar o dongle
# Original em http://www.mail-archive.com/linux-usb-users@lists.sourceforge.net/msg10908.html
#
# Caso sua distro não tenha um script SystemV, descomente a linha abaixo
#killall irattach

/etc/init.d/irda stop
/sbin/modprobe -r ircomm-tty
/sbin/modprobe -r ma600-sir
/sbin/modprobe -r irtty-sir
/sbin/modprobe -r pl2303

Copiei os scripts para /usr/local/sbin e, como o Fedora Core 2 já vem com hotplug instalado, bastou criar o script /etc/hotplug/usb/pl2303:

#!/bin/bash
cd /etc/hotplug
. /etc/sysconfig/network-scripts/network-functions
. ./hotplug.functions

case $ACTION in
add|register)
        /usr/local/sbin/levanta-dongle.sh && exit 0 ;;
remove|unregister)
        /usr/local/sbin/derruba-dongle.sh && exit 0 ;;
esac

Com os scripts, estava tudo OK. Pluguei o dongle... e... e...

$ /sbin/ifconfig
irda0      Encapsulamento do Link: IrLAP  Endereço de HW 00:00:00:00
          UP RUNNING NOARP  MTU:2048  Métrica:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1435 errors:0 dropped:0 overruns:0 carrier:0
          colisões:0 txqueuelen:8
          RX bytes:0 (0.0 b)  TX bytes:22755 (22.2 Kb)
Página anterior     Próxima página

Páginas do artigo
   1. Resolvendo o problema da comunicação
   2. Fazendo o infravermelho funcionar
   3. Se comunicando com o telefone
   4. Indo além
Outros artigos deste autor

Configuração de rede para RedHat e similares utilizando VI/Emacs/etc

Criando um pinguim móvel com Fedora Core 1 e Siemens M50

Para não se perder no mundo da memória Flash

Utilizando os scripts SystemV a seu favor

Rumo a um pinguim móvel

Leitura recomendada

Asterisk - Definindo variáveis e manipulando fluxo de dados

Instalando impressora do Windows XP usando CUPS

Instalação do APT no SuSE 9.3

Cluster de alta disponibilidade para servidores web com Debian 7.1 + Corosync + Pacemaker + DRBD

Instalação e configuração do Bacula com interface web (Bweb/Brestore)

  
Comentários
[1] Comentário enviado por removido em 30/07/2004 - 00:40h

kra muito bom artigo.....

meu irmao comprou um celular com camera da nokia e estava mesmo kerendo saber algo do genero!

seu artigo serviu como uma luva....agora pelo menos eu sei q tem como fazer, agora eh soh tentar!

valeu t+

[2] Comentário enviado por agk em 30/07/2004 - 08:35h

Bom artigo, parabéns.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts