Table of Contents
Un telecomando per controllare Linux
I programmi
lircd
Il programma lircd
è contenuto nel pacchetto Debian Etch lirc. Si tratta di un demone che riceve i codici dal ricevitore infrarosso e li rende disponibili ad altri programmi tramite Unix socket.
Grazie alla disponibilità di numerosi driver può interfacciarsi a svariati dispositivi (su porta seriale, parallela, schede TV, …). A seconda del dispositivo la comunicazione con l'hardware avviene tramite i moduli standard del kernel oppure con moduli kernel da compilare ad-hoc (LIRC kernel modules). Nel secondo caso Debian mette a disposizione il pacchetto lirc-modules-source, con i sorgenti da compilare rispetto al kernel in uso.
irw
Utile per debug: mentre lircd
è in esecuzione stampa tutti i comandi ricevuti via Unix socket. Utile soprattutto per vedere il nome esatto del comando, che serve per costruire i file di configurazione di irexec e simili. L'output del comando è qualcosa di simile:
# irw 0000000000000025 00 Chan_Last PinnacleSysPCTVRemote 000000000000003f 00 Chan+Play PinnacleSysPCTVRemote 000000000000001d 00 Menu PinnacleSysPCTVRemote 000000000000003c 00 Mute PinnacleSysPCTVRemote
lircmd
Demone che riceve i codici telecomando da lircd
e li converte in azioni del mouse. Può emulare un mouse MouseSystems, IntelliMouse o IMPS/2.
irxevent
Fa parte del pacchetto Debian lirc-x
, è simile al programma irexec
, ma studiato per funzionare nell'ambiente X-Window.
irexec
Fa parte del pacchetto lirc
. Il programma deve essere lanciato come demone, resta in attesa dei codici telecomando ricevuti da lircd
e quindi esegue le azioni specificate in un file di configurazione (solitamente $HOME/.lircrc
). Dovrebbe essere lanciato dall'utente che esegue l'applicazione da controllare con il telecomando. Probabilmente ogni applicazione ha bisogno di un diverso file di configurazione .lircrc
.
Un esempio estratto del file di configurazione per controllare il programma tvtime:
begin prog = irexec button = POWER config = tvtime & config = tvtime-command QUIT end # Menu navigation. begin prog = irexec button = CHANNEL+ config = tvtime-command UP repeat = 1 end begin prog = irexec button = VOL+ config = tvtime-command RIGHT repeat = 2 end ...
Come si vede si utilizza un programma di supporto (tvtime-command
) che invia il comando opportuno ad una istanza del programma tvtime
in esecuzione. Per attivare il tutto si esegue:
irexec -d lircrc.tvtime
irkick
Accessorio di KDE, fa parte del pacchetto Debian Etch kdelirc. Riceve i codici telecomando dal demone lircd
e li rende disponibili all'ambiente KDE. Può avviare applicazioni, inviare azioni specifiche ai programmi compatibili, ecc.
L'hardware
Kanam Accent HT-PC IR-100 Remote Control
The Kanam Accent infrared receiver is integrated into the Home Theater PC case (I own the HT200B model). It is based on the AT89C2051-24PI chip, which decodes RC5 based Philips Remote controls.
The power button on the remote, controls the mainboard power switch. The IR receiver must be powered from the 5v standby line of the power supply. The remote keys are delivered to user processes via the serial port, serial communication uses the standard serial port at 1200, 8N1. For some insight on the protocol, see the source code of my LIRC driver (hw_accent.c, plenty of comments).
LIRC does not support this remote control out of the box (as of v.0.8.0). To make it working, I wrote a new driver called accent, based on the pinsys one (Pinnacle Systems PCTV). The first working patch was provided by Landro Dardini.
Here you are the sources of my Kanam Accent driver and here a Debian Testing (Etch) binary package including it: lirc_0.8.0-9_i386.deb. I hope to let include this new driver in the upcoming versions of LIRC.
To use the remote in a Debian system, just configure /etc/lirc/hardware.conf
setting DRIVER=“accent”
and DEVICE=“/dev/ttyS0”
. Then copy lircd.conf.kanam_accent_serial
from /usr/share/lirc/remotes/
to /etc/lirc/lircd.conf
and restart the lirc service.
To start the lircd from the comman line and see some debugging messages (lircd does not go to the background) use:
/usr/sbin/lircd -n --driver=accent --device=/dev/ttyS0 /etc/lirc/lircd.conf
and check the received codes with irw:
irw 9046426266220900 00 1 kanam_accent_serial 9046422264220900 00 2 kanam_accent_serial 9046426266422600 00 win_key kanam_accent_serial 9046426266094200 00 menu_key kanam_accent_serial 9046422289664200 00 vol- kanam_accent_serial 9046422289664200 01 vol- kanam_accent_serial 9046422289664200 02 vol- kanam_accent_serial 9046426262260900 00 vol+ kanam_accent_serial 9046422266260900 00 esc kanam_accent_serial 9046422299424200 00 left kanam_accent_serial 9046422291664200 00 up kanam_accent_serial 9046422289264200 00 ent kanam_accent_serial ...
Note the repeated vol- key.
Telecomando Pinnacle PCTV Stereo
Telecomando fornito in dotazione alla scheda PCTV Stereo. Il ricevitore infrarosso si collega alla porta seriale. Il driver utilizzato da lircd è pinsys tramite il modulo seriale standard del kernel (non sono richiesti quindi moduli kernel speciali LIRC).
Programmi da telecomandizzare
tvtime
To start searching for stations run tvtime-scanner
:
Reading configuration from /etc/tvtime/tvtime.xml Reading configuration from /home/niccolo/.tvtime/tvtime.xml Scanning using TV standard PAL. /home/niccolo/.tvtime/stationlist.xml: No existing PAL station list "Custom". Scanning from 44.00 MHz to 958.00 MHz. Found a channel at 166.00 MHz (165.75 - 166.25 MHz), adding to channel list. Found a channel at 191.50 MHz (190.00 - 193.00 MHz), adding to channel list. ... Checking 207.25 MHz: - No signal
Station list is saved into ~/.tvtime/stationlist.xml
.
The tvtime web site suggests to use irexec
, we will use the KDE applet IRKick
instead, because we want a complete integration with other desktop applications.
- Right-clicking the IRKick system tray icon, menu Configure…
- Add a new mode for the current remote control, call it tvtime.
- Add an an action into the default mode: KDE Program Launcher, Execute,
/usr/bin/tvtime
. Associate it to the remote key hdtv. - For the same remote key hdtv, add the action Switch to tvtime mode, with the option Do actions before.
- In the tvtime mode, add all the keys that you need. Each key will execute the program
/usr/bin/tvtime-command
via KDE Program Launcher. Pass to tvtime-command the argumentCHANNEL_1
,CHANNEL_2
,TOGGLE_FULLSCREEN
,LEFT
,DOWN
, … See the man page fortvtime-command
. - In the tvtime mode, add an action Exit from current mode associated to the esc remote key.
xmms
Esiste il pacchetto Debian xmms-lirc
, un plug-in per Xmms che dovrebbe abilitare il controllo via infrarossi. Ha bisogno di un file di configurazione standard .lircrc
, ma non serve avere irexec in esecuzione.