Squeeze-VDR Teil 5 - Die LIRC-Fernbedienung

Posted by Tobi Sat, 23 Oct 2010 08:00:00 GMT

Gott bin ich alt - ich kann mich noch an Fernseher ohne Fernbedienung erinnern! Und bis jetzt ist der neue Squeeze-VDR nicht viel besser dran. Dem kann aber schnell Abhilfe geschaffen werden.

remote control

Prinzipiell kann fast jede Infrarot-Fernbedienung für den VDR verwendet werden. Neben den Nummerntasten sollte die Fernbedienung lediglich auch Tasten für Menu, Ok, Exit, Pfeiltasten sowie vier Farbtasten haben. Die meisten Universalfernbedienungen genügen diesen Anforderungen. Außnahmen mag es vielleicht bei wirklich exotischen oder Uralt-Modellen geben.

Auf der VDR-Seite brauchst du einen Infrarotempfänger, der via USB oder serieller Schnittstelle angeschlossen wird. Einige DVB-Karten besitzen einen eigenen Infrarotempfänger.

Bei mir kommt ein IR-Empfänger Marke Eigenbau mit einem TSOP173 IR-Empfängermodul zum Einsatz. Wer einen Lötkolben sein eigen nennt, hat sich so einen Empfänger schnell zusammengebaut.

LIRC

Software-seitig sorgt LIRC (Linux Infrared Remote Control) dafür, das Signal des IR-Empfängers zu dekodieren. Das LIRC-Kernel-Modul kapselt dabei den Zugriff auf die Hardware, ein LIRC-Daemon übersetzt die IR-Signale in LIRC-Tasten-Codes und diese wiederum werden im VDR den entsprechenden Funktionen zugewiesen.

Am Anfang steht zunächst die Installation des LIRC-Kernel-Modules und der LIRC-Pakete:

sudo apt-get install module-assistant
sudo m-a a-i lirc
sudo apt-get install lirc setserial

Dann müssen noch einige LIRC-Kernel-Modul-Parameter konfiguriert werden mit sudo nano /etc/modprobe.d/lirc.conf:

options lirc_serial io=0x3f8 irq=4
install lirc_serial /bin/setserial /dev/ttyS0 uart none ; /sbin/modprobe --ignore-install lirc_serial

io=0x3f8 und irq=4 spezifizieren hierbei den RS232-Port COM1 (/dev/ttyS0).

Danach kann LIRC aktiviert werden:

sudo modprobe lirc_serial

Lirc sollte jetzt laufen (nachprüfbar mit lsmod | grep lirc oder dmesg). Wenn das soweit alles geklappt hat, kannst du LIRC nun die einzelnen Tasten beibringen. Starte dazu:

irrecord -n -d /dev/lirc0 /tmp/lircd.conf

... und folge den Anweisungen. Die Tasten benennst du z.B. "Ok", "Menu", "1", ..., "9" u.s.w.

Wenn du damit fertig bist, kopierst du die eben erstellte lircd.conf nach /etc/lirc (sudo cp /tmp/lircd.conf /etc/lirc). Jetzt musst du noch die Datei /etc/lirc/hardware.confeditieren und folgende Zeilen eintragen/ändern:

DEVICE="/dev/lirc0"
MODULES="lirc_serial"

Mit sudo service lirc start kannst du LIRC jetzt starten.

VDR

Nun bleibt nur noch übrig, die Tasten der Fernbedienung den VDR-Funktionen zuzuordnen. Damit der VDR den Lernmodus startet musst du die remote.conf zunächst verschieben und den VDR neu starten:

sudo mv /var/lib/vdr/remote.conf /tmp
sudo service vdr restart

Jetzt folgst wieder den Anweisungen des VDR. Bist du fertig, kannst du die alte remote.conf (mit der Xineliboutput-Tastaturbelegung) an die neue anhängen:

