[gelöst] Welche Kombination Kernel/ivtv/pvr350/pvrinput?

  • Ich versuche mein Analog-System (PVR 350 und PVR 150) zum Laufen zu bringen - leider scheitert es bisher immer entweder am pvr350 oder pvrinput Plugin.


    Mein Setup:
    - PVR 350 (ivtv0)
    - PVR 150 (ivtv1)
    - ASRock K7S41GX
    - Debian Etch 4.0r0
    - e-tobi Pakete für etch ("deb http://e-tobi.net/vdr-experimental etch base backports addons vdr-multipatch" in /etc/apt/sources.list)


    Bisher habe ich folgende Kombos ausprobiert


    Kernel 2.6.22.1 + ivtv 1.0.1: pvr350 stürzt ab ("IVTV_IOC_GET_FB: Invalid argument")
    Kernel 2.6.20.16 + ivtv 0.10.5: pvr350 stürzt ab (s.o.)
    Kernel 2.6.18.8 + ivtv 0.10.5: pvrinput stürzt ab

    Code
    pvrinput: 11:06:43 Detected input 0: Tuner 1
    pvrinput: 11:06:43 VIDIOC_S_STD failed, 16:Device or resource busy
    pvrinput: 11:06:43 IVTV_IOC_G_CODEC failed, 22:Invalid argument
    Writer started pid 2846
    pvrinput: 11:06:43 Detected input 0: Tuner 1
    pvrinput: 11:06:43 IVTV_IOC_G_CODEC failed, 22:Invalid argument
    pvrinput: 11:06:43 found 2 PVR devices
    pvrinput: 11:06:43 Error setting vbi embedded mode, 22:Invalid argument
    pvrinput: 11:06:43 Error setting vbi embedded mode, 22:Invalid argument
    Speicherzugriffsfehler


    Ich habe in allen 3 Kombos überprüft, dass beide Tuner funktionieren, der Output funktioniert, der Framebuffer OK ist und die LIRC-Anbindung klappt (mit 0.8.2 bzw. CVS 0.8.3 bei 2.6.22.1).


    Ich habe auch noch versucht, die aktuellste Version (pvr350-2007-08-07) vom pvr350 Plugin von Dr. Seltsam zu übersetzen, aber das gibt folgenden Fehler:

    Code
    make[1]: Entering directory `/usr/src/vdr-1.4.7/PLUGINS/src/pvr350-2007-08-07'
    g++ -g -O2 -Wall -Woverloaded-virtual  -c -DPLUGIN_NAME_I18N='"pvr350"' -D_GNU_SOURCE -I../../../include -I../../../../DVB/include  pvr350device.c
    pvr350device.c: In member function ‘void cPvr350Device::OpenV4L2()’:
    pvr350device.c:140: error: ‘V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY’ was not declared in this scope
    pvr350device.c:147: error: ‘V4L2_FBUF_FLAG_GLOBAL_ALPHA’ was not declared in this scope
    pvr350device.c:148: error: ‘V4L2_FBUF_FLAG_LOCAL_ALPHA’ was not declared in this scope
    pvr350device.c:149: error: ‘struct v4l2_window’ has no member named ‘global_alpha’
    pvr350device.c:157: error: ‘struct v4l2_window’ has no member named ‘global_alpha’
    make[1]: *** [pvr350device.o] Fehler 1
    make[1]: Leaving directory `/usr/src/vdr-1.4.7/PLUGINS/src/pvr350-2007-08-07'


    Welche Kombination sollte denn jetzt funktionieren? Ich habe leider bislang keine gefunden :( Irgendjemand mit einer Idee?


    Lio

    Hardware: Thermaltake DH102, MSI G31M2-FD V2, Celeron 1,8GHz, 1G RAM, 1TB Disk, TT S-2300 + TT S-1500.
    Software: easyvdr 0.6.08 (Wolf) mit LIRC 0.86pre1 [Stand 16.08.09]

    Einmal editiert, zuletzt von Lio ()

  • das Problem ist, dass in den Tobi-Paketen historische Versionen der beiden Plugins drin sind. Die laufen schon seit 2.6.18 nicht mehr.


    Ich empfehle Dir, v4l-dvb (inkl. ivtv) aus dem repository des ivtv-Entwicklers zu installieren:
    http://linuxtv.org/hg/~hverkuil/v4l-dvb/archive/tip.tar.gz
    Da gab es die letzten Tage und Stunden wichtige Bugfixes.


    Und die aktuellen Versionen der Plugins:
    http://drseltsam.device.name/vdr/pvr/src/


    Falls Du den ivtv-Treiber nimmst, der in 2.6.22 enthalten ist, musst Du in pvr350device.c und pvr350osdc.c kleine Änderungen vornehmen:

    Code
    if (GetIvtvVersion(0,0) >= KERNEL_VERSION(1, 0, 1)) {


    in

    Code
    if (GetIvtvVersion(0,0) >= KERNEL_VERSION(1, 0, 0)) {


    Grund: der ivtv-Treiber identifiziert sich dort auch nach Installation des 1.0.1-Ergänzungspaketes (ivtv-fb) als 1.0.0


    Damit die Plugins kompilieren, musst Du aus dem linux/include/linux-Ordner der v4l-dvb-Sourcen die datei videodev2.h in den Ordner /usr/include/linux/ kopieren.


    So müsste es gehen. Wenn nicht, meld Dich nochmal!

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    Einmal editiert, zuletzt von Dr. Seltsam ()

  • Danke schonmal für die Hilfe - ich bin auch schon weiter gekommen :)


    Also ich habe einen neuen Kernel gebaut (2.6.22.3), dann die ivtv-fb + tools (also 1.0.1) und lirc 0.8.3CVS. Als nächstes den von Dir angegebenen v4l erstellt, videodev2.h nach /usr/include/linux kopiert und dann das Sourcepaket des VDR von e-tobi geladen, die aktuellen pvr350 und pvrinput von Dir reingeballtert und die PLUGINS kompiliert. In dem src-Verzeichnis vom VDR (habe das unter /usr/src/VDR gelinkt) geht der VDR mit beiden Plugins! Allerdings, wenn ich die Teile installiere bei einem bereits installierten VDR 1.4.7 von e-Tobi, bekomme ich Probleme:

    Code
    WARNING: The following plugins have been left out due to possible binary incompatibility: pvrinput pvr350.


    Ich habe dann in der /etc/default/vdr was umgestellt:

    Code
    PLUGIN_CHECK_PATCHLEVEL="no"


    und bekomme dann aber immer noch:

    Code
    WARNING: The following plugins have been left out due to really binary incompatibility: pvrinput.


    Ich habe mir mal das "plugin-loader.sh" Script angesehen und dort wird die Binärkompatibilität geprüft mittels:

    Code
    /usr/bin/vdr -u vdr -w 60 -V -L /usr/lib/vdr/plugins -P pvrinput|grep -q '^pvrinput '


    wenn ich das von Hand ausführe bekomme ich:

    Code
    vdr: /usr/lib/vdr/plugins/libvdr-pvrinput.so.1.4.5: undefined symbol: _ZN12cOsdProvider6NewOsdEii


    Das Problem ist weg, wenn ich auch den VDR selbst baue und installiere - dann muss ich allerdings auch alle anderen Plugins ab sofort selbst pflegen :(


    Habe ich beim Bauen der Plugins etwas falsch gemacht? Kann man die binärkompatibel zum E-Tobi bauen?


    Lio

    Hardware: Thermaltake DH102, MSI G31M2-FD V2, Celeron 1,8GHz, 1G RAM, 1TB Disk, TT S-2300 + TT S-1500.
    Software: easyvdr 0.6.08 (Wolf) mit LIRC 0.86pre1 [Stand 16.08.09]

  • spontan fallen mir folgende Dinge ein:


    Kompilierst Du die Plugins mit dem gleichen Compiler, mit dem e_tobi gearbeitet hat?


    nurpvr350:
    Hast Du auch auf dem Zielsystem libtwolame installiert? Wenn ja, schau auch da mal, ob es die gleiche Version ist, die Du auf dem Entwicklungssystem (wo das pvr350-Plugin kompiliert wurde) hast

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    Einmal editiert, zuletzt von Dr. Seltsam ()

  • ist sicher eine Lösung für Arme, aber ich habe bisher die gcc-Version von Plugins geprüft, in dem ich mit einem Hexeditor reingeschaut habe :versteck

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Man muss auch mal sich diverse andere Pakete ansehen und READMEs lesen ;)


    Ich hatte ja schon das Paket "vdr-dev", habe die Plugins aber im Quellverzeichnis erzeugt, ohne Vorher die Patches richtig zu setzen. Wenn man stattdessen die beiden Plugins einfach in ein Unterverzeichnis (bei mir dann unter /usr/src/VDR-PLUGINS) kopiert und dort dann

    Code
    make all DVBDIR=/usr VDRDIR=/usr/include/vdr LIBDIR=.

    macht, dann erzeugt er ein patchlevel- und binärkompatibles Plugin :)


    Vielen Dank für Deine Hilfe!


    Lio

    Hardware: Thermaltake DH102, MSI G31M2-FD V2, Celeron 1,8GHz, 1G RAM, 1TB Disk, TT S-2300 + TT S-1500.
    Software: easyvdr 0.6.08 (Wolf) mit LIRC 0.86pre1 [Stand 16.08.09]

Jetzt mitmachen!

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