[vtuner-ng] Aktualisierter vtuner für kernel >= 4.16

  • die diseqc.conf kann ich dir gleich liefern. hatte auch mit mit eingeschaltetem diseqc getestet - gleiches ergebnis

  • Habe im vtuner die Auswertung vom Burst-Signal geändert. Schlauerweise hat das DVB-Team für Burst 0 und 1 definiert und wenn kein Burst gesendet wird stand der Wert bei mir auf 0. Da nahm das satip-Programm halt an es müsse auf SAT-Pos 1 schalten. Ist nun in eine eigene Struktur gewandert die Burst in value und valid aufteilt. Nur wenn das valid gesetzt ist wird Burst nun verwendet.

    Mit debug=1 wird nun auch angezeigt ob DISEQC oder BURST gesendet wurden:

    Code
    [ 5414.363273] vtunerc0: MSG_SET_FRONTEND, set signal NONE, with DISEQC, with BURST

    Im satip-Programm wird nun mit Standardlog (-m 2 -l 4) die Anwahl des Satelliten ausgegeben:

    Code
    Jan 18 08:55:18 [6142 satip_rtp.c:299]  info: rtp/rtcp port 46505/46506
    Jan 18 08:55:20 [6142 satip_vtuner.c:126] debug: DISEQC E0 10 38   msg FE AA AA len 4
    Jan 18 08:55:20 [6142 satip_config.c:241] debug: SAT 4
    Jan 18 08:55:20 [6142 satip_rtsp.c:695] debug: connecting...
    Jan 18 08:55:20 [6142 satip_rtsp.c:585] debug: connected -> establishing

    beinhart Bitte nachschauen ob in der setup.conf auch DiSEqC = 1 aktiviert ist.

  • .. das funktioniert so gut mit vtuner/satip, dass es hier mal als Standard aktiviert ist (direkt am Client/einzige Box). Wenn's mal ein Update bzgl. kernel (ubuntu-yavdr) geben sollte, ist der Aufwand, das vtuner.ko Modul und die "App" satip neu zu übersetzen auch nicht sehr groß - cool wär'S natürlich, wenn es in yavdr mit einfließen könnte - als Alternative zum satip-plugin.

    Danke & Grusz!

    Lascala LC17 - tribute to viking ;o) + atric IR / SoC ASUS J3455M-E / OctopusNet S4 / yavdr ubuntu noble / output: osd2web + kivy-osd2web / branch 'python3' via 6.4" TFT & sat>ip DVB-S/S2 via FullHD / NVidia GT1030 passiv

  • cool wär'S natürlich, wenn es in yavdr mit einfließen könnte - als Alternative zum satip-plugin.

    Ich habe mich mal an einem Paket versucht - ungetestet (außer einer erfolgreich durchgelaufenen Installation der Pakete in einer VM): https://launchpad.net/~seahawk1986-h…buntu/vtuner-ng

    Wenn man das Paket vtuner-ng-satip installiert, sollte er damit sowohl das satip binary als auch das dkms-Paket vtuner-ng-dkms als Abhängigkeit installieren.

    Was noch fehlt sind die Systemd Service Units zum Anlegen der virtuellen Tuner - nachdem RE: [vtuner-ng] Aktualisierter vtuner für kernel >= 4.16 nicht besonders generisch ist, fände ich es praktischer sowas wie eine vtuner@.service zu haben, so dass man dann über den Instanz-Parameter regeln kann, welcher Tuner für welchen Satip-Server angelegt wird - also z.B. sowas wie systemctl start vtuner@192.168.1.33:0.service - natürlich mit entsprechenden Abhängigkeiten bzw. Reihenfolge zum VDR, Netzwerk usw.

    Dazu hätte ich noch ein paar Fragen:

    • Hat das vtunerc Kernelmodul irgendwelche Laufzeitabhängigkeiten (wie z.B. dass das Netzwerk schon da sein muss, wenn man es lädt)?
    • Macht das etwas aus, wenn man es immer die maximale Anzahl von möglichen Devices (devices=8, wenn ich das Makefile richtig verstehe) laden lässt?
    • Muss das Netzwerk schon da sein, wenn man über das satip-Programm einen Tuner anlegt?
    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Quote from seahawk1986

    Hat das vtunerc Kernelmodul irgendwelche Laufzeitabhängigkeiten (wie z.B. dass das Netzwerk schon da sein muss, wenn man es lädt)?

    Nein.

    Macht das etwas aus, wenn man es immer die maximale Anzahl von möglichen Devices (devices=8, wenn ich das Makefile richtig verstehe) laden lässt?

    Jain. Kommt eben drauf an welches Verhalten erwünscht ist. Die angelegten Adapter werden unabhängig ob diese von einem externen Programm versorgt werden vom VDR "erkannt". Muss mal ausprobieren wie sich VDR verhält wenn an einem Adapter auf nichts umgeschaltet werden kann.
    Theoretisch könnte man die Adapter "leer" starten, d.h. ohne DeliverySystem. Dann würde VDR diese ignorieren. Erst bei einer Verbindung eines externen Programms an /dev/vtunercX könnte ich dann das DeliverySystem-Array setzen.

    Muss das Netzwerk schon da sein, wenn man über das satip-Programm einen Tuner anlegt?

    Bin mir nicht sicher. Zum Start werden die Empfangsports für RTP/RTCP gebunden, aber ohne spezifische IP. Könnte also so sein!

  • Unter openSuse habe ich eine Systemd Unit angelegt, die ein Skript aufruft und eine Config-Datei hat. Die ganz korrekte Variante mit einer systemd-Unit pro satip-Prozess war mir irgendwie von der Konfiguration her unsympathisch, auch weil man in der übergeordneten Unit dann das Kernel-Modul laden/entladen müsste.

    Code
    /etc/vtuner.conf:
    # config for VTuner
    #
    DEVICES=2
    SATIP_SERVER=1.2.3.4
    DELSYS="DVBS,DVBS2"
    LOGLEVEL=1
  • auch weil man in der übergeordneten Unit dann das Kernel-Modul laden/entladen müsste.

    Das Laden von vtunerc hätte ich über eine Konfigurationsdatei im Ordner /etc/modules-load.d/ umgesetzt (https://www.freedesktop.org/software/syste…les-load.d.html) - oder gibt es einen praktischen Grund dafür das Kernelmodul nach dem Stoppen der satip-Prozesse zu entladen?

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Zum Aufräumen ;) Aber es kann auch drin bleiben, es stört ja nicht wenn es nicht benutzt wird. Beim Testen ist es halt ganz praktisch wenn es nach einem Versuch wieder entladen wird bevor man eine neue Version testet.

    Durch das Skript kann man in der Configdatei die Anzahl der V-Tuner angeben und der Parameter wird sowohl dem Kernelmodule mitgegeben also auch die ensprechende Anzahl satip-Prozesse gestartet so dass man nicht an zwei Stellen editieren muss.

    Was mich eher stört ist der kontinuierliche Netzwerktraffic solange die satip-Prozesse mindestens einmal getuned haben und laufen, selbst wenn der VDR gestoppt wurde oder die Kanäle nicht mehr braucht.

  • Was mich eher stört ist der kontinuierliche Netzwerktraffic solange die satip-Prozesse mindestens einmal getuned haben und laufen, selbst wenn der VDR gestoppt wurde oder die Kanäle nicht mehr braucht.

    Zumindest den Fall, dass der VDR gestoppt wurde müsste man eigentlich über Systemd lösen können, wenn die satip-Instanzen für die Tuner als Abhängigkeit von der Unit für den VDR gestartet werden und StopWhenUnneeded=True in diesen Units gesetzt ist (https://www.freedesktop.org/software/syste…opWhenUnneeded=).

    Für eine Freigabe zur Laufzeit müsste man das dynamite-Plugin mit einem attach/detach Hook bzw. das beim Idle-Switch aufgerufene Skript/Programm einspannen können (https://github.com/MarkusEh/vdr-p…kus/README#L246 und https://github.com/MarkusEh/vdr-p…kus/README#L254) - wenn es nur darum geht, dass das satip-Binary noch keine Tuning-Anforderung erhalten hat, reicht es doch eigentlich das Programm für einen Tuner zu beenden und neu zu starten, damit der Tuner bei Bedarf zur Verfügung steht, aber nichts vom Server anfordert.

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Edited once, last by seahawk1986 (January 20, 2024 at 4:10 PM).

  • Was ich gerade noch einbaue ist ein MSG_CLOSE_FRONTEND bei dem das satip-Programm dann einen TEARDOWN schickt und die RTP/RTSP-Verbindung beendet.

    Ansonsten mal schauen ob ich erst beim Öffnen des vtuner-Devices durch z.B. satip die Frontend-Parameter setze. Dann dürfte es kein Problem sein 8 Tuner-Devices anzulegen und nur 4 zu benutzen. Der VDR müsste dann nur 4 davon belegen....

  • Was mich eher stört ist der kontinuierliche Netzwerktraffic solange die satip-Prozesse mindestens einmal getuned haben und laufen, selbst wenn der VDR gestoppt wurde

    In der aktuellen Version wird beim stoppen von VDR die Verbindung zum SAT>IP-Server abgebaut und wenn man den VDR wieder startet wieder aufgebaut.

    Quote from FireFly

    oder die Kanäle nicht mehr braucht

    Na da bin ich aber gespannt: Wie erkenne ich das?

  • Na da bin ich aber gespannt: Wie erkenne ich das?

    Das würde mich auch interessieren. Lässt der VDR die ganze Zeit das Device geöffnet? Und auf dem zuletzt getuneten Kanal? Dann hätte man keine Chance das zu erkennen. Bisher war das ja kein Problem wenn andauernd Daten durch das Koaxkabel in die Tunerkarte und von dort an das Device-File gelangen, aber bei Ethernet ist das schon irgendwie suboptimal.

    Macht das satip-Plugin das genauso?

  • Ansonsten mal schauen ob ich erst beim Öffnen des vtuner-Devices durch z.B. satip die Frontend-Parameter setze. Dann dürfte es kein Problem sein 8 Tuner-Devices anzulegen und nur 4 zu benutzen. Der VDR müsste dann nur 4 davon belegen....

    Ist jetzt mal so umgesetzt. Jetzt kann man z.B. devices=8 angeben und "nur" 4 satip Prozesse mit vtunerc0 - vtunerc3 verbinden. Beim Start des vdr werden die angelegten Adapter4 bis 8 ignoriert...

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!