Posts by e9hack



    Hast Du mal versucht, ein anderes LIBDIR in Menu.config zu setzen? Im Namen wird nach irgendwlchen Strings gesucht, werden die nicht gefunden landet alles unter /.


    Gruß
    e9hack

    In der Vergangenheit konnte ich per make / make plugins alles im vdr-source Verzeichnis erstellen. Per make install sind dann die verschiedenen Sachen unter /usr/sbin, /usr/lib64/vdr, ... gelandet. Ich habe das in Make.config definieren können. Wie erreiche ich das mit dem neuen Makefiles? Irgendwie gibt es zwischen Bauen und Installieren keine Trennung mehr.


    Gruß
    e9hack

    Hier gibt’s ja nette Vergleiche zwischen 295.75 und 304.4x per qvdpautest. Nur wie praxistauglich ist der Vergleich? Wenn ich die Laufschrift von N24 (SD) zwischen 295.75 und 304.51 vergleiche, disqualifiziert sich 304.51. Karte ist eine etwas ältere mit GT220.


    Es ruckelt, weil die Ausgabe mit 60Hz erfolgt. Bei neueren Treibern und 1280x720 muß man 50Hz explizit per "1280x720_50" in der xorg.conf angeben :wand


    Gruß
    e9hack


    Ich kann den vdr jetzt auch mit leerer compiler.h bauen. Bei meinen ersten Versuchen habe ich DVBDIR in Menu.config gesetzt und entsprechend diesem Post -I$(DVBDIR) an CFLAGS angehängt. Die dann fehlende compiler.h habe ich entsprechend diesem Post in /usr/include/linux erzeugt. Die Variante läßt sich nicht kompiliern. Interesannterweise läßt sie sich kompilieren, wenn die leere compiler.h unter uapi/linux steht. Wenn -I$(DVBDIR) and CXXFLAGS angehängt wird, ist es scheinbar egal, wo sich die leere compiler.h befindet.


    Gruß
    e9hack


    Du solltest Dir dringend zu Gemüte führen, was ich hier und hier geschrieben habe!


    Wenn Du dies auf Deine Konfiguration überträgst, nimmt vdr den richtigen Treiber und es reicht eine leere compiler.h. Man braucht keine Symlinks, und man sieht auch sofort, wenn die falsche frontend.h genommen wird.


    OK, dann nochmal:
    1) Make.config erzeugen (DVBDIR und __u8 definieren)


    2.) Makefile anpassen, da sonst kein Plugin compiliert werden kann:


    3.) Links aus media_build_experimental entfernen und leere compiler.h per 'touch /usr/include/linux/compiler.h' erzeugen.
    4.) Compilieren mit folgendem Resultat:


    Es läßt sich mit einer leeren compiler.h nicht bauen!!


    Die Fehlermeldungen 'VDR requires Linux DVB driver API version 5.4 or higher!' kommen von falsch erzeugten dependency-Dateien. Ich habe da im Text der Fehlermeldung die Version auf 5.4 erhöht.


    Gruß
    e9hack


    Anbei mal der aktuelle Stand, soweit es die Makefile-Sachen betrifft.


    Irgendwas stimmt beim Erzeugen der Dependency-Files nicht. Es werden andere Include-Optionen als beim Compilieren gesetzt. Da das DVB-Directory an CFLAGS angehängt wird, sollte man CFLAGS auch für die Dependency-Files verwenden.


    Gruß
    e9hack


    Da frage ich mich allerdings, welche VDR-Version du verwendest!?
    Eine Abfrage auf "API version 5.4" hat es bisher nie gegeben. Das Höchste, was bisher abgefragt wurde, war 5.3.


    5.4 habe ich in die Error-Meldung der dvbdevice.h unter /usr/local/include/vdr eingetragen, um zu sehen welche tatsächlich verwendet wird (wenn ohne Pfadangabe). Ansonsten ist es 1.7.34 ohne weitere zusätzliche Plugins, aber mit folgenden Änderungen:


    Der auskomentierte Block am Ende von Make.config scheint für die 5.3 Fehlermeldungen am Anfang verantwortlich zu sein. Wenn aktiv, werden weiterhin falsche Header-Files für Plugins verwendet.


    Unter /usr/src/media_build_experimental/linux/include/linux habe ich noch zwei Links:
    dvb -> ../uapi/linux/dvb
    compliler.h -> /usr/src/linux-3.6.11/include/linux/compiler.h


    Gruß
    e9hack

    Was ich auch irgendwie merkwürdig finde, ein einfaches 'make' erzeugt den Vdr und Plugins, ein 'make clean' räumt aber die Plugins nicht mit auf. Auch wenn ich dvb-Header, compiler.h und __u8 setzte, hagelt es Fehlermeldungen:


    Eine leere compiler.h reicht bei mir nicht. Verwendeter Kernel ist 3.6.11.


    Und jetzt wird es richtig merkwürdig. Es werden Header von der letzten installierten Vdr-Version verwendet:

    Code
    1. *** Plugin status:
    2. In file included from /usr/local/include/vdr/menuitems.h:14,
    3. from /usr/local/include/vdr/plugin.h:14,
    4. from status.c:9:
    5. /usr/local/include/vdr/dvbdevice.h:19:2: error: #error VDR requires Linux DVB driver API version 5.4 or higher!
    6. g++ -g -O3 -Wall -fPIC -I/usr/src/media_build_experimental/linux/include -Werror=overloaded-virtual -Wno-parentheses -fPIC -D__user= -D__KERNEL_STRICT_NAMES= -D__u8=uint8_t -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/src/vdr-1.7.34/include -c -DPLUGIN_NAME_I18N='"status"' status.c
    7. g++ -g -O3 -Wall -fPIC -I/usr/src/media_build_experimental/linux/include -Werror=overloaded-virtual -Wno-parentheses -fPIC -D__user= -D__KERNEL_STRICT_NAMES= -D__u8=uint8_t -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/src/vdr-1.7.34/include -shared status.o -o libvdr-status.so
    8. install -D libvdr-status.so /usr/src/vdr-1.7.34/PLUGINS/lib/libvdr-status.so.1.7.34


    Funktioniert das Plugin jetzt oder nicht? Bei status ist die DVB-Version vermutlich egal.


    Gruß
    e9hack


    Lies mal, was ich vorhin im media_build_experimental Thread geschrieben habe.


    Das hilft mir für die DVB-Header aber nicht für compiler.h.


    Ich würde mir wünschen, daß endgültig mal die Basic's bezüglich include-Files und Diretories in den Makefiles des VDR gerichtet werden würden.


    Quote


    Seit geraumer Zeit ergänze ich in Make.config CXXFLAGS um

    Code
    1. -D__user= -D__KERNEL_STRICT_NAMES= -D__u8=uint8_t


    Dann braucht man nichts zu patchen.


    Schön und warum wird das nicht einfach in den Makefiles vom VDR gerichtet?


    @Klaus:
    Du hast jetzt mehr Geschäft ;-)



    Gruß
    e9hack


    Ich bin gerade dabei, die jüngsten Erkenntnisse einzuarbeiten und werde dann einen entsprechenden Patch hier posten.


    Ich weiß nicht, ob die jüngsten Erkentnisse vollständig sind.


    Aus irgendwelchen Gründen muß ich immer in dvbdevice.h 'typedef unsigned char __u8;' einfügen. Des weiteren scheint das Makefile nicht in der Lage zu sein, die aktuelle Kernel-Configuration zu finden. Ich muß immer dafür sorgen, daß die korrekte compiler.h gefunden wird. Meine Kernel werden alle mit der Option O=/my-kernel-build-dir gebaut.


    Aktuell definiere ich in make.config DVBDIR=/usr/src/media_build_experimental/linux. In /usr/src/media_build_experimental/linux/include/linux muß ich zwei Links setzen:
    dvb -> ../uapi/linux/dvb
    compiler.h -> /usr/src/linux-3.6.11/include/linux/compiler.h


    Das ich dem VDR mitteilen muß, wo neuere Include-Files für DVB liegen, ist klar. Die aktuelle Kernelkonfiguration (compiler.h) sollte er aber selber finden. Warum ich den Patch für __u8 benötige, ist mir auch nicht wirklich klar.


    Gruß
    e9hack

    Zum Synchronisieren werden gelegentlich Wartepausen eingefügt, um die Darstellung eines Frames abzuwarten. Als Referenzwert wird eine Variable vom Typ 'struct timespec' (decoder->FrameTime) verwendet. Diese enthält ja zwei Werte, tv_sec und tv_nsec. Ist es möglich, daß es bei asynchronem Zugriff von Setzen und Lesen gelegentlich zum Verwenden von nicht zusammengehörenden Werten von tv_sec und tv_nsec kommt? Im Ergebnis wäre die Zeit sofort abgelaufen oder es würde 1sec gewartet werden.


    Gruß
    e9hack


    Wie es scheint wird 'usb_endpoint_maxp' merhfach definiert, aber ich weß nicht warum. Hat jemand eine Idee oder Hilfe?



    Gruß
    e9hack

    Das erste HD auf KabelBW hat immer EPG-Daten gesendet. Der Timer wurde um 00:03 von 00:45 auf 00:50 gesetzt. Unabhängig davon ist er immer zwischen 00:45 und 00:47 bzw. 00:50 und 00:52 gejittert. Die Option 'Timer nach Lösche neu Programmieren' ist bei mir auf 'nein'. Ich denke aber, das bezieht sich auf manuelles Löschen. Bei mir hat er aufgenommen, der VDR ist aber auch nicht runtergefahren, weil jemand zu lange vor der Glotze gesessen hat.


    Gruß
    e9hack

    Wenn der VDR startet, gibts durchnummerierte Timer. Wenn das EPGSearch-Plugin läuft, gibts nur noch Timer 1. Warum?



    Gruß
    e9hack


    Leider auch ohne Erfolg. Hab nun das in der dmesg gefunden:

    Code
    1. 2.628193] cxd2099: module is from the staging directory, the quality is unknown, you have been warned.
    2. [ 2.638563] ngene: disagrees about version of symbol cxd2099_attach
    3. [ 2.638578] ngene: Unknown symbol cxd2099_attach (err -22)


    In den älteren Versionen wurde cxd2099 aus dem Staging-Tree verwendet. Die Module werden außerhalb von .../media abgelegt. Suchen und löschen, fertig.


    Gruß
    e9hack


    Hab ich gemacht, aber die Module werden nicht legaden. /dev/dvb gibt es nicht. Habe in der Menuconfig nichts geänder außer die 2 Mobule <M> Micronas nGene support <M> Digital Devices bridge support aktiviert, oder gibt es noch etwas anderes zu de/aktivieren? Distri ist yavdr 0.5 mit 3.2.0-33-generic.


    Vorm Installieren solltest Du auch alles, was sich bisher an Modulen unter lib/modules/<build-name>/kernel/drivers/media bedindet, löschen, da sich die Verzeichnisstruktur geändert hat.


    Gruß
    e9hack

    Hi,


    ich habe noch ein zweites Problem. Bei HD Wiedergabe kommt es zu ruckleren, wenn auf das nächste File gewechselt wird. Der Ton läuft flüssig durch. Das Bild bleibt stehen und startet dann wie bei schnellen Vorlauf. Je nach Tagesform kommt es bis zu ca. 4 solcher Sequenzen kurz nacheinander (Abstand wenige Sekunden bis halbe Minute):


    Gruß
    e9hack