Antes de tudo gostaria de contar uma pequena história para poder explicar o porquê de ter que usar o LIRC ;)
Eu (espero que não tenha nenhum xiita Linux lendo isso), que sou estudante de ciência da computação, participei do S2B - (Students to Business) aqui em Recife/Olinda que é um programa da Microsoft que visa dar treinamento aos jovens estudantes para poderem conhecer as tecnologias da Microsoft. Eu fiz na área de desenvolvimento. Tudo ok... fui um dos felizardos que chegaram até a etapa final.
Nós aqui de Recife/Olinda, depois de tudo ter acabado, recebemos um convite - via e-mail - para conhecer a sede da Microsoft que fica no Porto Digital. Tudo muito bonito (fui com a camisa do Linux LPI, que ganhei no Segundo Encontro de Software Livre, por baixo de outra camisa de botão :P). Vimos algumas palestras... pronto! no final foram entregues alguns brindes e eu, que já estava triste porque todos os bonés e mousepads já tinham sido entregues, quase que sem esperanças fui sorteado de surpresa no final e ganhei um Controle Remoto Multimidia! rs
O 'pacote' veio com:
- Receptor Infravermelho USB
- Uma pequena extensão (infravermelho) que conecta no receptor principal
- Controle Remoto
Já ia esquecendo... Logo que ganhei me informaram que só funcionaria no Windows Vista; O XP não iria reconhecer e não tinha drivers para utilizá-lo. Realmente o XP até viu que precisava do driver "BB+ Dongle(e.d)", mas não encontrou uma versão para XP e não instalou.
Foi nesse momento que me veio a idéia de tentar fazer com que o controle funcionasse no Linux, já que no Windows ele não iria servir para nada e, convenhamos que sair por aí procurando drivers (não oficiais) no submundo do windows... prefiro não comentar! hehehe
Logo de início tinha um pequeno problema: QUE CONTROLE É ESSE?
Eu pensei que era um controle feito pela Microsoft, mas não era. Depois de algumas horinhas no google eu descobri (nem sei como) que o controle é da Philips é um modelo parecido com o SRM5100/10 mas o meu não tem os botões coloridos que esse tem e também não tem o botão MODE que troca entre TV, DVD, AUX... Bom, pelo menos já descobri o fabricante.
Agora vamos colocar tudo para funcionar...
Com o comando:
Eu obtive a seguinte resposta:
03: USB 00.0: 0000 Unclassified device
[Created at usb.122]
UDI: /org/freedesktop/Hal/devices/usb_device_471_60c_CIOC_if0
Unique ID: mZxt.3mwsgWi9H32
Parent ID: uIhY.gkSaZmjGyhD
SysFS ID: /devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.0
SysFS BusID: 3-2:1.0
Hardware Class: unknown
Model: "Philips BB+ Dongle(e.d)"
Hotplug: USB
endor: usb 0x0471 "Philips"
Device: usb 0x060c "BB+ Dongle(e.d)"
Revision: "1.01"
Serial ID: "CIOC"
Driver: "lirc_mceusb2"
Driver Modules: "lirc_mceusb2"
Speed: 12 Mbps
Module Alias: "usb:v0471p060Cd0101dc00dsc00dp00icFFiscFFipFF"
Driver Info #0:
Driver Status: lirc_mceusb2 is active
Driver Activation Cmd: "modprobe lirc_mceusb2"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #6 (Hub)
**No caso peguei essas informações depois de já ter configurado tudo e a lista é um pouco maior ;).
Mas o importante dessa "lista" é a parte onde informa que o módulo (driver) necessário para funcionar é o lirc_mceusb2
Lembrando que antes de tudo é necessário ter: LIRC e o Lirc Kernel Modules instalado.
Para instalá-los entre no Yast:
(No grupo) Software => Gerenciamento de Software (Software Management)
Procure pelo lirc e instale os pacotes pendentes (no meu caso precisei instalar o Lirc Kernel Modules)
Vamos para o LIRC.
LIRC é o acrônimo de Linux Infrared Remote Control. (http://www.lirc.org)
Ele é o serviço que vai captar as informações do controle e fazer algo funcional no Linux ;)
Antes vamos ativar os modulos
precisaremos do lirc_dev e o lirc_mceusb2
PS.: O lirc_mceusb2 precisa do usbcore (acredito que já esteja carregado, mas caso contrário carregue-o)
Verificando se tudo está OK!
Pronto! Agora já temos nossos módulos carregados.
# lsmod | grep lirc
lirc_mceusb2 30724 1
lirc_dev 30632 1 lirc_mceusb2
usbcore 164812 4 lirc_mceusb2,ehci_hcd,uhci_hcd
Vamos configurar o LIRC
Entre no Yast:
(No grupo) Sistema (System) => Editor do /etc/sysconfig (/etc/sysconfig Editor)
Com o editor aberto clique em: Hardware -> Lirc
Nele modifique as seguintes variaveis:
LIRC_DEVICE:/dev/lirc0
LIRC_MODULE: lirc_mceusb2
PS.:Você poderá ir direto no arquivo e fazer as mudanças. O arquivo fica em /etc/sysconfig/lirc
Entre no terminal (konsole) e digite:
provavelmente ele estará desativado (unused) então ative-o ;)
Se tudo foi feito corretamente ele estará ativo.
Testando o Controle
Pressione algumas teclas do controle para testar (para sair basta usar o Ctrl+C)
Agora é necessário configurar o LIRC para que ele entenda quais teclas estão sendo pressionadas no controle.
Para isso utilizaremos o irrecord que irá gerar o arquivo de configuração do controle remoto.
Basta seguir o que é pedido na tela:
1. Na primeira etapa você irá pressionar as teclas (uma por vez) para testar a recepção.
2. Na Segunda etapa você irá colocar nome para as teclas e depois irá pressionar a tecla que você nomeou.
Gerado o arquivo, agora basta colocá-lo na pasta /etc/ e renomeá-lo para lircd.conf
Pronto seu controle já estará configurado.
Mas nada funciona ainda!!!
É necessário criar um arquivo chamado .lircrc no diretório do usuário.
Aqui vai um exemplo de arquivo .lircrc:
Como pode ser visto no exemplo ele utiliza o irexec como programa que irá chamar outro comando.
O irexec deve ser utilizado como privilégio do usuário normal... basta digitar no terminal (konsole)
Para que não seja necessário chamar esse arquivo todas as vezes que você logar, crie um atalho na pasta .kde/Autostart
Ah claro... você poderia usar o irkick para fazer a configuração também ;)
Considerações Finais
Agradeço à Microsoft por ter me dado este brinde! :D Agora meu Linux está praticamente como um Media Center! (rsrs)
Aos sites utilizados para chegar no resultado final, foram muitos... o google ajudou bastante e claro o vivaolinux ;D
Espero que este 'tutorial' ajude mais alguém que esteja se aventurando em usar o LIRC. Depois de quebrar a cabeça vários dias eu consegui e vi que não é nenhum bicho de outro mundo ;).