[HOWTO] XBMC/VDR Umschaltung mittels LIRC

  • Hi,


    damit ich hier nicht nur immer am Fragen stellen bin, gibt es von mir auch mal ein kleines HowTo.
    Leider waren die im Internet gefundenen Lösungen immer sehr spezifisch auf die jeweilige Distribution und funktionierten sowieso nie richtig. Zudem wurde selten auf die Problematik der doppelten Steuerung (s.U.) eingegangen, oder erwähnt, dass irexec laufen muss.


    Ich habe hier Ubuntu 9.10 (den Karmic Koala) mit YaVDR 0.1 Paketen. Sollte aber auch mit anderen Ubuntu Versionen bzw. Debian klappen.


    Dieses HowTo bezieht sich nicht auf die YaVDR Distribution, sondern auf Ubuntu mit YaVDR Paketen.


    In diesem HowTO wird vorrausgesetzt, dass die Fernbedienung bereits funktioniert (VDR + XBMC).


    Ich habe eine Hauppauge Nova HD S2 mit der originalen FB im Einsatz. Da es hier auch immer wieder Probleme gibt, kommt auf Wunsch auch noch ein HowTo (habe 2 Tage dafür gebraucht)


    1. Skript zum umschalten zwischen XBMC und VDR:


    Code
    sudo gedit /usr/local/bin/switchtv


    Fogenden Inhalt speichern:


    (Bitte vdr-sxfe Parameter beachten, ggf. anpassen, hier mit VDPAU und Vollbild)


    2. Skript ausführbar machen:


    Code
    sudo chmod 777 /usr/local/bin/switchtv



    3. Irexec Konfigurationsdatei anlegen


    Code
    sudo gedit ~/.lircrc


    Folgenden Inhalt speichern:

    Code
    begin
       prog   = irexec
       remote = NOVA-HD-S2
       button = Go
       config = /usr/local/bin/switchtv
    end


    Go ist in diesem Fall die Taste, welche zum Wechseln gedrückt werden muss. Diese Taste muss in /etc/lirc/lircd.conf existieren. Bitte auch bei remote den Namen eurer FB eintragen (ebenfalls in der lircd.conf)


    4. Irexec mit dem System starten


    System -> Einstellungen -> Startprogramme -> Hinzufügen


    Name: IRExec
    Befehl: irexec -d
    Kommentar: Wechsel zwischen VDR & XBMC


    ----------------


    Nach einem Neustart dürfe der Wechsel bereits funktionieren. Jedoch besteht nun noch das Problem, dass während XBMC läuft, der VDR Daemon immer noch auf die Fernbedienung reagiert (d.h. ihr fahrt im XBMC Menü 2x nach oben; gleichzeitig schaltet der VDR 2 Kanäle um)


    5. Dem VDR Daemon LIRC entfernen


    Code
    sudo gedit /etc/default/vdr


    DIe Zeile:

    Code
    OPTIONS="-w 60"


    in

    Code
    OPTIONS="-w 60 --lirc=/dev/null"


    ändern.


    Somit nimmt der VDR keine Fernbedienungssignale entgegen. Diese Aufgabe übernimmt jetzt vdr-sxfe
    Dazu muss allerdings beim Aufruf von vdr-sxfe der Parameter:

    Code
    --lirc


    angehängt werden (so wie auch in dem Skript oben).


    Bei mir ist das wiederum im Autostart (s.O.) und bei einem Desktopsymbol der Fall gewesen.


    Feedback gerne willkommen.


    VDR:
    HW: ASUS M3N78-EM (NV-GF8300) • 4GB DDR2 • AMD Athlon II X4 • 32GB SSD • 4TB HDD • 2x Hauppauge WINTV Nova-HD-S2

    SW: easyVDR3.0 64Bit stable based on Ubuntu 14.04 Trusty Tahr • Kodi 17 Krypton • VDPAU • SoftHDDevice

    5 Mal editiert, zuletzt von Mehlwurmdieb ()

  • Hi,


    schön, dass du dir die Arbeit gemacht und dieses Howto geschrieben hast :)


    Da du explizit auf Feedback erwünscht hingewiesen hast, zwei kleine Anmerkungen von mir:


    1. Ich denke in einem anderen Unterforum wäre das besser aufgehoben - da du ja selbst gesagt hast, dass es nicht für yaVDR gedacht ist.


    2. Ich kann dein Script leider gerade nicht ausprobieren, habe aber ein Ähnliches (xbmc killen/neu starten) und musste den xbmc Aufruf so machen damit es funktioniert:

    Code
    cd /home/sphere
    DISPLAY=:0 su sphere xbmc &

    Unterschiede zu deiner Version:
    1. Ich wechsele ins Benutzerverzeichnis vom Benutzer "sphere", da wenn xbmc abschmiert er das crashlog dort abspeichert, wo er aufgerufen worden ist.
    2. ich starte xbmc mit "su <Benutzername> xbmc &" damit xbmc nicht als root läuft
    3. Ich verweise xbmc direkt auf das entsprechende Display.


    Aber wie gesagt, vielen Dank für deine Mühen,


    Grüße
    sphere

    silence: Ubuntu 9.10 | Asus M3N78-VM | AMD 4450e | TT-budget S2-1600 DVB-S2 | 5 X 1TB Raid5 | vdr (1.7.10) | xbmc opdenkamp master | Optoma HD65 Beamer | Samsung LE37B530 LCD | Onkyo 605 AVR | Heco Victa 700/300/100/25A

  • Hi, danke für das Feedback.


    Wusste leider nicht wo ich den Thread sonst eröffnen sollte. Ein eigenes Unterforum für Ubuntu + yaVDR Pakete wäre eigentlich nicht schlecht, da es doch einige benutzen. (Allerdings kann man ja auch nicht für alles ein eigenes Forum erstellen)


    Ich werde mal das Skript mit diesen Anpassungen testen. Die Angabe des Displays wird bei der Benutzung des GraphLCD Plugins von nöten sein, oder?
    Schaden wird es aber sicherlich nicht, wenn es generell drin ist.
    Das Skript ist sicherlich ausbaufähig, da es verglichen mit den anderen, welche ich gesehen habe wesentlich kürzer ist. Zudem liegt mein letzter wirklicher Skript Jahre zurück, sodass ich meist nur vorhandene Skripts abändere.


    Zu dem Benutzer:
    Ich bin mir ziemlich sicher, dass das Skript nicht mit Rootrechten läuft. Ich habe zuerst versucht, das Problem mit der doppelten Steuerung durch ein beenden des VDR-Daemons zu umgehen. Jedoch bekam ich bei "/etc/init.d/vdr stop" ein "Permission denied"


    Sollte der Displayverweis/User nicht auch beim vdr-sxfe Start geschehen?


    VDR:
    HW: ASUS M3N78-EM (NV-GF8300) • 4GB DDR2 • AMD Athlon II X4 • 32GB SSD • 4TB HDD • 2x Hauppauge WINTV Nova-HD-S2

    SW: easyVDR3.0 64Bit stable based on Ubuntu 14.04 Trusty Tahr • Kodi 17 Krypton • VDPAU • SoftHDDevice

  • Nachtrag:


    Code
    DISPLAY=:0 su user xbmc &


    funktioniert nicht. Bekomme zwar eine PID, aber das wars (z.B. "[3] 6509")


    Code
    DISPLAY=:0 xbmc &


    funktioniert dagegen.


    Habe statt user natürlich den richtigen Benutzername angegeben.


    Gebe ich


    Code
    su user


    ein, will er das PWD des Benutzer. Dies kann der Skript natürlich nicht ausfüllen.


    VDR:
    HW: ASUS M3N78-EM (NV-GF8300) • 4GB DDR2 • AMD Athlon II X4 • 32GB SSD • 4TB HDD • 2x Hauppauge WINTV Nova-HD-S2

    SW: easyVDR3.0 64Bit stable based on Ubuntu 14.04 Trusty Tahr • Kodi 17 Krypton • VDPAU • SoftHDDevice

  • Zitat

    Original von Mehlwurmdieb
    Die Angabe des Displays wird bei der Benutzung des GraphLCD Plugins von nöten sein, oder?


    Nein, das bestimmt einfach, auf welchem Display ein grafisches Programm gestartet werden soll. Ich merke schon, dein Script wird wie es aussieht wirklich von einem anderen Benutzer als root ausgeführt.
    Bei mir läuft der x-server, vdr und auch xbmc mit "sphere" wohingegeben das Script bzw. Lirc welcher das Script aufruft als "root" läuft.
    Root hat aber keinen Xserver laufen, deswegen ist die DISPLAY und "su" angabe nötig.


    Zitat

    Original von Mehlwurmdieb
    Zu dem Benutzer:
    Ich bin mir ziemlich sicher, dass das Skript nicht mit Rootrechten läuft.


    Siehe oben :)

    Zitat

    Original von Mehlwurmdieb
    Sollte der Displayverweis/User nicht auch beim vdr-sxfe Start geschehen?


    Ja, wenn es wie bei mir ein "Mischbetrieb" ist, muss die Angabe auch angegeben werden.

    Zitat

    Original von Mehlwurmdieb

    Code
    su user


    ein, will er das PWD des Benutzer. Dies kann der Skript natürlich nicht ausfüllen.


    Klar, nur root darf ohne Passwortangabe ein Programm unter einem anderen Benutzer laufen lassen.


    Generall würde mich interessieren, wieso das script bei dir nicht von root aufgerufen wird bzw. wer es mit welchen Rechten aufruft.


    Beides hat Vor- und Nachteile. Mein Script als root kann die Init-Deamons starten und beenden, inkl. Treiber ent- und neuladen.
    Deines läuft aber "irgendwie sauberer" - du musst nicht den Benutzer wechseln oder das Display angeben ;)


    Grüße
    sphere

    silence: Ubuntu 9.10 | Asus M3N78-VM | AMD 4450e | TT-budget S2-1600 DVB-S2 | 5 X 1TB Raid5 | vdr (1.7.10) | xbmc opdenkamp master | Optoma HD65 Beamer | Samsung LE37B530 LCD | Onkyo 605 AVR | Heco Victa 700/300/100/25A

  • Hi,


    der Skript läuft unter meinem Benutzer. Habe dies durch ein

    Code
    echo 1 > ~/Desktop/1


    im Skript getestet. Nach start des Skripts über Irexec wird die Datei 1 auf dem Desktop meines Benutzers erstellt.


    Ich denke irexec läuft auch schon unter meinem Benutzer und ruft das Skript auch wieder so auf. Irexec wurde in den Gnome Autostart eingetragen.


    VDR:
    HW: ASUS M3N78-EM (NV-GF8300) • 4GB DDR2 • AMD Athlon II X4 • 32GB SSD • 4TB HDD • 2x Hauppauge WINTV Nova-HD-S2

    SW: easyVDR3.0 64Bit stable based on Ubuntu 14.04 Trusty Tahr • Kodi 17 Krypton • VDPAU • SoftHDDevice

  • Ich frage mich wie das Skript überhaupt richtig funktionieren kann?


    Das soll doch ein SWITCH-Skript sein oder? Heißt eine Taste, 2 Funktionen
    1mal drücken = VDR stop + XBMC start
    nochmal drücken = XBMC stop + VDR start


    Oder hab ich hier was falsch verstanden?


    Da hier unnötigerweise der VDR gestoppt wird, was durch "--lirc=/dev/null" überflüssig ist, vermisse ich auch irgendwie den VDR start Aufruf vor dem vdr-sxfe Aufruf?!


    Auch frage ich mich wieso irexec hier unter Startprogramme gepackt wird?


    Einfach unter /etc/lirc/harware.conf entsprechend eintragen.


    Genauso irexec.conf (Ist denn neuerdings Ubuntu soweit weg von Debian?): gehören die Sachen nicht in /etc/lirc/lircrc ?


    Zu den Berechtigungen fiele mir ein das es bei Ubuntu doch sicher auch eine sudoers.list welche man mit visudo editiert gibt, oder nicht?


    Hier kann man zumindest unter Debian bestimmten Benutzern root-Rechte ohne Passwortabfrage verschaffen...


    Ich will hier nix schlechtreden, vielleicht steh ich ja völlig auf'm Schlauch, dann bitte ich um ne kurze Erklärung.


    Gruß


    Oliver

    1. VDR 2.4.0 und VNSI Plugin auf Debian Buster Server

    2. Client 1 = NVIDIA Shield mit KODI 18.9

    3. Client 2 = NVIDIA Shield mit KODI 18 .9

    4. 75 Zoll Samsung UHD TV mit Pioneer AVR VSX923 und HD Fury zur Audio Auskopplung

    5. 50 Zoll Samsung HD TV


  • Nein, VDR wird nicht gestoppt.
    Habe vergessen die Zeile zu entfernen. Der Aufruf bekommt sowieso nur ein "Permission denied". (Korrigiert)
    Nur das vdr-sxfe Fenster wird gekillt.






    Du redest bestimmt nichts schlecht, habe ja um Feedback gebeten. Ich bin kein Linux Profi (aber auch kein Anfänger mehr).
    Die etwas komischen Pfadangaben kommen von diesem Wiki Eintrag.
    Mit dem dort genannten hatte ich kein Erfolg und habe es dann so modifiziert, wie es nun oben steht.
    Da ich es nicht besser wusste, habe ich den Pfad /etc/ircexec.conf gelassen. Habe mich allerdings auch darüber gewundert (schließlich erwartet irexec die Datei nicht dort).
    Da der Start von irexec nirgends erwähnt wurde habe ich mir mit der Gnome Autostart Methode geholfen.



    Ich schaue mir das mit dem Pfad der irexec.conf mal an.
    Ich überlege noch, ob ich den Irexec Start verändern soll. Dadurch wird das HowTo eigentlich nur länger und hat eine Fehlerquelle (bei eventuell nicht so begabten Anwendern) mehr. Ich gehe davon aus, dass dadurch Irexec unter einem anderen Benutzer läuft.



    fhz


    Auf diese Anleitung bin ich noch nicht gestoßen. Werde sie mir mal ansehen. Scheint aber wohl eher für ein richtiges YaVDR zu sein. Also ohne Gnome, oder?


    VDR:
    HW: ASUS M3N78-EM (NV-GF8300) • 4GB DDR2 • AMD Athlon II X4 • 32GB SSD • 4TB HDD • 2x Hauppauge WINTV Nova-HD-S2

    SW: easyVDR3.0 64Bit stable based on Ubuntu 14.04 Trusty Tahr • Kodi 17 Krypton • VDPAU • SoftHDDevice

    Einmal editiert, zuletzt von Mehlwurmdieb ()

  • Habe das HowTo ein wenig geändert:


    Die Konfigurationsdatei von Irexec liegt nun dort wo sie hin gehört (im Homeverzeichnis des Users -> ~/.lircrc)
    Dadurch muss diese Datei dem Irexec Daemon auch nicht mehr als Parameter übergeben werden


    VDR:
    HW: ASUS M3N78-EM (NV-GF8300) • 4GB DDR2 • AMD Athlon II X4 • 32GB SSD • 4TB HDD • 2x Hauppauge WINTV Nova-HD-S2

    SW: easyVDR3.0 64Bit stable based on Ubuntu 14.04 Trusty Tahr • Kodi 17 Krypton • VDPAU • SoftHDDevice

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!