Remote-plugin
(Änderung 79733 von Flobee (Diskussion) rückgängig gemacht. (ich denke mal Raspian hat einen Bug-tracker)) |
|||
(94 dazwischenliegende Versionen von 60 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
==Beschreibung== | ==Beschreibung== | ||
− | + | '''Autor:''' Oliver Endriss | |
− | + | Dieses Plugin erweitert den [[VDR]] um weitere Fernbedienungsprotokolle bzw. -empfänger. | |
− | + | ||
+ | ===Status=== | ||
+ | Letztes Update 12/2012 | ||
==Unterstützte Eingabegeräte== | ==Unterstützte Eingabegeräte== | ||
Zeile 9: | Zeile 11: | ||
(a) Linux Eingabegeräte ('/dev/input/eventX', X=0,1,2,...) | (a) Linux Eingabegeräte ('/dev/input/eventX', X=0,1,2,...) | ||
− | *eingebauter Fernbedienungs-Port av7110-basierter DVB-Karten (sog. ''full-featured card''), wie z.B. DVB-S Nexus [1] | + | *eingebauter Fernbedienungs-Port av7110-basierter DVB-Karten (sog. ''full-featured card''), wie z.B. DVB-S Nexus [1] (bis Rev 2.2) und Technotrend [[DVB-S_full-featured-Karten | Revisionen 1.3,1.5 und 1.6]] (auch über Erweiterungsplatinen z.B. das [[DVB-Karten_Erweiterungen | AVBoard]]) |
− | *Fernbedienungs-Ports einiger ''budget cards'', wie z.B. Nova-CI [2] | + | *Fernbedienungs-Ports einiger ''budget cards'', wie z.B. Nova-CI [2] und Hauppauge nova-t usb2 |
+ | *HTPC Panelknöpfe/Tastaturen(USB), z.B. Silverstone LC16M(R) siehe [http://www.dallaslive.de/vdr/mixed/lc16/ hier] | ||
*andere Eingabegeräte (noch nicht getestet, bitte erfolgreiche Geräte melden!) | *andere Eingabegeräte (noch nicht getestet, bitte erfolgreiche Geräte melden!) | ||
*Siehe die FAQ-Datei mit einer Liste erfolgreich verwendeter Geräte. | *Siehe die FAQ-Datei mit einer Liste erfolgreich verwendeter Geräte. | ||
Zeile 17: | Zeile 20: | ||
(c) TCP-Verbindung (telnet) | (c) TCP-Verbindung (telnet) | ||
− | + | ||
− | + | ||
− | + | ||
(d) LIRC | (d) LIRC | ||
Zeile 28: | Zeile 29: | ||
[Das Zusammenspiel von LIRC und Remote-Plugin -anscheinend ein neues Feature- verdient eine eigene Erklärung...] | [Das Zusammenspiel von LIRC und Remote-Plugin -anscheinend ein neues Feature- verdient eine eigene Erklärung...] | ||
− | == | + | ==Bilder== |
− | + | [[Bild:remote-plugin.jpg|thumb|none|''tcp'']] | |
− | == | + | ==Konfiguration== |
− | Für '/dev/input/eventX' ist auf der Homepage des Entwicklers ein kleiner | + | ===Parameter=== |
+ | {| class="wikitable" | ||
+ | |- | ||
+ | !Parameter (kurz) | ||
+ | !Parameter (lang) | ||
+ | !Beschreibung | ||
+ | |- | ||
+ | | -i ''<DEV>'' || --input=''<DEV>'' || kernel input device (/dev/input/...) | ||
+ | |- | ||
+ | | -l ''<DEV>'' || --lirc=''<DEV>'' || lirc device (/dev/lircd) | ||
+ | |- | ||
+ | | -p ''<TCP:n>'' || --port=''<TCP:n >''|| listen on tcp port <n> | ||
+ | |- | ||
+ | | -t ''<DEV>'' || --tty=''<DEV>'' || tty device | ||
+ | |- | ||
+ | | -T ''<DEV>'' || --TTY=''<DEV>'' || tty device with OSD | ||
+ | |} | ||
+ | |||
+ | ===Probleme=== | ||
+ | ====Infrarot-Port x 1==== | ||
+ | Es funktioniert immer nur der Infrarot-Port der zuletzt initialisierten Karte. | ||
+ | Deshalb kann es passieren, dass mit zwei Premium Karten das Remote-Plugin nicht läuft. Dann hilft das Tauschen der PCI-Slots. Auch durch das Erneuern der DVB-Treiber kann sich die Initialisierungsreihenfolge ändern. | ||
+ | |||
+ | Ergänzung: Für aktuelle Versionen scheint diese Einschränkung nicht mehr zu gelten. U. U. können damit auch Probleme mit udev gelöst werden. In der Praxis kann es nämlich vorkommen, daß z. B. die event-Devices einer Budget-CI und einer Full-Featured Karte von Booten zu Booten die Positionen ändern. Mittels z. B. "-i /dev/input/event1 -i /dev/input/event2" können dann beide Devices angegeben werden - wichtig vor allem, wenn eine andere als die Standard-Fernbedienung verwendet wird. | ||
+ | |||
+ | ====Wiederholrate zu schnell==== | ||
+ | Wenn die Wiederholrate der Tastendrücke zu schnell ist (dass der VDR sie nicht mehr verarbeiten kann), hilft dieses Programm: | ||
+ | |||
+ | #include <stdio.h> | ||
+ | #include <stdlib.h> | ||
+ | #include <fcntl.h> | ||
+ | #include <linux/input.h> | ||
+ | #include <sys/ioctl.h> | ||
+ | |||
+ | #ifndef EVIOCSREP | ||
+ | #define EVIOCSREP _IOW('E', 0x03, int[2]) | ||
+ | #endif | ||
+ | |||
+ | /* compile with gcc -o setspeed setspeed.c */ | ||
+ | |||
+ | |||
+ | int main(int argc, char** argv) { | ||
+ | int retval = 0; | ||
+ | int fd = 0; | ||
+ | int rep[2]; | ||
+ | |||
+ | rep[0] = 400; // delay | ||
+ | rep[1] = 200; // repeat rate | ||
+ | |||
+ | if ((fd = open( "/dev/input/event4", O_RDWR )) < 0) { // better use /dev/input/ir | ||
+ | printf("unable to access /dev/input/event4, exiting..\n"); | ||
+ | exit(1); | ||
+ | } | ||
+ | if (ioctl(fd, EVIOCSREP, rep)) { | ||
+ | perror("unable to set delay and repeat rate for input devices"); | ||
+ | exit(1); | ||
+ | } | ||
+ | |||
+ | close(fd); | ||
+ | } | ||
+ | |||
+ | ===Tipps=== | ||
+ | ====[[LIRC|irexec]] für den remote port==== | ||
+ | Für '''/dev/input/eventX''' ist auf der Homepage des Entwicklers ein kleiner {{wikipedia|daemon}} verfügbar. (siehe Links) | ||
− | Mit diesem ist es möglich Befehle unabhängig von [[VDR]] auszuführen, quasi "[[irexec]]" für den " | + | Mit diesem ist es möglich Befehle unabhängig von [[VDR]] auszuführen, quasi "[[LIRC|irexec]]" für den "remote port" der DVB Karte. |
Übersetzt wird "evexec" wie folgt: | Übersetzt wird "evexec" wie folgt: | ||
Zeile 42: | Zeile 106: | ||
Starten könnte man "evexec" zbs. über die [[runvdr]], wichtig hierbei, das der DVB Driver zuvor geladen wurde. | Starten könnte man "evexec" zbs. über die [[runvdr]], wichtig hierbei, das der DVB Driver zuvor geladen wurde. | ||
− | grep -s ^[0-9]: "/ | + | grep -s ^[0-9]: "/etc/[[evexec.conf]]" | |
while IFS=: read a b c ; do | while IFS=: read a b c ; do | ||
evexec /dev/input/event${a} ${b} "${c}" 2>/dev/null & | evexec /dev/input/event${a} ${b} "${c}" 2>/dev/null & | ||
done | done | ||
+ | |||
+ | ====Immer das gleiche Device für DVB-Karten Infrarotreceiver==== | ||
+ | Falls man "udev" für die Erstellung der Devices nutzt, kann man durch Anpassung der udev Regeln immer das gleiche Device für den Infrarotempfänger zuweisen lassen, so das das aktuelle eventX des Infrarotempfängers immer auf "/dev/event/ir" zeigt | ||
+ | |||
+ | ;Bei Suse 10.0 mit hotplug: | ||
+ | |||
+ | KERNEL=="event*", SYSFS{name}=="DVB on-card IR receiver", NAME="input/%k", SYMLINK="input/ir" | ||
+ | |||
+ | ;Bei LFS SVN-Version (hier vom 11.11.2006) folgendes in die '''/etc/udev/lfs.rules''' hinzufügen: | ||
+ | |||
+ | KERNEL=="input*", ATTRS{name}=="DVB on-card IR receiver", SYMLINK+="input/ir" | ||
+ | |||
+ | ;Bei Ubuntu o.a., einen udev-Regelsatz mit folgendem Inhalt anlegen: | ||
+ | |||
+ | {{Box Datei|/etc/udev/rules.d/70-remote-device.rules|<pre> | ||
+ | SUBSYSTEM!="input", GOTO="remote_event_grp_end" | ||
+ | ATTRS{name}=="*dvb*|*DVB*|* IR *", ENV{ID_CLASS}="ir" GROUP="vdr" SYMLINK+="input/ir" | ||
+ | LABEL="remote_event_grp_end"</pre> | ||
+ | }} | ||
+ | |||
+ | ;Bei Debian Lenny an das Ende der Datei /etc/udev/rules.d/50-udev.rules die folgende Zeile | ||
+ | |||
+ | {{Box Datei|/etc/udev/rules.d/50-udev.rules|<pre> | ||
+ | KERNELS=="input*", ATTRS{name}=="DVB on-card IR receiver", SYMLINK+="input/ir"</pre> | ||
+ | }} | ||
+ | |||
+ | Alternativ kann man dem remote plugin ab Version 0.4. so was /dev/input/by-path/pci-0000:00:14.0-event-ir mitgeben. | ||
+ | |||
+ | Falls es mit diesen Regeln nicht funktionieren sollte kann man auch eine eigene Regel erstellen in dem man die Daten des Devices aus dem "SYSFS" ausliest. Dann wie folgt verfahren: | ||
+ | |||
+ | udevinfo -q path -n /dev/input/event2 | ||
+ | |||
+ | gibt an wo sich das Device im SYSFS befindet, hier ist es '''/class/input/input40/event2'''. | ||
+ | Dann mit dieser Adresse folgendes: | ||
+ | |||
+ | udevinfo -a -p /class/input/input40/event2 | ||
+ | |||
+ | der Output wäre hier: | ||
+ | |||
+ | looking at device '/class/input/input40/event2': | ||
+ | KERNEL=="event2" | ||
+ | SUBSYSTEM=="input" | ||
+ | DRIVER=="" | ||
+ | ATTR{dev}=="13:66" | ||
+ | |||
+ | looking at parent device '/class/input/input40': | ||
+ | X------- KERNELS=="input40" | ||
+ | I SUBSYSTEMS=="input" | ||
+ | I DRIVERS=="" | ||
+ | I ATTRS{uniq}=="" | ||
+ | I ATTRS{phys}=="" | ||
+ | I X--- ATTRS{name}=="DVB on-card IR receiver" | ||
+ | I I | ||
+ | I X-------------------------X Aktion | ||
+ | I I I | ||
+ | KERNELS=="input*", ATTRS{name}=="DVB on-card IR receiver", SYMLINK+="input/ir" | ||
+ | |||
+ | daraus ergibt sich dann für die Regel, man wählt das Device aus welchen den Eintrag '''DVB on-card IR receiver''' enthält (hier /class/input/input40), an erster Stelle kommt dann die Gruppe (der Stern gibt an, alle Einträge mit input ohne Bezug auf die Nummer zu überprüfen) dann der Name und zuletzt die durchzuführende Aktion, als durchzuführende Aktion wäre auch ein PROGRAM="'''script oder ähnliches'''" denkbar | ||
+ | |||
+ | und dann noch entweder den udev daemon oder das System neu starten | ||
+ | und das Plugin mit | ||
+ | -P'remote -i /dev/input/ir' | ||
+ | starten. | ||
+ | |||
+ | Bei Ubuntu 8.04 wird das remote Plugin automatisch gestarted. Die Optionen für das Plugin werden bem Start von VDR aus | ||
+ | /etc/vdr/plugins/plugin.remote.conf | ||
+ | gelesen. Damit das remote Plugin auf /dev/input/ir zugreift also dort | ||
+ | -i /dev/input/ir | ||
+ | eintragen. (Ubuntu Standardeintrag ist -i autodetect) | ||
+ | |||
+ | '''ACHTUNG''': eventX und inputX sind von System zu System unterschiedlich, um herauszufinden auf welchem input-device der IR-Receiver liegt, hilft ein "dmesg" und nach folgenden suchen '''input: DVB on-card IR receiver as /class/input/inputX'''. | ||
+ | |||
+ | '''Alternativvorschlag (ohne udev Regel):''' | ||
+ | Ich habe hier mal ein "Mini-Skript" eingefügt, was bei mir (Opensuse) funktioniert und im runvdr vor dem Aufruf den Link passend auf /dev/input/ir setzt (geht bestimmt noch schöner, aber es klappt), eventuell mit sudo ausführen: | ||
+ | |||
+ | ln -sf $(for x in `ls /dev/input/event*` ; do | ||
+ | if [ -n "$(udevinfo -a -p `udevinfo -q path -n $x` | grep DVB)" ] ; then | ||
+ | echo $x; fi ; done) /dev/input/ir | ||
+ | |||
+ | '''Weiterer Alternativ-Vorschlag''' | ||
+ | Man kann auch aus der Ausgabe von lsinput (input-utils Paket) mittels Device und Vendor IDs das Input Device bestimmen (siehe auch [http://mstier.de/wiki/LinuxTools/InputDevices], wo man auch den entsprechenden Befehl mit RegEx herauskopieren kann). | ||
+ | |||
+ | '''auswählen des Input Devices per PCI Slot''' | ||
+ | ab Version 0.4.0 ist auch Auswahl über das PCI Device möglich (benötigt udev) | ||
+ | -P"remote -i /dev/input/by-path/pci-0000:02:06.0--event-ir" | ||
+ | |||
+ | Hinweis: Da dies device dynamisch vergeben wird, kann eine genaue Beobachtung von /dev/input/by-path/ nach verschiedenen Neustarts helfen, wenn es zu Problemen kommt. Wenn sich zum Beispiel die letzte Ziffer ändert, hilft dort ein wildcart, zum Beispiel: | ||
+ | -P"remote -i /dev/input/by-path/pci-0000:01:08.*--event-ir" | ||
+ | -P"remote -i /dev/input/by-path/pci-0000:01:08.[0-9]--event-ir" | ||
+ | |||
+ | ====Tastendruck wird immer noch nicht erkannt==== | ||
+ | Bei einigen Budget-Karten muss die rc5-Geräte-ID angepasst werden, damit der Treiber die empfangenen Signale nicht unpassend filtert. | ||
+ | Dies kann als Parameter beim Laden des Moduls budget_ci gesetzt werden. Wobei der Parameterwert 255, dem Filter für alle rc5-Geräte-IDs außerkraft setzt. In den meisten Systemen kann für die Modulparameter eine Datei "/etc/modprobe.d/budget_ci" mit folgenden Inhalt angelegt werden. | ||
+ | options budget_ci rc5_device=255 | ||
+ | |||
+ | Zur Kontrolle dient | ||
+ | cat /sys/module/budget_ci/parameters/rc5_device | ||
+ | 255 | ||
+ | |||
+ | ==Aktuelle Version== | ||
+ | [http://www.escape-edv.de/endriss/vdr/vdr-remote-0.7.0.tgz Version 0.7.0] | ||
==Links== | ==Links== | ||
− | + | # [http://www.escape-edv.de/endriss/vdr Homepage des Plugins] | |
− | + | # [http://www.escape-edv.de/endriss/vdr/misc/evexec.c Evexec] | |
− | + | # [http://www.escape-edv.de/endriss/vdr/README Readme des Plugins] | |
− | + | # [http://www.escape-edv.de/endriss/vdr/FAQ FAQ] | |
− | + | ||
− | + | [[Kategorie:Plugins]][[Kategorie:Fernbedienungen]] | |
− | + | {{i18n|remote-plugin}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | [[Kategorie:Plugins]] | + |
Aktuelle Version vom 11. Januar 2016, 10:17 Uhr
Inhaltsverzeichnis |
[Bearbeiten] Beschreibung
Autor: Oliver Endriss
Dieses Plugin erweitert den VDR um weitere Fernbedienungsprotokolle bzw. -empfänger.
[Bearbeiten] Status
Letztes Update 12/2012
[Bearbeiten] Unterstützte Eingabegeräte
Wer genauer wissen möchte, welche Eingabegeräte verwendet werden können, der entnehme der Readme-Datei des Plugins die folgenden Hinweise (hier in übersetzter Version, weiter unten im Original nachzulesen):
(a) Linux Eingabegeräte ('/dev/input/eventX', X=0,1,2,...)
- eingebauter Fernbedienungs-Port av7110-basierter DVB-Karten (sog. full-featured card), wie z.B. DVB-S Nexus [1] (bis Rev 2.2) und Technotrend Revisionen 1.3,1.5 und 1.6 (auch über Erweiterungsplatinen z.B. das AVBoard)
- Fernbedienungs-Ports einiger budget cards, wie z.B. Nova-CI [2] und Hauppauge nova-t usb2
- HTPC Panelknöpfe/Tastaturen(USB), z.B. Silverstone LC16M(R) siehe hier
- andere Eingabegeräte (noch nicht getestet, bitte erfolgreiche Geräte melden!)
- Siehe die FAQ-Datei mit einer Liste erfolgreich verwendeter Geräte.
(b) Tastatur (tty driver): /dev/console, /dev/ttyX, optional auch mit OSD (wie bei TCP, s.u.)
(c) TCP-Verbindung (telnet)
(d) LIRC
Anmerkungen:
[1] wird von DVB und DVB-Kernel unterstützt
[2] wird nur vom DVB-Kernel unterstützt
[Das Zusammenspiel von LIRC und Remote-Plugin -anscheinend ein neues Feature- verdient eine eigene Erklärung...]
[Bearbeiten] Bilder
[Bearbeiten] Konfiguration
[Bearbeiten] Parameter
Parameter (kurz) | Parameter (lang) | Beschreibung |
---|---|---|
-i <DEV> | --input=<DEV> | kernel input device (/dev/input/...) |
-l <DEV> | --lirc=<DEV> | lirc device (/dev/lircd) |
-p <TCP:n> | --port=<TCP:n > | listen on tcp port <n> |
-t <DEV> | --tty=<DEV> | tty device |
-T <DEV> | --TTY=<DEV> | tty device with OSD |
[Bearbeiten] Probleme
[Bearbeiten] Infrarot-Port x 1
Es funktioniert immer nur der Infrarot-Port der zuletzt initialisierten Karte. Deshalb kann es passieren, dass mit zwei Premium Karten das Remote-Plugin nicht läuft. Dann hilft das Tauschen der PCI-Slots. Auch durch das Erneuern der DVB-Treiber kann sich die Initialisierungsreihenfolge ändern.
Ergänzung: Für aktuelle Versionen scheint diese Einschränkung nicht mehr zu gelten. U. U. können damit auch Probleme mit udev gelöst werden. In der Praxis kann es nämlich vorkommen, daß z. B. die event-Devices einer Budget-CI und einer Full-Featured Karte von Booten zu Booten die Positionen ändern. Mittels z. B. "-i /dev/input/event1 -i /dev/input/event2" können dann beide Devices angegeben werden - wichtig vor allem, wenn eine andere als die Standard-Fernbedienung verwendet wird.
[Bearbeiten] Wiederholrate zu schnell
Wenn die Wiederholrate der Tastendrücke zu schnell ist (dass der VDR sie nicht mehr verarbeiten kann), hilft dieses Programm:
#include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <linux/input.h> #include <sys/ioctl.h> #ifndef EVIOCSREP #define EVIOCSREP _IOW('E', 0x03, int[2]) #endif /* compile with gcc -o setspeed setspeed.c */ int main(int argc, char** argv) { int retval = 0; int fd = 0; int rep[2]; rep[0] = 400; // delay rep[1] = 200; // repeat rate if ((fd = open( "/dev/input/event4", O_RDWR )) < 0) { // better use /dev/input/ir printf("unable to access /dev/input/event4, exiting..\n"); exit(1); } if (ioctl(fd, EVIOCSREP, rep)) { perror("unable to set delay and repeat rate for input devices"); exit(1); } close(fd); }
[Bearbeiten] Tipps
[Bearbeiten] irexec für den remote port
Für /dev/input/eventX ist auf der Homepage des Entwicklers ein kleiner daemon verfügbar. (siehe Links)
Mit diesem ist es möglich Befehle unabhängig von VDR auszuführen, quasi "irexec" für den "remote port" der DVB Karte.
Übersetzt wird "evexec" wie folgt:
gcc -o /usr/local/bin/evexec evexec.c
Starten könnte man "evexec" zbs. über die runvdr, wichtig hierbei, das der DVB Driver zuvor geladen wurde.
grep -s ^[0-9]: "/etc/evexec.conf" | while IFS=: read a b c ; do evexec /dev/input/event${a} ${b} "${c}" 2>/dev/null & done
[Bearbeiten] Immer das gleiche Device für DVB-Karten Infrarotreceiver
Falls man "udev" für die Erstellung der Devices nutzt, kann man durch Anpassung der udev Regeln immer das gleiche Device für den Infrarotempfänger zuweisen lassen, so das das aktuelle eventX des Infrarotempfängers immer auf "/dev/event/ir" zeigt
- Bei Suse 10.0 mit hotplug
KERNEL=="event*", SYSFS{name}=="DVB on-card IR receiver", NAME="input/%k", SYMLINK="input/ir"
- Bei LFS SVN-Version (hier vom 11.11.2006) folgendes in die /etc/udev/lfs.rules hinzufügen
KERNEL=="input*", ATTRS{name}=="DVB on-card IR receiver", SYMLINK+="input/ir"
- Bei Ubuntu o.a., einen udev-Regelsatz mit folgendem Inhalt anlegen
SUBSYSTEM!="input", GOTO="remote_event_grp_end" ATTRS{name}=="*dvb*|*DVB*|* IR *", ENV{ID_CLASS}="ir" GROUP="vdr" SYMLINK+="input/ir" LABEL="remote_event_grp_end"
- Bei Debian Lenny an das Ende der Datei /etc/udev/rules.d/50-udev.rules die folgende Zeile
KERNELS=="input*", ATTRS{name}=="DVB on-card IR receiver", SYMLINK+="input/ir"
Alternativ kann man dem remote plugin ab Version 0.4. so was /dev/input/by-path/pci-0000:00:14.0-event-ir mitgeben.
Falls es mit diesen Regeln nicht funktionieren sollte kann man auch eine eigene Regel erstellen in dem man die Daten des Devices aus dem "SYSFS" ausliest. Dann wie folgt verfahren:
udevinfo -q path -n /dev/input/event2
gibt an wo sich das Device im SYSFS befindet, hier ist es /class/input/input40/event2. Dann mit dieser Adresse folgendes:
udevinfo -a -p /class/input/input40/event2
der Output wäre hier:
looking at device '/class/input/input40/event2': KERNEL=="event2" SUBSYSTEM=="input" DRIVER=="" ATTR{dev}=="13:66" looking at parent device '/class/input/input40': X------- KERNELS=="input40" I SUBSYSTEMS=="input" I DRIVERS=="" I ATTRS{uniq}=="" I ATTRS{phys}=="" I X--- ATTRS{name}=="DVB on-card IR receiver" I I I X-------------------------X Aktion I I I KERNELS=="input*", ATTRS{name}=="DVB on-card IR receiver", SYMLINK+="input/ir"
daraus ergibt sich dann für die Regel, man wählt das Device aus welchen den Eintrag DVB on-card IR receiver enthält (hier /class/input/input40), an erster Stelle kommt dann die Gruppe (der Stern gibt an, alle Einträge mit input ohne Bezug auf die Nummer zu überprüfen) dann der Name und zuletzt die durchzuführende Aktion, als durchzuführende Aktion wäre auch ein PROGRAM="script oder ähnliches" denkbar
und dann noch entweder den udev daemon oder das System neu starten und das Plugin mit
-P'remote -i /dev/input/ir'
starten.
Bei Ubuntu 8.04 wird das remote Plugin automatisch gestarted. Die Optionen für das Plugin werden bem Start von VDR aus
/etc/vdr/plugins/plugin.remote.conf
gelesen. Damit das remote Plugin auf /dev/input/ir zugreift also dort
-i /dev/input/ir
eintragen. (Ubuntu Standardeintrag ist -i autodetect)
ACHTUNG: eventX und inputX sind von System zu System unterschiedlich, um herauszufinden auf welchem input-device der IR-Receiver liegt, hilft ein "dmesg" und nach folgenden suchen input: DVB on-card IR receiver as /class/input/inputX.
Alternativvorschlag (ohne udev Regel): Ich habe hier mal ein "Mini-Skript" eingefügt, was bei mir (Opensuse) funktioniert und im runvdr vor dem Aufruf den Link passend auf /dev/input/ir setzt (geht bestimmt noch schöner, aber es klappt), eventuell mit sudo ausführen:
ln -sf $(for x in `ls /dev/input/event*` ; do if [ -n "$(udevinfo -a -p `udevinfo -q path -n $x` | grep DVB)" ] ; then echo $x; fi ; done) /dev/input/ir
Weiterer Alternativ-Vorschlag Man kann auch aus der Ausgabe von lsinput (input-utils Paket) mittels Device und Vendor IDs das Input Device bestimmen (siehe auch [1], wo man auch den entsprechenden Befehl mit RegEx herauskopieren kann).
auswählen des Input Devices per PCI Slot ab Version 0.4.0 ist auch Auswahl über das PCI Device möglich (benötigt udev)
-P"remote -i /dev/input/by-path/pci-0000:02:06.0--event-ir"
Hinweis: Da dies device dynamisch vergeben wird, kann eine genaue Beobachtung von /dev/input/by-path/ nach verschiedenen Neustarts helfen, wenn es zu Problemen kommt. Wenn sich zum Beispiel die letzte Ziffer ändert, hilft dort ein wildcart, zum Beispiel:
-P"remote -i /dev/input/by-path/pci-0000:01:08.*--event-ir" -P"remote -i /dev/input/by-path/pci-0000:01:08.[0-9]--event-ir"
[Bearbeiten] Tastendruck wird immer noch nicht erkannt
Bei einigen Budget-Karten muss die rc5-Geräte-ID angepasst werden, damit der Treiber die empfangenen Signale nicht unpassend filtert. Dies kann als Parameter beim Laden des Moduls budget_ci gesetzt werden. Wobei der Parameterwert 255, dem Filter für alle rc5-Geräte-IDs außerkraft setzt. In den meisten Systemen kann für die Modulparameter eine Datei "/etc/modprobe.d/budget_ci" mit folgenden Inhalt angelegt werden.
options budget_ci rc5_device=255
Zur Kontrolle dient
cat /sys/module/budget_ci/parameters/rc5_device 255