[dynamite] Freigeben von ungenutzten Tunern

  • Hi, bin gerade beim Test v. libvdr-dynamite.so.2.4.7 gemeinsam mit BM2LTS und mcli.


    Plugin-Readme mit Infos für devs: https://github.com/flensrocker…te/blob/master/README#L39


    Hintergrund:

    Mein Netceiver ist mit 6 Tunern bestückt und wird, da er im Heizraum steht (dort kommen halt die SAT Kabel an) "etwas warm". Die Tuner würden sich, wenn der vdr sie freigibt autom. schlafen legen ;-).


    dynamite wird nach dem softhddrm und mcli geladen - aktueller Status:

    Prinzipiell läuft es und erkennt wohl auch mcli ... im .conf habe ich --idle-timeout=1 das Timeout auf 1 Minute, aber released wird keiner der 2 (mit Kanal 17 + 18, durch 1x Channel UP + dann wieder Down) belegten Tuner ...


    Hier der Link zum vollständigen Log mit --log=3


    Hi, Prinzipiell via dynamite-Plugin ja. Ob das mit dem Exot mcli zusammen funktioniert, keine Ahnung...

    Eher nicht, aber ist nen Versuch wert. Vdr muss gepatcht sein dafür.

    Mfg Stefan

    cinfo : Nur z. Sicherheit die Frage: Der vdr ist dazu gepatched oder ?


    Wie sollte ich zur Eingrenzung weiter vorgehen ?

    Liebe Grüße g ;-)

    NCV6dvbS2+Alphacrypt+ORF, BM2LTS2.94.4 AVG1 T7400 SSD+HDD NvidiaGT720, BM2LTS3.4 NUC10i3 NVMe+HDD

    The post was edited 1 time, last by gggggg ().

  • Hi,

    Ich würde behaupten, so kann es nicht funktionieren. Dynamite funktioniert nach dem Prinzip dass er alle verfügbaren Tunerslots (ich meine es sind 10 im Standard VDR, kann aber erhöht werden im src) des VDRs an sich reißt beim Start und dann wenn verfügbar die Tuner da drauf gemappt werden. Deshalb kann vdr dann auch ohne geladene Tuner schon starten und später die lahmen Treiber von z. B. Sundtek Sticks geladen werden. Dafür wurde es mal entwickelt. Deshalb muss es vor allen Tuner Plugins geladen werden (und auch Frontends meine ich mich zu erinnern).

    Mfg Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • Sehe ich auch so, das wird nicht gehen. Dynamite simuliert gegenüber VDR (noch) nicht vorhandene DVB Devices. Was du suchst ist, dass der VDR die Devices, die er nicht braucht, frei gibt. Und das gibt es im VDR nicht. Normalerwiese werden auch alle Devices zumindest für den EPG Scan verwendet (wenn man den nicht abgeschaltet hat).

    VDR
  • Hi,

    Das habe ich nicht gesagt, dass es nicht geht. Nur nicht mit seiner Start Reihenfolge. Weil dann sind die Tuner ja schon geladen, wenn Dynamite startet(und dynamite bekommt nur noch die restlichen freien Slots ab).

    Dynamite kann zumindest bei USB Tunern diese schlafen legen. Dass die für EPG und Kanalsuchen genutzt werden ist klar, aber nicht das Problem, da dann nicht alle immer laufen. Darum geht es ja.

    Und ob es mit dem Netceiver geht ist zu prüfen, keine Ahnung... (wie der seine Tuner lädt/einbindet).

    Mfg Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • Dynamite kann zumindest bei USB Tunern diese schlafen legen.

    Lokale Hardware schlafen schicken ja, weil Dynamite die unter seiner Kontrolle hat. Um ein remote Device schlafen zu schicken, müsste er ja dem Plugin, dass das Remote Device unter seiner Kontrolle hat, kommunizieren. Und das kann Dynamite nicht. Wäre aber schön, ich hätte das für SATIP auch gerne.

    VDR
  • Nein es müsste nicht kommunizieren, sondern nur dem vdr ungenutzte devices entziehen ... schlafen legen sich die Tuner beim NCV v. selbst...


    Habe 10-dynamite nun vor 20-mcli geladen ... Ich vermute dass mcli da die device Klasse o.ä. von dynamite nutzen müsste um devices anzulegenvdr: [19061] ERROR: too many devices or "dynamite"-unpatched device creator!

    oder ist es das ?

    vdr: [19061] udev: no devices found for dvb/DVB_DEVICE_TYPE=frontend



    Hier das log, wo dynamite beginnt die devices zu krallen und Mitten drin mcli los legt.

    Liebe Grüße g ;-)

    NCV6dvbS2+Alphacrypt+ORF, BM2LTS2.94.4 AVG1 T7400 SSD+HDD NvidiaGT720, BM2LTS3.4 NUC10i3 NVMe+HDD

  • Hi,

    2 Dinge: der Vdr scheint nicht dynamite gepatcht zu sein, das sagt das log und die Frage ist ob mcli per udev die Tuner anlegt.

    Die Sundtek Tuner sind ja auch ähnlich satip Tunern. Die müssen nicht lokal gemountet sein, sondern im LAN. Aber das ist da über den Userspace Treiber realisiert. Nutzt nur fast niemand, aber in yavdr 0.6 zumindest war es drin.

    Mfg Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • sondern nur dem vdr ungenutzte devices entziehen

    Wirklich entziehen kann man Devices dem VDR zur Laufzeit nicht. Man kann sie nur in den Zustand "ich kann nichts empfangen" versetzen. Dann muss Dynamite sich selber um die andere Seite kümmern, USB Device schlafen legen, oder eben mcli sagen, dass das Device nicht mehr benützt wird.

    Dazu müsste mcli aber die Dynamite Device Klasse verwenden und wie du schon festgestellt hat, ist dies nicht der Fall. Ohne Patch für mcli geht das eh nicht.

    VDR
  • pbrb   HelmutB   cinfo ... könnt ihr bitte obige Punkte von Stefan und kfb77 beantworten.


    Falls es darin mündet, dass ihr mcli grob umbauen müsstet od. der vdr patchaufwand nicht dafür steht, vergessen wir das Ganze besser und ich kauf mir noch ein paar DVB-S2, für den Fall, dass die "Alten" das zeitliche segnen ;-) .

    Liebe Grüße g ;-)

    NCV6dvbS2+Alphacrypt+ORF, BM2LTS2.94.4 AVG1 T7400 SSD+HDD NvidiaGT720, BM2LTS3.4 NUC10i3 NVMe+HDD

  • Wirklich helfen kann ich aktuell wohl nicht, aber man könnte ggf. in mcli eine API (und ggf. ein svdr-Kommando) einbauen, was einzelne unbeschäftigte Tuner abmeldet. Allerdings müßte man dann auch verhindern, daß die danach gleich wieder gefunden werden automatisch. Klingt nach "list tuner" und dann "blacklist tuner <ID>" und wenn man's wieder braucht: "whitelist tuner <ID>" bzw. "whitelist tuner *" - ob's (so einfach) geht, müßte mal einer versuchen zu programmieren...ich kann mir dann den Patch mal anschauen und mergen, wenn ok.

  • Moin!


    Einfach mal das Readme genau lesen und sich die Beispiele für das dynamite-dummydevice [1] und pvrinput [2-5] ansehen, dann sollte hoffentlich klar werden, was mcli machen muss.


    Letztendlich ist es so, dass dynamite alle Device-Slots im vdr belegt (minus ein paar für Ausgabe usw.). Und wenn der vdr auf einen dieser Tuner zugreifen will, dann erstellt es im Hintergrund per "new" das entsprechende Device-Objekt des Plugins, welches dann alles initialisieren muss, was es so muss.

    Wenn nach Ablauf des Idle-Timeout niemand mehr auf das Device zugegriffen hat, dann wird das Plugin-Device-Objekt einfach per "delete" wieder gelöscht, also muss es im Destruktor alles aufräumen, als ob der vdr beendet wird.


    [1] https://github.com/flensrocker…lob/master/dynamite.c#L55

    [2] https://github.com/flensrocker…blob/master/device.h#L167

    [3] https://github.com/flensrocker…/blob/master/device.c#L20

    [4] https://github.com/flensrocker…blob/master/device.c#L284

    [5] https://github.com/flensrocker…lob/master/device.c#L1533



    Lars.