LIRC-Daemon - Support für externen USB IR Empfänger

  • Hallo,


    nun hat es endlich geklappt. Nach einigen Tagen in der Bastelstube hab ich's endlich hinbekommen einen externen IR-Empfänger (USB) an meiner DM800 ans laufen zu kriegen.


    Einige Leute sind ja nicht so zufrieden mit dem Empfang des eingebauten IR Empfängers in den 8er Boxen, oder suchen eine Möglichkeit die Box tief im Schrank zu verstauen und einen externen IR Empfänger anzuschliessen.


    Ich habe mich für das LIRC-Projekt entschieden, da hier schon einige Fernbedienungen supported werden und mir viel Arbeit abgenommen wird. Man brauch lediglich 2 Dateien, einmal den lircd (lirc daemon; läuft im hintergrund und ist halt für das auswerten der IR Befehle verantwortlich) und eine modifzierte irw datei (verbindet sich mit dem lirc daemon und schickt befehle zum zappen an die dreambox).


    Vorteile:
    - Externer USB IR-Receiver. Bessere Reichweite/Empfangsradius als original DM800(0) Empfänger
    - Langes Kabel: USB geht bis zu 20m ohne Verstärker. Also kann man mit Verlängerungskabel den IR-Receiver überall plazieren wo man will.
    - LIRC unterstützt bis zu 30 verschiedene USB IR Receiver (siehe Liste). Welche davon allerdings mit der dreambox alle funktionieren weiss ich nicht. Hab nur 2 davon getestet. Am besten wären halt die die ohne zusätzliche Kernel-Module oder Treiber auskommen, aber mit etwas Glück kriegt man auch die Treiber/Kernel Module von LIRC ans laufen auf ner Dreambox ...


    Nachteile:
    - Geht zur Zeit nicht mit Original-Zapper von DMM. Hab noch keinen IR-Receiver gefunden der auf die Dreambox Zapper reagiert. Ist also im Moment eher Interessant für Besitzer von lernbaren Fernbedienungen (Harmony; Pronto).


    Ich hab LIRC bereits mit einem ASUS-DH IR Receiver getestet (war bei meinem PC-Mainboard dabei) und seit heute habe ich einen Zapper von Creative-Labs für den PC gekauft. Der hat genug Tasten so das ich meine Harmony komplett mit allen Dreambox Tasten anlernen kann. Den Zapper mit USB Empfänger gibt's für rund 15€ (ohne Porto), also nicht allzu teuer und damit hätte man dann Hardware die an der Dreambox funktioniert.


    Reagiert voll super die Box! Ich plage mich seit Monaten schon mit dem problem rum das der OriginalZapper bei meiner DM800 total schlecht reagiert und Abstand und Winkel vom Zapper immer passen müssen. Das Problem habe ich jetzt mit dem exteren IR Receiver von Creative-Labs nicht mehr! Die Box reagiert nahezu immer perfekt, egal wo ich mit dem Zapper hinzeige ...


    ########################################
    ########################################
    ########################################


    Mit Dreambox und LIRC getestete IR-Empfänger:

    • ASUS DH IR Remote
    • Creative Labs XFI - SB0540
    • Streamzap PC
    • Auvisio MCE Remote
    • IgorPlug-USB
    • More coming soon ....


    ########################################
    ########################################
    ########################################



    Was ihr benötigt ist neben von LIRC unterstützter Hardware (kann den von creative oben nur empfehlen!) sind ein paar Dateien die ich jetzt hier anhänge:


    • /usr/sbin/lircd
      Das ist der LIRC Daemon der die ganze Zeit im Hintergrund laufen muss. Der greift auf den IR Receiver zu und wertet die Signale aus.
      Wird folgendermassen aufgerufen:

      Code
      /usr/sbin/lircd --device=/dev/usb/hid/hiddev0 --driver=sb0540

      Man kann in diese Zeile auch noch -n eintragen, dann läuft es nicht als Hintergrund-Dienst sondern man kann auch in Telnet beobachten.


    • /usr/sbin/irw
      Das ist eine von mir modifizierte Version des IRW-Clients. Eigentlich nur gedacht um sich IR-Befehle anzuschaun in Telnet, so habe ich diesen etwas modifiziert mit Gutemine's Hilfe, so das die Befehle auch an die Dreambox geschickt werden und somit gezapped werden kann.
      ---> Notiz: IRW haben wir später in einigen packages umbenannt in IRCONTROL. Ist das selbe, nur anderer Name ...


    • /etc/lircd.conf
      Das ist die Config Datei von LIRC mit den KeyCodes und Tastenbelegungen eures Zappers. Eine Liste von unterstützen Zappern gibt's hier. Beachtet aber bitte das man zu jedem Zapper auch ein unterstützten USB Empfänger brauch. Die Datei die ich hier anhäng ist halt vom o.g. Creative Zapper.


    • /usr/script/lircd.sh
      Selbst gebautes Start/Stop Script von mir zum starten/stoppen des LIRC Deamons und alles was man brauch. Aufruf in telnet halt mit:
      /usr/script/lircd.sh start|stop


    • /lib/modules/2.6.12-5.1-brcmstb-dm800/kernel/drivers/usb/input/usbhid.ko
      Die usbhid.ko ist ein Treiber mit eingebauten HIDDEV Support. Mein Treiber hier ist für die DM800 kompiliert, auf Anfrage sollte es aber auch möglich sein für andere Dreamboxen diesen Treiber zu bauen. Ohne den Treiber werden einige IR USB Receiver (wie der Createive XFI) nicht funktionieren, da kein Treiber für den Receiver geladen werden kann. Image-Bauer können sich Ihr Image auch selber mit HIDDEV Support kompilieren, dazu einfach in dieser Datei:
      /openembedded/1.5/openembedded/packages/linux/linux-dm800/ dm800_defconfig
      folgende 3 Einträge ändern:
      CONFIG_USB_HID=m
      CONFIG_USB_HIDINPUT=m
      CONFIG_USB_HIDDEV=m


      Sobald das Image dann gebacken wurde steht der HIDDEV Support zur Verfügung.


      Der Treiber kann auch manuell geladen werden sonst in TELNET:

      Code
      insmod /lib/modules/2.6.12-5.1-brcmstb-dm800/kernel/drivers/usb/input/usbhid.ko



    ########################################
    ########################################
    ########################################


    Und hier die Dateien. Wie bereits gesagt für DM800 und Creative-Labs Zapper/Empfänger. Solltet ihr einen anderen IR Empfänger haben der von LIRC supported wird (Liste), dann lasst es mich wissen und wir können gerne probieren das ans laufen zu kriegen!


    Solltet ihr den usbhid.ko Treiber für eine andere Dreambox benötigen, dann sagt Bescheid. Aber das wird nicht ganz so leicht oder würde lange dauern da ich hier kein Developer-OE für DM8000 oder so drauf habe, nur DM800. Könnte es aber sonst machen, vielleicht hat aber hier auch einer ne DM8000 Developer-OE eingerichtet und kann mal eben ein Kernel/Image mit HIDDEV support backen und die usbhid.ko Datei daraus fischen.


    Einfach Bescheid sagen! Dann schau ma ma was geht :)


    ########################################
    ########################################
    ########################################


    Attachments:
    lircd_sb0540.zip (Alles was man brauch für HIDDEV Devices, z.B. der Creative-Labs Zapper SB0540)
    lircd_devinput.zip (Alles was man brauch für DEVINPUT Devices, z.B .Auvisio Windows MCE Zapper)
    lircd_streamzap.zip (Alles was man brauch für StreamZap USB Remote)
    lircd_igor_plug usb.zip (Alles was man brauch für IgorPlug USB)


    usbhid.ko_hiddev_dm800.zip (DM800 HIDDEV Treiber; wird für einige Remotes wie der von CL gebraucht)

  • Hi,


    eine passende conf für die original Fernbedienung könnte ich Dir erzeugen.


    gruß cHrIsZ

  • Ne config is nicht das problem, gibts sogar auf der lirc seite für ne DM7020 (selbe zapper wie andere boxen auch), nur keiner der USB Empfänger die ich hier habe funktionieren mit original DMM Zapper, die sind halt alle so gebaut das sie auch nur mit der dazugehörigen Fernbedienung funktionieren. Und die Seriellen-IR Empfänger mit denen es ohne probleme gehen würde, funktionieren an einer dreambox nicht weil da der Com-Port zu ist ...

  • Hi,


    ich habe meine 800hd erst eine Woche, und mich aus Zeitgründen noch nicht so wirklich damit auseinander gesetzt.


    Wie sieht es mit Kernelmodulen aus, können welche einkompiliert werden ?


    An sich ist ja Lirc schon der erste Schritt. Auf meinem Debian Rechner habe ich so ziemlich jeden USB Empfänger dazu gebracht die IR-Befehle zu akzeptieren. Ich habe da natürlich mehr Möglichkeiten, entsprechende Module einzubinden.


    Was sagt denn Lirc, bzw. irw wenn du die lircd.conf von der Dreambox verwendest. Kann irw damit garnichts anfangen ? Sendet die DMM Zapper eigentlich RC5 ?


    Ich hätte hier einen igor_plug usb Empfänger am Debian Rechner. Der schluckt eigentlich alles ...


    gruß cHrIsZ

  • Zitat

    Wie sieht es mit Kernelmodulen aus, können welche einkompiliert werden ?


    Ich denke schon, für mich ist das ganze noch Neuland aber wenn ich die config ändere vom lirc und dann durch mein OE-Devshell jage und kompiliere, werden auch die Treiber oder Kernelmodule mit erstellt, also da kann ich also gerne mal probieren eine für euch passende Version zu basteln. Einfach nur sagen was ihr fürn Device habt und dann bau ich mal ne LIRC Version damit ...


    Zitat

    Was sagt denn Lirc, bzw. irw wenn du die lircd.conf von der Dreambox verwendest. Kann irw damit garnichts anfangen ? Sendet die DMM Zapper eigentlich RC5 ?


    Passiert GAR NIX. Der Empfänger hier vom Creative Zapper hat auch ne rote kontrol LED vorne eingebaut, die blinkt kurz auf wenn er was empfängt. Blinkt aber nur wenn CL Zapper was sendet. Gibt halt USB Empfänger, die sind so gebaut das sie auch nur die Befehle von ihren zappern 'weiterleiten' und sonst nix.


    Wenn ich zB das Dreambox profil drin habe und dann mitm creative zapper drauf halte, meckert lirc das halt unbekannte befehle gesendet/empfangen wurden. Aber mitm dreamzapper oder so steht da nix.


    Klar, ich bin mir ziemlich sicher das es auch empfänger gibt die nicht so sind und alles weiterleiten was ankommt. Der USB-IR-Boy zum Beispiel ...


    Müsse ma halt mal testen was noch so geht. Ich hab halt nur 2 USB Empfänger und beide gehen nur mit ihrem dazugehörigen Zapper.


    Zitat

    Ich hätte hier einen igor_plug usb Empfänger am Debian Rechner


    Okay dafür brauch LIRC nen zusätzliches Kernelmodul. Ich werd mal probieren was für dich zu basteln und die 2 kernelmodule für dich kompilieren (lirc_dev und lirc_igorplugusb). Du hast eine DM800 ? Leider ist meine Playstation³ gerade damit beschäftigt nen OE 1.6 Image zu backen und das dauert wohl auch noch bisl was. Bekommst aber in den nächsten 24std was :)


    Ich guck aber mal eben ob ich nicht auch während des Image Baus daran komm, is nur was ruckelig im Moment die Kiste :)


    Zitat

    Sendet die DMM Zapper eigentlich RC5 ?


    K.a. ... denke aber schon wird was normales sein. Meine Harmony kann die Befehle ja auch lernen davon. Was nicht ganz den Regeln entspricht sind diese komischen Befehle halt wenn man die taste lang hält (blau oder info) das die dann nen komplett anderen befehl senden. Das können die meisten standard Zapper halt nicht, wenn man da die taste hält wird halt mehrfach hintereinander der selbe befehl gesendet

  • Hallo,


    brauchst Dir die Arbeit nicht zu machen. Ich muss mich mal einlesen, wie ich mir ne Compiler Umgebung schaffe auf der Dreambox.


    Falls sich derweil jemand an der DMM Zapper versucht, hänge ich mal die gerade erstellte lircd.conf von der DMM Zapper als RAW Version mit an.



    Gruß cHrIsZ

    Mobile Device Development

    Einmal editiert, zuletzt von crystl ()

  • Hi,


    PS: Für den 'langen druck' auf einer Taste sollte es reichen den tooglebit entsprechend zu erhöhen, verlängern. Müsste man sich mal genauer ansehen.


    [Edit] Habe ich mich schon für Deine Arbeit bedankt ? :winking_face: Geschieht hiermit :winking_face:


    Gruß cHrIsZ

    Mobile Device Development

    Einmal editiert, zuletzt von crystl ()

  • Passt schon. Lerne doch grad noch dazu und vor einer Woche wusste ich nichmal wie man kompilieren schreibt :)


    Hab hier mal die Dateien für dich. Hab sie aber selber nich geteste!


    lirc_dev.ko
    lirc_igorplugusb.ko
    usbhid.ko ***


    Sind die 2 Treiber halt. Müssen hier irgendwo hin:
    /lib/modules/2.6.12-5.1-brcmstb-dm800/kernel/drivers/usb/input/


    ***
    Ob du usbhid.ko mit dem HIDDEV Support brauchst weiss ich nich. Ich glaube nicht! Das is wohl nur für mein Creative Zapper mit HIDDEV-Support interesserant ...


    Diese alle in telnet laden:

    Code
    insmod /lib/modules/2.6.12-5.1-brcmstb-dm800/kernel/drivers/usb/input/lirc_dev.ko


    Nen LIRC Daemon mit igorplugusb support und "DEBUG" flag, in telnet laden mit:

    Code
    /usr/sbin/lircd  -n -D5 --driver=igorplugusb


    Und halt irw, das selbe halt was ich auch benutze. einfach mit "irw" in einem neuen telnet fenster starten. Man brauch 2, eins für den deamon zum angucken und eins für irw ...


    etc/lircd Configfile für IgorUSB gibts wohl auf der lirc seite.


    ------


    Wenn Treiber geladen sind und man das Gerät an den USB Anschluss anstöppselt, wäre viellciht interessant mal die letzten meldungen von "dmesg" zu sehen oder mit "find /dev/usb" zu sehen ob er mit dem gerät was anfangen kann und zB Treiber geladen hat. Naja, und halt was LIRC ausspuckt, wäre viel interessanter :)


    *edit*
    attachment entfernt, ist jetzt im ersten posting auf der seite (lircd_igor_plug usb.zip)

  • das lange drücken geht in der Put routine leicht zu emulieren (gibt sccon eine keep option, einfach dort 1 übergeben), und dann musst du halt wenn der drücken event kommt einen timer anfangen und wenn der loslass even kommt schauen wie viel Zeit verstrichen ist und wenn mehr als 1 sec dann halt das keep mit übergeben beim schreiben auf das FB device der Dreambox.


    Und genau das ist übrigens einer der sachen die ohne lirc eben leichter gehen zu coden :)


    Aber wenn du Fragen dazu hast machen wir das im thread in der bastelstube


    LG
    gutemine

    Einmal editiert, zuletzt von gutemine ()

  • Zitat

    das lange drücken geht in der Put routine leicht zu emulieren (gibt sccon eine keep option, einfach dort 1 übergeben)


    Die funktion nutz ich ja eh in meinem modifzierten IRW Script :winking_face:


    Und stimmt ... an die KEEP Variable kann ich mich erinnern. Konnte aber nix damit anfangen und hab's halt auf 0 gesetzt :)


    Aber dann besteht noch Hoffnung das ich das auch hinkrieg hier im IRW Client :winking_face:

  • Hi,


    Danke. Ich werde mich da mal am Wochenende ranschmeißen.


    Male eben OoT:
    Gibt es eine Developer Doku zur Dreambox ? Entwicklerumgebung ?
    Danke im voraus.


    PS.: Für andere Interessenten. Der igorplug_usb kostet im Eigenbau ca. 5-10Euro, und ist nicht größer als ein USB-Stick. Der kann auch ohne Probleme einfach hinten stecken, und muss nicht mit einem Kabel nach vorne gelegt werden.


    Viele Grüße cHrIsZ

  • Zitat

    Original von crystl
    Gibt es eine Developer Doku zur Dreambox ? Entwicklerumgebung ?
    Danke im voraus.


    Ich hab 0 Check von nix gehabt und diesen Wunderscript eingegeben. Der ratterte dann ein paar Stunden und als es fertig war hatte ich alles was ich brauche. Nur noch dieses devshell erstellen mit 3-4 telnet befehlen und schon gings los :)


    CVS- sowie OE-Installation und Imagebau für Anfänger (und EgLe ;) )


    Zitat

    PS.: Für andere Interessenten. Der igorplug_usb kostet im Eigenbau ca. 5-10Euro, und ist nicht größer als ein USB-Stick. Der kann auch ohne Probleme einfach hinten stecken, und muss nicht mit einem Kabel nach vorne gelegt werden.


    Isn Versuch wert :) Wenn er funktioniert bei dir und mit mehreren Remotes klar kommt, ist'er gekauft :)


    Sieht selbsgebaut hoffentlich besser aus als diese version des Igor-USB's :face_with_rolling_eyes:


    In diesem Fall würde ich das Design meine Creative Zappers doch bevorzugen :face_with_rolling_eyes:

  • Yo das sieht schon besser aus. Noch'n Gehäuse und Rosa-Schleifchen drum, dann passts :)


    Bin gespannt ob's funktioniert. Dann gehen die Dinger in Massenproduktion :)

  • Hallo Homey,
    super interessantes Projekt - hört sich wie eine tolle Alternative für meine Harmony 885 mit DM800 an :winking_face:
    Wird der orginale IR-Empfänger eigentlich deaktiviert? Ich würde dass ganze auch gerne mal mit der orginalen DMM Fernbedienung testen, daher die Frage. Als IR-Empfänger habe ich noch einen aus dem ir-shop (Power on USB), der eigentlich auch mit dem igorplugin laufen sollte und mit beliebigen Zappern.


    Ich werde das ganze mal am Wochenende testen. Danke für deine Mühe bisher und Gruß x.

  • Ja musst probieren :) Ich helf dir auch wenn nicht weiter kommst :winking_face:


    Zitat

    Wird der orginale IR-Empfänger eigentlich deaktiviert?


    Ne im moment nicht. Geht aber sonst sicher irgendwie :winking_face:


    ----------


    Oben gibts jetzt auch noch ne LIRC Version für s.g. DEV-Input Devices, wie dem Auvisio Windows MCE Zapper. Haben wir hier erfolgreich ans laufen gebracht:
    http://www.dream-multimedia-tv…ad&postID=60638#post60638


    Fehlt nur noch ne passende config datei für den zapper ...


    Laut warrior700 gibts diesen Zapper quasi "bei jedem aldi PC dabei" :face_with_rolling_eyes:


  • Also wenn der funktioniert würd ich ihn mir auch sofort betsellen und basteln.
    Der Creativ Empfänger ist mir nämlich fast zu groß. Hätte lieber etwas kleineres, unauffälligeres. :winking_face: :winking_face:

  • Gut ich muss zugeben ich habe nicht ganz soviel Ahnung wie Ihr von der Materie... Würde trotzdem gerne meine DM800 mit meiner Harmony 555 und den Creative USB Empfänger betreiben... Empfänger müsste ich mir noch bestellen... Das sollte nicht das Problem sein... Muss ich dann nur die o.g. Dateien in die Box schieben und dann läufts??? Kann ich mir kaum vorstelllen...

  • Zitat

    Original von antonbier
    Wie siehts aus wenn ich einen seriellen empfänager an einen usb2serial dranhänge? würde es dann laufen?


    Nein geht leider nicht.


    Zitat

    Muss ich dann nur die o.g. Dateien in die Box schieben und dann läufts??? Kann ich mir kaum vorstelllen...


    Yo das reicht eigentlich. Noch nen paar telnet befehle eingeben und los geht's. Wenn genug Leute getestet haben mach ich auch gerne ein paar *.ipk dateien daraus die alles installieren und einstellen was man brauch.