Das neue Netzwerk-Client, der für vdr verwenden können

  • Neue Lösung inspiriert von virtuellen DVB-Gerät von Ronald Mieslinger
    ( source code ) steht aus zu herunterladen ( download page ).
    User kann virtuelle DVB Gerät auf Client-Seite erstellen (Linux-PC). Dann ist es möglich, es mit dem Server verbinden. Nach dem Herstellen der Verbindung mit dem Server, können Benutzer einen beliebigen Linux DVB API kompatible SW Anwendung auf Client-Seite verwenden (wie VDR, MetV, MythTV, etc), ohne Code-Änderung und plugins. Als Server kann jeder Linux DVB API kompatiblen Geräten mit Ronald Mieslinger Code verwendet werden.

  • Interessante Sache, aber auf den ersten Blick kann das so auf die Schnelle wohl nicht funktionieren. Der Client von der Dreamtuner-Seite öffnet ein Control-Device /dev/misc/vtuner0, das Kernelmodul von der anderen Webseite erzeugt aber ein Device-File mit dem Namen vtunerc0. Gibt es da eventuell noch mehr Inkompatibilitäten?


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Ja, du hast recht, jetzt ist es notwendig, das Control-Device zu umbenennen. An diesem Abend wird der DreamBox Code gepatcht werden. Dann wird es mit beiden Quellen kompatibel.


    Der Code ist getestet und funktioniert ohne Probleme.

  • Der Code ist getestet und funktioniert ohne Probleme.


    Na, ich weiß nicht so recht. Die Revision 81 vom dreamtuner baut bei mir nicht. In vtunerd-service.c hat die Funktion start_session 3 Argumente, der Prototyp in vtunerd-sevice.h aber nicht und in vtunerd.c wird start_session auch nur mit 2 Argumenten aufgerufen.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Ich habe mal ein paar Patches gemacht damit es baut, aber laufen tut der Client noch nicht:

    Code
    [ 1805.581312] vtunerc: WARN: unknown IOCTL 0x1
    [ 1805.581474] vtunerc: WARN: unknown IOCTL 0x1
    [ 1805.581581] vtunerc[2264]: segfault at 769e62d8 ip 00007f8176a2e436 sp 00007f81769e4d40 error 4 in libc-2.13.so[7f81769e7000+18a000]


    Ist allerdings auf einem 64bit-System ohne das CC-Flag -m32 gebaut. Der Daemon auf der Dockstar läuft, nachdem ich im Treiber den Return vom IOCTL DMX_SET_BUFFER_SIZE nicht mehr prüfe.
    Der sundtek-treiber liefert da !=0 auch wenn es geklappt hat.


    Übrigens, der Kommandozeilen-Parser ist grausig. Die Option -c für 2 verschiedene Dinge zu nehmen halte ich für eine ganz schlechte Idee. Auch das die IP-Adresse erst genommen wird mit einem Doppelpunkt danach finde ich nicht sehr gut, das widerspricht auch dem Kommentar im Quellcode. Ein kurzer Hilfetext der die Optionen ohne Quelltextstudium zeigt wäre auch schön.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

    Einmal editiert, zuletzt von gda ()

  • Das Repository geändert wurde. Bitte überprüfen neuen Version.


    Sorry, aber da sind keine Änderungen dabei, die das Problem lösen würden. Ist nur für i686, ich brauche aber amd64.


    Nur zum Verständnis, ich benutze die Makefiles nicht, ich benutze ein eigenes. Deine Makefiles erlauben es für beliebige Plattformen einen Cross-Compile zu machen. Ich mache aber immer native Builds weil ich es gleich in Pakete baue. Einmal für yaVDR64 und einmal für die Dockstar.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

    Einmal editiert, zuletzt von gda ()

  • Ach, ich siehe jetzt. Ich habe auch amd64, aber Ich habe meine eigene Version mit meinen eigenen amd64-Verzeichnis und Makefile gemacht. Ich werde es für Entwickler zu senden. Ich selbst habe keinen Zugang zu Repository.

  • Ach, ich siehe jetzt. Ich habe auch amd64, aber Ich habe meine eigene Version mit meinen eigenen amd64-Verzeichnis und Makefile gemacht. Ich werde es für Entwickler zu senden. Ich selbst habe keinen Zugang zu Repository.


    Und du bekommst keinen Segfault?


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470


  • wurde nachgebessert, update ist bereits online. Der Treiber liefert nun 0, war ein Fehler auf unserer Seite. Das Modul wurde aber noch nicht getestet, es gab wohl ein ähnliches Modul welches früher bereits funktioniert hat.


    Der Segfault kommt hier nicht aber es bleibt hängen (insbesondere ohne angeschlossenem DVB Gerät, wohl auch mit falschem Parameter gestartet, aber es zeigt das noch einiges zu tun wäre bei dem Modul).

  • Nein und ich benutze es als tester fuer 6 Monaten. Ich habe Gentoo amd64 (AMD Athlon(tm) II X2 240e Processor, 4GB RAM).


    Benutzt du 64Bit Server und Client, oder hast du es auch mit gemischten Systemen probiert? Ich habe etwas debuggt und der Segfault tritt in dem discover_worker-Thread auf, wenn inet_ntoa das erste mal auf die Daten zugreift. Mal sehen, vielleicht komme ich heute Abend ein Stückchen weiter.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • wurde nachgebessert, update ist bereits online.


    Ich finde keinen mrec. Der letzte ist vom 20. Juni.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Ich denke den Grund für den Segfault in vtunerc.c bei inet_ntoa habe ich gefunden. Es fehlt ein Include mit dem Prototype für inet_ntoa. inet_ntoa gibt einen char-Pointer zurück, aber wegen des fehlenden Prototype wird ein int daraus (vielleicht im Makefile mal den Warning-Level heraufsetzen?). Ein int ist aber überall 4 Bytes lang, auch auf 64Bit-Betriebssystemen. Allerdings ist ein char-Pointer auf 64Bit-Betriebssystemen 8 Bytes lang, der zurückgegebene Pointer zeigt ins Nirwana, peng.


    Ich komme aber erst heute Abend dazu, nachzusehen ob das alles ist.

    Diff
    --- vtunerc.c.orig      2011-06-22 15:38:49.000000000 +0200
    +++ vtunerc.c   2011-06-22 15:47:48.000000000 +0200
    @@ -6,6 +6,7 @@
     #include <sys/types.h>
     #include <sys/socket.h>
     #include <netinet/in.h>
    +#include <arpa/inet.h>
     #include <netdb.h>
     #include <string.h>
     #include <syslog.h>


    Es wäre schön, wenn die cariage returns aus vtunerc.c entfernt werden könnten. Wer Editiert denn hier unter Windows, pfui.


    Mindestens in vtunerd-service.c fehlt das Include auch. Es gibt aber auch noch ein paar doppelte Includes in vtunerd-service.h und vtuner-network.h. Es wäre besser wenn die Includes nur an einer Stelle auftauchen.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Benutzt du 64Bit Server und Client, oder hast du es auch mit gemischten Systemen probiert? Ich habe etwas debuggt und der Segfault tritt in dem discover_worker-Thread auf, wenn inet_ntoa das erste mal auf die Daten zugreift. Mal sehen, vielleicht komme ich heute Abend ein Stückchen weiter.


    Gerald

    Ich habe NessieDVB-2xS2 als Server (als Tester schon fuer 6 Monate) und 2 PC's mit VDR (32bit Debian und 64bit Gentoo) als Clients. Ich habe diese Server also mit DB-800HD getestet. Es lauft ohne Probleme, aber es sieht so aus dass nicht alle Patchen from NessieDVB Entwiklers sind im Repo. Ich bin in Kontakt mit ihnen, sie versprach es fertig wie moeglich zu machen.

  • So mit meinem Patch stürzt der vtunerc nicht mehr ab, aber es geht trotzdem noch nicht, aber für mehr bin ich heute zu müde.


    Gerald

    Ich habe NessieDVB-2xS2 als Server (als Tester schon fuer 6 Monate) und 2 PC's mit VDR (32bit Debian und 64bit Gentoo) als Clients. Ich habe diese Server also mit DB-800HD getestet.


    Ich habe so meine Zweifel, dass du den vtunerc auch als 64Bit-Anwendung auf deinem 64Bit-System laufen lässt. Hast du in deinem Makefile das -m32 noch in den CFLAGS stehen, oder hast du das weggenommen?


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Was ist NESSIE DVB-2xS2 ? ich finde nichts dazu.


    EDIT: Gefunden. Nevermind ... 450€ + Mwst + Shipping ... Nööö


    Sonst (formfaktor, features) interessant. Gigabit-Netzwerk sollte es noch sein.

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

    2 Mal editiert, zuletzt von steffen_b ()

  • Ich bin inzwischen sicher, dass der vtunerc noch nie als 64bit Anwendung gelaufen ist. Allenfalls als 32bit Anwendung auf einem 64bit System. Anbei der nächste Patch der den Weg zur 64bit Anwendung etwas ebnen sollte. Die Begründung steht im Kommentar. Ich hatte noch keine Gelegenheit zu testen ob es noch mehr Probleme gibt. Da sich die Datenstruktur ändert, müssen sowohl Daemon als auch Clients ausgewechselt werden.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

Jetzt mitmachen!

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