LIRC
Aus Fedorawiki.de
Inhaltsverzeichnis |
Installation per Yum
Je nach RPM-Paket werden nur bestimmte Fernbedienungen von lirc unterstützt. Hier ist es jedoch empfehlenswert, lirc von www.lirc.org neu zu compilieren. Wenn dieser Weg zu umständlich ist, kann natürlich auch mit Yum die Installation machen.
Kompilieren
Download von lirc-0.8.1.tar.gz oder neuer.
wget http://prdownloads.sourceforge.net/lirc/lirc-0.8.1.tar.gz
Entpacken des Archives mit
tar -xzvf lirc-0.8.1.tar.gz
oder einem ähnlichen Tools.
In das Verzeichnis lirc-0.8.1 wechseln und hier
./setup.sh
ausführen.
Punkt 1 Driver configuration anwählen.
Dann den Treiber auswählen.
| | Anmerkung: Einige Karten sind hier nicht angeführt, lassen sich jedoch unter dem Punkt "0 other -> 5 Linux input layer" konfigurieren. |
Unter Punkt 2 Software configuration können diverse Einstellungen gemacht werden, unter anderem, kann eingestellt werden, ob eine Alternative zu syslogd verwendet werden soll.
Anschliessend den Punkt 3 Save configuration and run configure ausführen. Darauffolgend
make
ausführen,
als "root" anmelden und
ausführen.
Daemon hinzufügen
Wenn nicht jedesmal von Hand die Verbindung zur Fernbedienung gestartet werden soll, kann im Verzeichnis /etc/rc.d/init.d der lirc-Daemon hinzugefügt werden.
Dazu die Datei lircd im Verzeichnis /etc/rc.d/init.d mit folgendem Inhalt anlegen. Diese Datei entspricht der Variante aus dem rpm-Paket.
#!/bin/sh
#
# $Id: lircd.init,v 1.1 2002/09/28 11:54:12 dude Exp $
# Startup script for the Linux Infrared Remote Control.
#
# chkconfig: - 90 10
# description: Enables infrared controls through LIRC.
#
# config: /etc/lircd.conf
# Source 'em up
. /etc/init.d/functions
[ -x /usr/sbin/lircd ] || exit 1
[ -x /usr/sbin/lircmd ] || exit 1
[ -f /etc/lircd.conf ] || [ -f /etc/lircmd.conf ] || exit 1
[ -f /etc/sysconfig/lircd ] && . /etc/sysconfig/lircd
RETVAL=0
start(){
if [ -f /etc/lircd.conf ]; then
echo -n $"Starting infrared remote control daemon: "
daemon lircd $LIRCD_OPTIONS
RETVAL=$?
echo
fi
if [ -f /etc/lircmd.conf ]; then
echo -n $"Starting infrared remote control mouse daemon: "
daemon lircmd
RETVAL=$?
echo
fi
if [ -f /etc/irexec.conf ]; then
echo -n $"Starting infrared command execution daemon: "
daemon irexec --daemon /etc/irexec.conf
RETVAL=$?
echo
fi
touch /var/lock/subsys/lircd
return $RETVAL
}
stop(){
if [ -f /etc/irexec.conf ]; then
echo -n $"Stopping infrared command execution daemon: "
killproc irexec
echo
fi
if [ -f /etc/lircmd.conf ]; then
echo -n $"Stopping infrared remote control mouse daemon: "
killproc lircmd
echo
fi
if [ -f /etc/lircd.conf ]; then
echo -n $"Stopping infrared remote control daemon: "
killproc lircd
echo
fi
RETVAL=$?
rm -f /var/lock/subsys/lircd
return $RETVAL
}
restart(){
stop
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status lircd
;;
condrestart)
[ -e /var/lock/subsys/lircd ] && restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart}"
RETVAL=1
esac
exit $RETVAL
Anschliessend ist noch
auszuführen.
Einrichten der Fernbedienung (bei Bedarf auch Logging)
Dazu die Datei /etc/logrotate.d/lircd mit folgendem Inhalt anlegen:
/var/log/lircd {
missingok
postrotate
[ -e /var/lock/subsys/lircd ] && /bin/kill -HUP `/bin/cat /var/run/lircd.pid` || /bin/true
endscript
}
Direkte Einrichtung
Nun muss lirc die Frequenz und Tasten kennenlernen. Das wird mit irrecord gemacht.
Als Beispiel die Fernbedienung von Terratec Cinergy 600 TV Radio:
irrecord -d /dev/input/event1 Terratec_Cinergy_Remote
Die Gerätedatei muss je nach Fernbedienung angepasst werden.
Nun wird man aufgefordert, mit <Enter> zu bestätigen und anschließend auf eine beliebige Taste zu drücken. Solange auf dieser Taste bleiben, bis
Found gap length: xxxxxxx Now enter the names for the buttons.
erscheint.
Danach geht es zur Einrichtung der Tasten.
Please enter the name for the next button (press <ENTER> to finish recording)
Zum Beispiel:
power Now hold down button "power" irrecord: devinput_rec irrecord: time 1109602772.169967 type 1 code 116 value 1 irrecord: code 80010074 irrecord: devinput_decode
Die Buttons werden in der angegebenen Datei (im Beispiel: Terratec_Cinergy_Remote) gespeichert.
Dies könnte bei der Vervollständigung so aussehen:
# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.7.0(devinput) on Sun Feb 27 18:29:35 2005
#
# contributed by
#
# brand: Terratec_Cinergy_Remote
# model no. of remote control:
# devices being controlled by this remote:
#
begin remote
name Terratec_Cinergy_Remote
bits 16
eps 30
aeps 100
one 0 0
zero 0 0
pre_data_bits 16
pre_data 0x8001
gap 237493
toggle_bit 0
begin codes
power 0x0000000000000074
app 0x0000000000000094
zoom 0x0000000000000174
1 0x000000000000004F
2 0x0000000000000050
3 0x0000000000000051
4 0x000000000000004B
5 0x000000000000004C
6 0x000000000000004D
7 0x0000000000000047
8 0x0000000000000048
9 0x0000000000000049
0 0x0000000000000052
chup 0x0000000000000192
chdown 0x0000000000000193
volup 0x0000000000000073
voldown 0x0000000000000072
av 0x0000000000000182
-/-- 0x0000000000000045
audio 0x0000000000000188
mute 0x0000000000000071
left 0x0000000000000069
right 0x000000000000006A
up 0x0000000000000067
down 0x000000000000006C
mouseleft 0x0000000000000110
mouseright 0x0000000000000111
text 0x0000000000000096
rew 0x00000000000000A8
fwd 0x000000000000009F
rec 0x00000000000000A7
play 0x00000000000000CF
prev 0x00000000000000A5
next 0x00000000000000A3
pause 0x0000000000000077
stop 0x0000000000000080
end codes
end remote
Diese Datei anschließend als lircd.conf im Verzeichnis /etc ablegen.
Nun mit einem Runlevel-Editor, z. B. system-config-services, den lirc-Daemon einrichten.
Einbinden in die dementsprechende Software am Beispiel von xawtv
Der Software sagen, was mit den Tasten geschehen soll. Das geschieht in der Datei /etc/lircrc (systemweit) oder ~/.lircrc (für den Benutzer).
Als Beispiel:
begin
prog = xawtv
button = chup
config = setstation next
end
begin
prog = xawtv
button = chdown
config = setstation prev
end
begin
prog = xawtv
button = up
config = setchannel next
end
begin
prog = xawtv
button = down
config = setchannel prev
end
begin
prog = xawtv
button = volup
config = volume inc
end
begin
prog = xawtv
button = voldown
config = volume dec
end
begin
prog = xawtv
button = zoom
config = fullscreen
end
begin
prog = xawtv
button = mute
config = volume mute
end
begin
prog = xawtv
button = power
config = quit
end
begin
prog = xawtv
button = av
config = setinput next
end
Mit "prog =" wird das dementsprechende Programm definiert,
mit "button =" der Name des Buttons aus der lircd.conf,
mit "config =" das Kommando, das übergeben werden soll.
| | Dieser Artikel ist noch nicht vollständig. Du kannst helfen, ihn zu bearbeiten. |
Einrichtung eines seriellen IR-Empfängers
Dieses Beispiel beschreibt die Einrichtung eines seriellen Empfängers des Typs IMEX IM-1313. Ein serieller Empfänger ist zu empfehlen, weil fast alle Modelle funktionieren und sie relativ preisgünstig (gebraucht) zu erwerben sind. Allerdings sollte man dabei beachten, dass das Mainboard wenigstens noch einen der traditionellen Com-Ports hat, Windowsusern als COM1 etc. bekannt.
Herunterladen des Tarballs u. Installation
Herunterladen der aktuellsten Version und entpacken (siehe oben!) In das Verzeichnis lirc-0.8.x wechseln und entweder
./setup.sh
für die grafische Installation auswählen oder aber
./configure --with-driver=serial make
aufrufen. Eine Hilfe für ./configure kann mit der Option --help anzeigt werden. Das make install installiert die Kernelmodule nach /lib/modules/$(uname -r)/misc.
Automatisches Laden der Kernelmodule
Dazu ist folgender Eintrag in der /etc/modprobe.conf nötig:
alias char-major-61 lirc_serial options lirc_serial irq=3 io=0x2f8 install lirc_serial /bin/setserial /dev/ttyS1 uart none;\ /sbin/modprobe --ignore-install lirc_serial
Die 2. serielle Schnittstelle wird hier verwendet! Um herauszufinden, auf welchem Interrupt der serieller Port lauscht, folgenden Befehl verwenden:
für den ersten COM-Port.
Jetzt ist es Zeit für den ersten reboot.
Testen der Kernelmodule
In lsmod sollten die benötigten Module jetzt auftauchen:
lirc_serial 17156 0 lirc_dev 18676 1 lirc_serial
Außerdem sollte sich jetzt im Verzeichnis /dev folgende Geräte finden lassen:
lircd lirc0
Jetzt starten wir mal den ersten Test, ob das Gerät überhaupt ansprechbar ist:
Nun sollten Zahlen und so weiter über das Terminal huschen, wenn wir irgendwelche X-beliebigen Tasten drücken.
Erstellen der lircd.conf
wie weiterverfahren wird, siehe oben.
| | <b>Achtung:</b> Dabei muß in diesem Moment der Dienst lirc und der Daemon lircd laufen |
Erstellen des lircrc
Dies hängt davon ab, welche Anwendung ferngesteuert werden soll, hier ein Beispiel mit 2 Tastenbelegungen (Lautstärkeregelung) mit mplayer:
begin button = VOL+ prog = mplayer config = volume 1 repeat = 1 end begin button = VOL- prog = mplayer config = volume -1 repeat = 1 end
Abschließendes
Ich habe weder eine Datei lircd im Verzeichnis /etc/rc.d/init.d noch eine Datei lirc unterhalb des Verzeichnises /etc/init.d. Ihr solltet lediglich sicherstellen das ihr die richtige Version des Daemons passend zu eurer Version von lirc laufen habt (alles als Root ab hier):
Eine Fedora-Version von lirc deinstalliert habt
rpm -q lirc #falls installiert noch deinstallieren: rpm -e --nodeps lirc
Ein Eintrag in der /etc/rc.local gemacht wurde:
/usr/local/sbin/lircd -d /dev/lirc0
Die Dateirechte gesetzt wurden:
chmod a+rw /dev/lirc*
Nun ist es Zeit für den nächsten reboot und hoffen das alles läuft.
Links
- Vorlagen für lircd.conf-Dateien
- Homepage des Projekts
Kategorien: HOWTO | Unfertig | Hardware

