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.925 ]

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

Fazendo o kernel 2.6 resolver o problema da montagem de discos USB

DHCP sem (quase :-D) mistérios

Windows CE/PocketPC com Linux, sim!

Utilizando os scripts SystemV a seu favor

NPTL, Exec-Shield e outros palavrões que fazem seus programas crasharem

Leitura recomendada

Criando wallpapers animados para o Enlightenment 17

Configurando um Super OpenBox!

Funcionalidades do Eclipse no Vim - Usando o Eclim

Criando ou aumentando a memória virtual (SWAP) no Linux

Instalando Apache, PHP e PostgreSQL no Slackware 12 (compilando)

  
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