vdr-1.7.0 SkyStar HD2 ubuntu 9.04 - Fehler beim Kompilieren

  • Hallo,


    nachdem meine Hauppauge den Geist aufgegeben hat und nun per Post gen Händler ist, habe ich mir eine Technisat SkyStar HD2 gegönnt.


    Normalerweise läuft bei mir ein VDR 1.6.0, ist schon so lange her das ich den eingerichtet habe. Spricht ja für Stabilität.


    Nebenher möchte ich nun einen VDR 1.7.0 mit der neuen DVB-S2 Karte selber bauen (den aber noch nicht installieren) und so in den Genuß der noch wenigen HDTV Sender kommen. Dabei plane ich im Moment an dem VDR selber HDTV nur zu Testzwecken anzusehen (und dann später event. eine Graka nachzurüsten) (muss also nur funktionieren, ruckeln darf es wenn der VDR nicht schnell genug sein sollte), eigentlich dann aber das HDTV Signal aus ermangelung einer VPDAU fähigen Grafikkarte an einen anderen Rechner zu streamen und dort dann z.B. per XMBC LiveCD (inkl. vdpau) in die Ferne zu sehen. Aber das ist noch Zukunft. Erstmal die Gegenwart:


    Bei meinem System handelt es sich um:


    Mainboard: Abit NF-M2SV
    Prozessor: AMD 3800+
    RAM: 1 GB
    BS: Ubuntu 8.04, mittlerweile per Update auf 9.04.
    Kernel: 2.6.28.15-generic


    Angefangen mit dem Kernel. In diesem Thread[4] wird erwähnt, dass ich event. einen neuen Kernel brauchen werde.


    Ein


    Code
    grep -r FE_CAN_2G_MODULATION /lib/modules/2.6.28-15-generic/


    bleibt leer und bestätigt dies.


    Also ein neuer Kernel muss her. Da in [5] geschrieben wird, dass ab Kernel-2.6.29 dvb-s2api-liplianin nicht mehr notwendig ist, nehm ich mal den. Aber genau diesen Satz verstehe ich irgendwie nicht. Notwendig für was? Ist der DVB-S2 Support dann schon im Kernel und muss mir das Treiber installieren später sparen?


    Neuer Kernel von [6].


    Folgende drei Dateien runtergeladen und installiert:


    Code
    linux-headers-2.6.29-020629_2.6.29-020629_all.deb
    linux-headers-2.6.29-020629-generic_2.6.29-020629_i386.deb
    linux-image-2.6.29-020629-generic_2.6.29-020629_i386.deb
    
    
    cd
    mkdir kernel2.6.29
    cd kernel2.6.29/
    sudo dpkg -i *.deb


    Ausgabe -> http://pastebin.com/f3e527654


    Ok, lirc meldet einen Fehler, aber da ich selten am VDR selber sitze ist dieses Problem für mich im Moment nur sekundär. Aber sonst siehts ja gut aus.


    Also Neustart.


    Code
    uname -r
    2.6.29-020629-generic


    und

    Code
    ls -l
    insgesamt 55752
    drwxr-xr-x 2 root root 4096 2009-09-25 19:55 glibc
    drwxr-xr-x 22 root root 4096 2009-09-26 16:00 linux-headers-2.6.28-15
    drwxr-xr-x 7 root root 4096 2009-09-27 00:50 linux-headers-2.6.28-15-generic
    drwxr-xr-x 21 root root 4096 2009-09-29 12:01 linux-headers-2.6.29-020629
    drwxr-xr-x 7 root root 4096 2009-09-29 12:01 linux-headers-2.6.29-020629-generic
    -rw-r--r-- 1 root root 56997533 2009-09-09 14:56 linux-source-2.6.28.tar.bz2
    drwxr-xr-x 3 root root 4096 2009-09-25 19:58 lirc-0.8.4a
    drwxr-xr-x 3 root root 4096 2009-09-25 19:46 nvidia-180.44


    Neuer Kernel ist also installiert.

    Code
    grep -r FE_CAN_2G_MODULATION /lib/modules/2.6.29-020629-generic/
    /lib/modules/2.6.29-020629-generic/build/include/linux/dvb/frontend.h: FE_CAN_2G_MODULATION = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */
    grep: /lib/modules/2.6.29-020629-generic/build/source: No such file or directory


    Das sieht auch vielversprechend aus. Warum

    Code
    source -> /home/kernel-ppa/mainline/build


    ins Leere zeigt. Keine Ahnung. Lasse ich unangetastet. Im vorherigen Kernel gibs es diesen Link nicht.


    Der Kernel sollte also jetzt aktuell genug sein, nun den Treiber für die Technisat Skystar HD2 installieren. Dies nach Anleitung von [7]


    (irgendwo hab ich mal gelesen, dass make als root evil ist ka wo, aber mal für die Installation des Treibers eine Ausnahme)



    Ausgabe make: http://pastebin.com/f190bf32
    Ausgabe make install: http://pastebin.com/f7854426


    Danach ein reboot und:


    Code
    dmesg | grep -i dvb
    [ 10.447851] found a VP-1041 PCI DSS/DVB-S/DVB-S2 device on (01:06.0),
    [ 10.450598] DVB: registering new adapter (Mantis dvb adapter)
    [ 10.999815] mantis_frontend_init (0): found STB0899 DVB-S/DVB-S2 frontend @0x68
    [ 11.000173] DVB: registering adapter 0 frontend 0 (STB0899 Multistandard)...


    Treiber läuft also vermutlich.


    Dann kann es ja nun weiter gehen mit dieser Anleitung[1], brauche ich also einen VDR-1.7.0[2] und Zulu’s VDR-Extension-Patch-Version 72[3]


    Installiert mit [8] und nur das Verzeichnis am Anfang angepasst.

    Code
    cd /home/mediauser/VDR1.7.0
    sudo apt-get install libfreetype6-dev libfontconfig1-dev libjpeg62-dev libcap-dev libncurses5-dev libncursesw5-dev
    wget ftp://ftp.cadsoft.de/vdr/Developer/vdr-1.7.0.tar.bz2
    tar xivf vdr-1.7.0.tar.bz2
    wget http://www.zulu-entertainment.de/page/klick.php?d=VDR+Extensions+Patch
    tar xivf VDR-Extensions-Patch-72.tar.bz2
    cd vdr-1.7.0
    patch -p1 < ../VDR-Extensions-Patch-72/vdr-1.7.0_extensions.diff
    patch -p1 < ../VDR-Extensions-Patch-72/extras/vdr-1.7.0-ext_h264-s2ng-speedup.diff
    mv Make.config.template Make.config


    In der Make.conf

    Code
    DVBDIR = /usr/local/src/s2-liplianin/linux


    und nun make.


    Und jetzt kommt der Fehler, weswegen ich Rat in diesem Thread suche:


    Wenn

    Code
    DVBDIR = /usr/local/src/s2-liplianin/linux


    Dann


    Wenn

    Code
    #DVBDIR = /usr/local/src/s2-liplianin/linux


    Dann


    Also gehe ich davon aus, dass das Verzeichnis richtig angegeben ist, weil beim auskommentierten DVBDIR.


    Aber wie kann ich diesen Fehler beheben?

    Code
    dvbdevice.h:19:2: Fehler: #error VDR requires Linux DVB driver API version 5.0!


    Wie kann ich jetzt weiter vorgehen? Was ist denn nun noch nicht aktuell?



    Grüße,
    winston





    [1] http://www.vdrportal.de/board/thread.php?threadid=89003
    [2] ftp://ftp.cadsoft.de/vdr/Developer/vdr-1.7.0.tar.bz2
    [3] [ANNOUNCE] VDR Extensions Patch v.72
    [4] http://www.vdrportal.de/board/thread.php?postid=812747
    [5] VDRdevel-1.7.6 + Plugins (Lenny)
    [6] http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.29/
    [7] http://www.vdr-wiki.de/wiki/in…allationsanleitung_Ubuntu

    VDR HW : ABIT NF-M2SV (mit jetzt getauschten Kondensatoren :D ), 1*1GB RAM, AMD 64 X2 3800+, Mystique SaTiX-S2 V2 CI Dual
    VDR SW : yaVDR64-0.5.0-alpha1

  • Zitat

    Original von winston
    Und jetzt kommt der Fehler, weswegen ich Rat in diesem Thread suche:


    Code
    make
    In Datei, eingefügt von audio.c:12:
    dvbdevice.h:19:2: Fehler: #error VDR requires Linux DVB driver API version 5.0!


    Der compiler hat eine uralte DVB header (frontend.h, version.h) mit DVB API 3.2 benutzt/gefunden. Vermutlich in /usr/include/linux/dvb



    Zitat

    Original von winston

    Code
    dvbdevice.c: In constructor »cDvbDevice::cDvbDevice(int)«:
    dvbdevice.c:538: Fehler: »FE_CAN_2G_MODULATION« wurde in diesem Gültigkeitsbereich nicht definiert
    make: *** [dvbdevice.o] Fehler 1


    Aber wie kann ich diesen Fehler beheben?


    Hier wurde eine neuere frontend.h benutzt, vermutlich von einem 2.6.28 Kernel? Ist bereits als DVB API 5.0 deklariert, kennt aber noch nicht. Immer noch zu alte Versionen der DVB header.


    Es sieht so aus, als ob du auf deinem System mehrere Versionen von Kernel headern hast. Zumindest stimmen die in /usr/include/linux nicht mit denen von 2.6.29 überein.

  • Welche Variante ist denn die richtige? Muss ich den Pfad in der Make.conf angeben, oder weglassen werden?


    frontend.h gibt es folgende:



    Die frontend.h stimmt also mit der aus dem Kernel 2.6.28 überein, welcher schon installiert war.



    Hm, kann ich dies machen ohne Schaden am System zu hinterlassen?


    Code
    sudo -s 
    cd /usr/include 
    ln -s /usr/src/linux-headers-2.6.29-020629-generic/include/linux ./


    Wenn ich jetzt DVBDIR drinne lasse, dann kommt wieder:


    Code
    dvbdevice.h:19:2: Fehler: #error VDR requires Linux DVB driver API version 5.0!


    Aber wenn ich das DVBDIR aus der Make.conf auskommentiere, dann kompiliert er durch.


    Nun ist doch der DVB-S2 Treiber garnicht dabei? Oder täusche ich mich? Ich bin verwirrt.

    VDR HW : ABIT NF-M2SV (mit jetzt getauschten Kondensatoren :D ), 1*1GB RAM, AMD 64 X2 3800+, Mystique SaTiX-S2 V2 CI Dual
    VDR SW : yaVDR64-0.5.0-alpha1

  • Die Lösung mit dem ln -s hat Nachteile. Irgendwann löschst du mal die Dateien auf die dort verlinkt wurde und der Link läuft ins Leere.


    Ich glaube die beste Lösung wäre die Dateien in /usr/include/linux/dvb gegen die des verwendeten Kernels auszutauschen /usr/src/linux-headers-2.6.29-020629/include/linux/dvb) und nachher beim compileren kein DVBDIR anzugeben.


    Das setzt natürlich voraus, dass du dann nur noch aktuelle DVB Treiber und Kernel ab 2.6.29 einsetzt.


    Zitat


    Nun ist doch der DVB-S2 Treiber garnicht dabei? Oder täusche ich mich? Ich bin verwirrt.


    Doch, doch..

  • Ich habe jetzt folgendes gemacht:


    Code
    cd /usr/include/linux/dvb
    [dateien gesichert und gelöscht]
    cp /usr/src/linux-headers-2.6.29-020629-generic/include/linux/dvb/* ./


    Sollte also jetzt funktionieren.


    Gibt aber folgende Fehlermeldung:


    Code
    In file included from dvbdevice.c:17:
    /usr/include/linux/dvb/video.h:159: Fehler: expected »;« before »*« token
    /usr/include/linux/dvb/video.h:192: Fehler: expected »;« before »*« token
    dvbdevice.c: In member function »virtual void cDvbDevice::StillPicture(const uchar*, int)«:
    dvbdevice.c:1400: Fehler: zu viele Initialisierer für »video_still_picture«
    dvbdevice.c:1400: Fehler: ungültige Umwandlung von »char*« in »int32_t«
    dvbdevice.c:1406: Fehler: zu viele Initialisierer für »video_still_picture«
    dvbdevice.c:1406: Fehler: ungültige Umwandlung von »char*« in »int32_t«
    make: *** [dvbdevice.o] Fehler 1


    Beim drüberkopieren folgender Fehler:


    Code
    In file included from dvbdevice.c:17:
    /usr/include/linux/dvb/video.h:159: Fehler: expected »;« before »*« token
    /usr/include/linux/dvb/video.h:192: Fehler: expected »;« before »*« token
    dvbdevice.c: In member function »virtual void cDvbDevice::StillPicture(const uchar*, int)«:
    dvbdevice.c:1400: Fehler: zu viele Initialisierer für »video_still_picture«
    dvbdevice.c:1400: Fehler: ungültige Umwandlung von »char*« in »int32_t«
    dvbdevice.c:1406: Fehler: zu viele Initialisierer für »video_still_picture«
    dvbdevice.c:1406: Fehler: ungültige Umwandlung von »char*« in »int32_t«
    make: *** [dvbdevice.o] Fehler 1


    Und beim symbolischen Link setzen läuft er wieder durch.


    Auch wenn also die Lösung mit ln -s diese Nachteile hat, läuft wenigstens der VDR durch. Dann darf ich eben in Zukunft keine Dateien aus diesem Verzeichnis löschen.


    Ist es wahr? Kann ich zur nächsten Anleitung übergehen? :grinzs


    Sobald es klappt, wird dieser Thread aber so was von auf [gelöst] geändert.

    VDR HW : ABIT NF-M2SV (mit jetzt getauschten Kondensatoren :D ), 1*1GB RAM, AMD 64 X2 3800+, Mystique SaTiX-S2 V2 CI Dual
    VDR SW : yaVDR64-0.5.0-alpha1

  • hi
    wen du den Kernel basent installiert hast in ubuntu dann kann Mann sich die ganzen Verengungen sparen


    ii linux-headers-2.6.31-11 2.6.31-11.36 Header files related to Linux kernel version 2.6.31
    ii linux-headers-2.6.31-11-generic 2.6.31-11.36 Linux kernel headers for version 2.6.31 on x86/x86_64
    ii linux-image-2.6.31-11-generic 2.6.31-11.36 Linux kernel image for version 2.6.31 on x86/x86_64
    ii linux-libc-dev 2.6.31-11.36 Linux Kernel Headers for development
    mfg det

    Jeder sollte sein Leben so leben können wie er/sie es möchte, frei und
    unabhängig, in der Not anderen zur Seite stehend, nie vergessen was man
    ist, eben einfach nur Mensch sein mit allen Schwächen und Stärken
    Lieber stehend sterben als ewig gebückt leben

  • Hier stecke ich auch grad fest. Bin brav der Anleitung http://www.vdr-wiki.de/wiki/in…tels_Xine_und_VDPAU_-_VDR gefolgt aber laufe immer in den Fehler: "»FE_CAN_2G_MODULATION« wurde in diesem Gültigkeitsbereich nicht definiert" rein.


    Mein Jaunty hat Kernel 2.6.28-15-generic #49-Ubuntu drauf und ich versuche VDR 1.7.7 zu kompilieren.
    Kernel Headers sind ebenfalls installiert .. glaub die braucht man ja schon für den nvidia Treiber...


    Wichtig ist vielleicht noch zu erwähnen das ich nur eine normale FF Satkarte im VDR hab und auch "nur" den normalen v4l-dvb Treiber laut der Anleitung http://www.vdr-wiki.de/wiki/in…e_und_VDPAU_-_DVB_Treiber kompiliert und installiert habe.

    Ubuntu/Jaunty (Kernel 2.6.28-15) VDR 1.7.9 (im Aufbau), xineliboutput 1.0.90-CSV mit Xine-VDPAU r284 + durchflieger Patch | ASUS M3N78-EM, DVB-S Nexus 2.1, PSOne TFT, IR-Einschalter, Atmolight

  • Zitat

    Originally posted by det
    [...] Mann sich die ganzen Verengungen sparen


    Warum kann man sich die Verrenkungen dann sparen?


    /usr/include/linux/ wurde bei mir durch das Kernelupdate auf 2.6.29 nicht verändert. Warum soll das bei dem Update auf 2.6.31 anders sein?


    @ BlueIcE
    Der Fehler hört sich wie der meinige an. Lies doch den Thread noch mal genau durch, ich denke die Lösung findest du hier.

    VDR HW : ABIT NF-M2SV (mit jetzt getauschten Kondensatoren :D ), 1*1GB RAM, AMD 64 X2 3800+, Mystique SaTiX-S2 V2 CI Dual
    VDR SW : yaVDR64-0.5.0-alpha1

  • hi

    Zitat

    /usr/include/linux/ wurde bei mir durch das Kernelupdate auf 2.6.29 nicht verändert


    und genau dieses Paket macht das die basenten harter
    ii linux-libc-dev 2.6.xxxx Linux Kernel Headers for development
    zu installieren in /usr/include/linux
    mfg det

    Jeder sollte sein Leben so leben können wie er/sie es möchte, frei und
    unabhängig, in der Not anderen zur Seite stehend, nie vergessen was man
    ist, eben einfach nur Mensch sein mit allen Schwächen und Stärken
    Lieber stehend sterben als ewig gebückt leben

    2 Mal editiert, zuletzt von det ()


  • Hab ich auch schon drauf, hilft aber nix.
    Wo kann ich noch ansetzen?

    Ubuntu/Jaunty (Kernel 2.6.28-15) VDR 1.7.9 (im Aufbau), xineliboutput 1.0.90-CSV mit Xine-VDPAU r284 + durchflieger Patch | ASUS M3N78-EM, DVB-S Nexus 2.1, PSOne TFT, IR-Einschalter, Atmolight

  • hi
    BlueIcE du hast jaunty welcher Kernel ist da bei ?
    bitte mal
    "dpkg -l > /usr/src/dpkg.txt"
    die in /usr/src/erstellte .txt hier anhängen
    mfg det

    Jeder sollte sein Leben so leben können wie er/sie es möchte, frei und
    unabhängig, in der Not anderen zur Seite stehend, nie vergessen was man
    ist, eben einfach nur Mensch sein mit allen Schwächen und Stärken
    Lieber stehend sterben als ewig gebückt leben

    Einmal editiert, zuletzt von det ()


  • Hi det,


    war zu groß um es als Anhang hinzuzufügen.
    Habs hier hochgeladen: http://pastebin.com/m54662939


    Seh grad alte VDR Versionen?!
    Ich dachte ich hätte alles runter geschmissen?
    Wo hängt das denn noch drin?


    EDIT
    Ubuntu Version:
    Linux media-desktop 2.6.28-15-generic #52-Ubuntu SMP Wed Sep 9 10:48:52 UTC 2009 x86_64 GNU/Linux
    /EDIT

    Ubuntu/Jaunty (Kernel 2.6.28-15) VDR 1.7.9 (im Aufbau), xineliboutput 1.0.90-CSV mit Xine-VDPAU r284 + durchflieger Patch | ASUS M3N78-EM, DVB-S Nexus 2.1, PSOne TFT, IR-Einschalter, Atmolight

    Einmal editiert, zuletzt von BlueIcE ()

  • Hi,


    Gibt's was neues an dieser Front?


    Ich bin auch gerade drauf gelaufen:

    Code
    g++ -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -c -DREMOTE_KBD -DVDR_USER=\"vdr\" -DLIRC_DEVICE=\"/dev/lircd\" -DRCU_DEVICE=\"/dev/ttyS1\" -D_GNU_SOURCE -DVIDEODIR=\"/media/video\" -DCONFDIR=\"/etc/vdr/\" -DPLUGINDIR=\"/usr/lib/vdr/plugins\" -DLOCDIR=\"/usr/share/locale\" -I/usr/include/freetype2 -I/usr/src/s2-liplianin/linux/include dvbdevice.c 
    dvbdevice.c: In constructor »cDvbDevice::cDvbDevice(int)«: 
    dvbdevice.c:538: Fehler: »FE_CAN_2G_MODULATION« wurde in diesem Gültigkeitsbereich nicht definiert 
    make: *** [dvbdevice.o] Fehler 1


    Ich bin nach dem HowTo von mwfv vorgegangen.


    Ubuntu 9.04:

    Code
    Linux vdr-sz 2.6.28-15-generic #52-Ubuntu SMP Wed Sep 9 10:48:52 UTC 2009 x86_64 GNU/Linux


    Die TT 3600 wird sauber erkannt:

    Code
    # dmesg | grep dvb 
    [   12.617633] dvb-usb: found a 'Technotrend TT Connect S2-3600' in warm state. 
    [   12.621090] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. 
    [   12.624671] dvb-usb: MAC address: ffff88005e0370e0 
    [   12.944128] dvb-usb: schedule remote query interval to 500 msecs. 
    [   12.944144] dvb-usb: Technotrend TT Connect S2-3600 successfully initialized and connected. 
    [   12.944259] usbcore: registered new interface driver dvb-usb-tt-connect-s2-3600-01.fw


    Da ich VDR-Neuling bin, vermute ich die Diskrepanz zu mwtv's Lösung in der DVB-Karte. Natürlich habe ich das Übersetzen der Treiber für die Novas S2 weggelassen.


    Die Linux-header hab ich auf jeden Fall richtig:

    Code
    # dpkg --list|grep linux-header 
    ii  linux-headers-2.6.28-15                    2.6.28-15.52                              Header files related to Linux kernel version 
    ii  linux-headers-2.6.28-15-generic            2.6.28-15.52                              Linux kernel headers for version 2.6.28 on x 
    ii  linux-headers-generic                      2.6.28.15.20                              Generic Linux kernel headers


    Im Moment weiß ich aber nicht mehr weiter, deshalb meine Frage nach dem aktuellen Stand der Dinge.


    LG,
    sun-freak

    HW: POV ION330-1-S (New York, 1,5GB RAM, 160GB Disk) + Atric Rev.5 + 2x TT Connect S2 3600
    SW seit 10/2009: Ubuntu 9.04 (Jaunty x86_64) + NVIDIA 185.18.36 + s2-liplianin + VDR 1.6.0-9ubuntu1
    SW seit 04/2012: yaVDR 0.4.0
    Network: Aufzeichnungen via NFS auf NAS (Solaris11)

  • He sun-freak,


    ich weiss nicht mehr genau wo ich es gelesen hab, aber ich hab es so gelöst:


    Wer Probleme hat in der Art:

    Code
    dvbdevice.c: In constructor âcDvbDevice::cDvbDevice(int)â:
    dvbdevice.c:487: error: âFE_CAN_2G_MODULATIONâ was not declared in this scope


    nano /usr/include/linux/dvb/frontend.h

    Code
    FE_HAS_EXTENDED_CAPS        = 0x800000,   // We need more bitspace for newer APIs, indicate this.
    // Einfuegen, anfang
    FE_CAN_2G_MODULATION        = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */
    // Einfuegen, ende
    FE_NEEDS_BENDING        = 0x20000000, // not supported anymore, don't use (frontend requires frequency bending)


    Hoffe das klappt auch bei dir...

    Ubuntu/Jaunty (Kernel 2.6.28-15) VDR 1.7.9 (im Aufbau), xineliboutput 1.0.90-CSV mit Xine-VDPAU r284 + durchflieger Patch | ASUS M3N78-EM, DVB-S Nexus 2.1, PSOne TFT, IR-Einschalter, Atmolight

  • Hi BlueIcE,


    besten Dank für den Tipp. Ich war zwar schon durch auskommentieren der Zeile 538 weiter gekommen, aber denie Lösung macht sich besser.


    Leider hab ich jetzt ein neues Problem, wo ich noch keine Lösung im Forum gefunden habe:


    Was das jetzt wieder ist?


    /sun-freak

    HW: POV ION330-1-S (New York, 1,5GB RAM, 160GB Disk) + Atric Rev.5 + 2x TT Connect S2 3600
    SW seit 10/2009: Ubuntu 9.04 (Jaunty x86_64) + NVIDIA 185.18.36 + s2-liplianin + VDR 1.6.0-9ubuntu1
    SW seit 04/2012: yaVDR 0.4.0
    Network: Aufzeichnungen via NFS auf NAS (Solaris11)

    Einmal editiert, zuletzt von sun-freak ()

Jetzt mitmachen!

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