sudo service vdr stop
sudo sh -c "cat /tmp/remote.conf >>/var/lib/vdr/remote.conf"
sudo service vdr start

Und das war's auch schon. Der VDR sollte jetzt mit der Fernbedienung ansprechbar sein.

Verwendest du einen anderen IR-Empfänger, so ändern sich auch die LIRC-Parameter zu dem, was hier gezeigt wurde. Die LIRC-Konfiguration ist sicher nicht gerade einfach, aber Hilfe dazu findest du zuhauf im Netz!

Posted in  | Tags , ,  | 33 comments | no trackbacks

Comments

  1. Gumbo said 7 days later:

    Erstmal vielen Dank für die tolle Anleitung, ich hoffe auf noch viele Fortsetzungen :)

    Da ich derzeit alle Schritte nachvollziehe und so meinen neuen VDR aufsetze: mir ist hier ein evtl. fehlender Zwischenschritt aufgefallen. So musste ich erst noch lirc-modules-source installieren - ansonsten geht sudo m-a a-i lirc schief.

  2. e-tobi said 7 days later:

    Freut mich wenn du was mit der Anleitung anfangen konntest. Ein paar Fortsetzungen wird es noch geben.

    Eigentlich sollte der module-assistant lirc-modules-source automatisch installieren.

    Hab's gerade nochmal getestet. "m-a a-i" zieht alle notwendigen Pakete, Würde mich echt wundern, wenn das bei dir nicht so ist.

  3. Gumbo said 11 days later:

    Jetzt, wo Du es sagst: bei mir war der module-assistant nicht installiert, daran ist es gescheitert. Scheint, unter Umständen, nicht automatisch bei der Standard-Installation dabei zu sein.

  4. e-tobi said 11 days later:

    Kann auch sein dass ich es einfach vergessen habe.

    Hab's nun mit in den Artikel eingebaut. Danke für den Hinweis!

  5. Piet said 19 days later:

    Moin,

    kannst Du bitte das Lirc-Pakte mal prüfen, ich glaube es fehlt im lircd die Unterstützung für lirc_serial.

    Danke für Deine investierte Freizeit !

  6. e-tobi said 19 days later:

    Was lässt dich das vermuten? Ich verwende selber auch lirc_serial.

  7. Piet said 19 days later:

    Ich hatte Dein Paket installiert, und bekam beim Starten des Lircd die Meldung, daß der Treiber nicht unterstützt wird. Ein manueller Aufruf zum Anzeigen der unterstützten Treiber zeigte den lirc_serial auch nicht an.

    Ich hatte vorsichtshalber das Paket nochmal deinstalliert (mit purge) und neu installiert -> ging nicht.

    Habe mir dann das Paket aus dem yavdr-ppa gezogen, das ging auf Anhieb.

    War ich doch nur zu blöd ?

  8. Piet said 19 days later:

    Argh, leider Vergessen: es handelt sich um das i386-Paket.

  9. e-tobi said 19 days later:

    Wüsste nicht, warum das unter i386 nicht funktionieren sollte.

    Hast du denn die Kernelmodule mit m-a a-i lirc gebaut und installiert?

  10. Piet said 19 days later:

    Ja, da Modul konnte ich auch laden, aber lircd beschwerte sich, daß er nicht mit lirc_serial kann. Beim Aufruf von lircd mit --driver=? (aus dem Gedächtnis) fehlte dann auch lirc_serial in der Liste.

  11. e-tobi said 20 days later:

    Ich hab die Installation nochmal auf i386 mit einem frischen Squeeze durchgespielt. Klappt vollkommen reibungslos!

    lirc_serial muss auch nicht in der Liste auftauchen. Das läuft über den "default" driver.

  12. Piet said 20 days later:

    Also dann doch: ich war zu doof. Ich kann mir nur noch nicht erklären, wo ich den Fehler gemacht habe.

    Nächste Woche werde ich die Kiste nochmal von Null hochziehen, wenn ich's 'rausfinde, melde ich mich nochmal.

    Vielen Dank für Deine Mühe.

  13. duck said 22 days later:

    hi tobi,

    erst mal super anleitung...leider bekomme ich beim bauen des lirc-modules bei ca.27% einen fehler :( verwende den 2.6.35 kernel...liegt es daran?? was kann ich nun tun...

    folgende fehlermeldung erhalte ich :

    for templ in ; do \
    │ cp $templ echo $templ | sed -e 's/_KVERS_/2.6.35-02063508-generic/g'
    │ ; \
    │ done
    │ for templ in ls debian/*.modules.in ; do \
    │ test -e ${templ%.modules.in}.backup || cp ${templ%.modules.in}
    │ ${templ%.modules.in}.backup 2>/dev/null || true; \
    │ sed -e 's/##KVERS##/2.6.35-02063508-generic/g
    │ ;s/#KVERS#/2.6.35-02063508-generic/g ; s/KVERS/2.6.35-02063508-generic/g
    │ ; s/##KDREV##/2.6.35-02063508.201010291110/g ;
    │ s/#KDREV#/2.6.35-02063508.201010291110/g ;
    │ s/KDREV/2.6.35-02063508.201010291110/g ' < $templ >
    │ ${templ%.modules.in}; \
    │ done
    │ dh_clean "

  14. duck said 22 days later:

    EDIT: verwende eine Tevii S464 und würde gerne die fernbedienung oder zumindest den IR-receiver ...wird die Fernbedinung von den lirc-modules unterstützt? THX

  15. duck said 22 days later:

    EDIT: Fehlermeldung ist eigentlich folgende:

    build module

    /usr/bin/make -C /usr/src/modules/lirc-modules KSRC=/usr/src/linux make[2]: Entering directory /usr/src/modules/lirc-modules' /usr/bin/make -C /usr/src/linux SUBDIRS=/usr/src/modules/lirc-modules modules make[3]: Entering directory/usr/src/linux-headers-2.6.35-02063508-generic' CC [M] /usr/src/modules/lirc-modules/lirc_dev.o /usr/src/modules/lirc-modules/lirc_dev.c:35:28: error: linux/autoconf.h: Datei oder Verzeichnis nicht gefunden make[4]: [/usr/src/modules/lirc-modules/lirc_dev.o] Fehler 1 make[3]: [module/usr/src/modules/lirc-modules] Fehler 2 make[3]: Leaving directory /usr/src/linux-headers-2.6.35-02063508-generic' make[2]: *** [all] Fehler 2 make[2]: Leaving directory/usr/src/modules/lirc-modules' make[1]: [binary-modules] Fehler 2 make[1]: Leaving directory `/usr/src/modules/lirc-modules' make: [kdist_build] Fehler

    dürfte ein problem mit "lirc_dev.c:35:28: error: linux/autoconf.h: Datei oder Verzeichnis nicht gefunden" geben :(

    was kann ich jetzt tun?? ne plan vielleicht? danke!

  16. e-tobi said 23 days later:

    Das LIRC-Paket ist speziell fuer Squeeze also für 2.6.32. Evtl. werde ich noch irgendwann dieses Jahr auf Lirc 0.9 und Kernel 2.6.36. umstellen. Aber bis dahin bleibt dir nur 2.6.32 oder du bist auf dich allein gestellt.

  17. Steffen said 26 days later:

    Hallo e-tobi,

    ich habe da ein kleines Problem mit dem remote-plugin ...

    Es lässt sich aus den APT-Repos nicht installieren, da es nach der vdr-abi-1.6.0 sucht und ich die 1.7.16 habe.

    Nun wollte ich das gerne per Hand bauen und habe nicht herausfinden können wie ich die vdr-quellen installieren kann zu dem von dir empfohlenen VDR bzw. ich das mit der abi umgehen oder fixen kann ...

    Also habe ich das remote-plugin von den Debian-Repos geladen und einfach in mein System kopiert, umbenannt (von so.1.6.0 zu so.1.7.16) und den VDR neu gestartet, aber er startet das Plugin nicht mit.

    Dennoch ercheint im Syslog: [b]Nov 17 22:34:08 AmoksPC vdr: [24372] ERROR: /dev/lircd: Datei oder Verzeichnis nicht gefunden Nov 17 22:34:08 AmoksPC vdr: [24372] ERROR: remote control LIRC not ready![/b]

    Das ist auch kein Wunder, das Device heisst anders und ich nutze eine x10 und kein IR ... Es wundert mich nur wo die MEldung ohne laufendes remote-plugin herkommt.

    Vielleicht weisst Du rat, gerne auch per E-Mail!

    Danke und schönen Abend noch!

  18. e-tobi.net said 26 days later:

    Ich vermute mal, du hast in Teil 2 einen Schritt übersprungen und /etc/apt/preferences.d/e-tobi nicht installiert

    Wenn du apt-cache policy vdr-plugin-remote aufrufst, dann muss das Plugin für das e-tobi-Repo mit einer Priorität von 1001 erscheinen. Falls das nicht so ist, wird die Version aus Squeeze installiert und die ist für VDR 1.6.

    Zu der Meldung: VDR such standardmässig nach eine LIRC-Fernbedienung.

  19. Steffen said 26 days later:

    Hallo,

    vdr-plugin-remote: Installiert: (keine) Kandidat: 0.4.0-20 Versionstabelle:

     0.4.0-20 0
        500 http://ftp.de.debian.org/debian/ squeeze/main i386 Packages
        500 http://http.us.debian.org/debian/ sid/main i386 Packages
        500 http://ftp.de.debian.org/debian/ sid/main i386 Packages
     0.4.0-20 0
        500 http://e-tobi.net/vdr-experimental/ squeeze/vdr-multipatch i386 Packages
    

    Die sind also gleichberechtigt! Ich werde das mal anpassen und mich dann nochmal melden! Danke für die schnelle Antwort!

  20. Steffen said 26 days later:

    Erledigt. Hatte dein Repo zusätzlich noch in der sources.list und da hat er die Priorität wohl nicht richtig übernommen.

    Jetzt hat er sie und jetzt hat er auch das remote-plugin installiert!

    Vielen Dank ... ich melde mich wenn ich die nächsten Probs habe ;)

  21. Steffen said 26 days later:

    JO, da bin ich wieder ...

    Also jetzt habe ich das Problem dass ich nicht herausfinden kann welches device-file für meinen x10-Receiver angelegt wird ...

    nachdem hier: lrwxrwxrwx 1 root root 9 18. Nov 10:56 pci-0000:05:01.0-event-ir -> ../event5

    würde ich vermuten /dev/input/event5, aber wenn ich in der plugin.remote.conf "-i /dev/input/event5" eintrage startet der vdr und das Plugin zwar, aber es reagiert nicht auf Tasten ... und die funktionieren laut irw perfekt ...

    Ein /dev/lirc gibt es bei mir in keiner Form ... vielleicht hast Du da nochmal einen Tipp für mich, wäre toll!

    Dank im Voraus

  22. Patrick said 28 days later:

    Hi Tobi,

    danke fuer dein Update, es hat keine 10 minuten gedauert und ein update auf vdr 1.7.16 mit xineliboutput+vdpau war geschehen und alles lief... naja, fast alles.

    Ich hatte probleme mit deinem lirc 0.8.6 . Ich muss aus DVB-Treibergruenden 2.6.36 nehmen (aus debian experimental) und kann mir deshalb eine manuelle Installation von lirc sparen. (lirc_serial ist bei 2.6.36 dabei).

    Allerdings ist diese nicht kompatibel mit lirc-0.8.6. Ich downgradete also auf 0.8.3 (von squeeze) und alles geht.

    Was ich nicht weiss, ist wie ich in der Zukunft lirc von squeeze den Vorzug geben kann bei Beibehaltung von "Priority: 1000" fuer e-tobi.net?

    Ansonsten super Arbeit.

    -- Patrick

  23. e-tobi said 28 days later:

    z.B. so:

    Package: lirc
    Pin: release o=Debian
    Pin-Priority: 1002
    
  24. olaf said about 1 month later:

    ich würde licr gern mit einem usb power on Dongle betreiben. Hat damit jemand Erahrung kann mir bei den Einstellungen helfen?

    Grüße

    Olaf

  25. olaf said about 1 month later:

    Ich hänge leider an der Lirc Konfiguration schon den ganzen Samtag. Ich kann dpkg reconfigure lirc nicht aufrufen bzw. erscheint der dialog nicht. http://pastie.org/1348191

    Weiss jemand rat?

  26. e-tobi said about 1 month later:

    Die debconf.Konfiguration der Lirc-Module gibt es nicht mehr. Es sollten standardmäßig alle Module gebaut werden, Die insserv-Warnungen kannst du ignorieren.

  27. olaf said about 1 month later:

    wie trage ich denn dann das Igor plugin ein. Meiner meinung nach wird der USB dongle erkannt, aber mit der Fernbedienung klappts nicht wirklich. Lirc macht seine Punkte, aber ich kann nicht alle Tasten anlernen

  28. olaf said about 1 month later:

    nun gibts keine Punkte mehr, vielleicht sollte ich eine fertige Distrinution nutzen. So ein Baukasten ist scheinbar eine Nummer zu groß für mich

  29. olaf said about 1 month later:

    nun habe ich es auch geschafft! Allerdings nur weil ich mir eine fertige lircd.conf runtergladen habe. Da ich eine einfache Hauppauge Fernbedienung nehme (mir ist das nicht so wichtig und so schlecht finde ich die nicht) geht es nun. Der Hausfrieden ist wieder hergestellt. Jetzt kann ich mich um die anderen Baustellen kümmern, S3 geht noch nicht und der VDR wacht nicht auf. Mal sehen an was es liegt Einen schönen 2. Advent noch.

  30. heinz57 said about 1 month later:

    für LIRC sollte man einen Blick ins Rechner-BIOS tun: Ist RS232-Port COM1/ttyS0 auf io=0x3f8 irq=4 aktiviert?

    Man sollte ruhig erwähnen, dass die Erstellung einer lircd.confmeist einige Geduld verlangt!

    Es ist nicht so sinnvoll remote.conf nach /tmp zu kopieren, wenn nämlich "service vdr start" nicht geht, ist remote.conf weg nach dem reboot. Ich habe es auf /home/benutzer/ kopiert, da hat man es auch, wenn man lircd.conf überarbeiten muß.

    Außerdem gibt es ja da auch noch TV-Karten mit Fernbedienungen, die richtig erkannt werden, so z.B. die "TeVii S464 DVB-S2 PC". Ich selbst bevorzuge LIRC. - Zur Vermeidung von Problemen mit den events solcher Geräte s. C´t 3, 2010, S 134ff

  31. gerdich said 4 months later:

    Nur bei mir geht es mal wieder nicht:

    Kompilieren abgebrochen mit:

    /usr/src/modules/lirc-modules/lirc_i2c.c:399: error: unknown field 'id'

                       │ specified in initializer
    
  32. gerdich said 4 months later:

    Nur bei mir geht es mal wieder nicht. Kompilieren abgebrochen mit: /usr/src/modules/lirc-modules/lirc_i2c.c:399: error: unknown field 'id' specified in initializer

  33. gerdich said 4 months later:

    Workaround: Version von cvs kompiliert. Nimm lircd von /usr/local/sbin statt /usr/sbin Driver ist default.

Trackbacks

Comments are disabled

 

Categories

Tags

.NET debian dkb mono Notebook squeeze squeezevdr survey vdr visa