Unable to resolve symbol ??

  • Hi!


    Ich habe vdr mit plugin cross compiled.
    Wenn ich das Plugin xvdr laden möchte bekomme ich :


    Jan 16 11:40:39 OpenWrt user.err vdr: [2519] loading plugin: /usr/lib/vdr/plugins/libvdr-xvdr.so.1.7.27
    Jan 16 11:40:39 OpenWrt user.err vdr: [2519] ERROR: Unable to resolve symbol


    Kann mir da mal jemand auf die Sprünge helfen?


    Danke!

  • Hey, danke für die Antwort!


    Wenn ich mit runvdr starte, zeigt er die symbole an in Anführungszeichen.
    Aber da steht nur kritzelkratzel drinnen. Könnteste damit wirklich was anfangen?


    Ich kann es erst nach der Arbeit heut Abend posten.


    Gruß

  • der kritzel kratzel :


    Code
    root@OpenWrt:/# runvdr
    
    
    /usr/bin/vdr: symbol '_ZN10cIndexFile3GetEiPtPlPbPi': can't resolve symbol
    
    
    /usr/bin/vdr: symbol '_ZN10cIndexFile13GetNextIFrameEibPtPlPi': can't resolve symbol
    
    
    /usr/bin/vdr: symbol '_ZN10cIndexFile3GetEtl': can't resolve symbol


    VDR Version ist 1.7.27 vom vdr ftp.
    Es ist mir eigentlich egal welche Version ich nehme, solange diese mit xvdr und anderen läuft....
    Vielleicht gibts ja sogar nen git irgndwo? Der mit addons kommt?

  • Moin!


    Ein inoffzielles git gibt's hier: http://projects.vdr-developer.org/git/vdr.git/


    Versuch doch mal 1.7.33 (mein momentaner Favorit), in .34/.35 hat sich nicht so viel verändert, da wurde hauptsächlich an den Makefiles gearbeitet. Da muss man noch auf das Aktualisieren der Plugin-Makefiles warten.
    Eigentlich sehe ich da jetzt keine Funktion, die es in .27 nicht gegeben hat. Plugins hast du auch wirklich neu gebaut?


    Lars.

  • Jan 16 11:40:39 OpenWrt user.err vdr: [2519] loading plugin: /usr/lib/vdr/plugins/libvdr-xvdr.so.1.7.27
    Jan 16 11:40:39 OpenWrt user.err vdr: [2519] ERROR: Unable to resolve symbol

    Was hast Du denn das für eine Hardware? OpenWrt läuft doch normal nur auf Home-Routern.


    Grüße,
    T.

    Server: Asrock J3455-ITX with Ubuntu 20.04, ubuntu vdr dist, streamdev-server, live, smarttvweb, vnsiserver, dynamite
    Clients: Samsung UE40ES5700 (VDR on Smart TV widget), Kodi

  • Google sagt, das andere VDR auf dem OpenWrt zum laufen bekommen haben (zB im Kathi Forum).

    Server: Asrock J3455-ITX with Ubuntu 20.04, ubuntu vdr dist, streamdev-server, live, smarttvweb, vnsiserver, dynamite
    Clients: Samsung UE40ES5700 (VDR on Smart TV widget), Kodi

  • Moin!


    Wenn Google das sagt, dann stimmt das wohl... :)
    Welche libc benutzt openwrt denn? Ich weiß, dass es Probleme mit uClibc gibt.


    Lars.

  • Welche libc benutzt openwrt denn? Ich weiß, dass es Probleme mit uClibc gibt.

    Ich nutze OpenWRT 10.03 (Backfire) und da ist libuClibc-0.9.30.1.so enthalten. Weiß natürlich nicht, welche version derdigge nutzt.


    Da gibt es eine Diskussion auf linux.tv.org (titel: "vdr-1.7.22 mips_uClibc-0.9.30.1 (tools.c canonicalize_file_name...)"). Kann tatsächlich sein, das es an der libc version liegt, also ein neueres release von OpenWRT genutzt werden sollte.


    Grüße,
    T.

    Server: Asrock J3455-ITX with Ubuntu 20.04, ubuntu vdr dist, streamdev-server, live, smarttvweb, vnsiserver, dynamite
    Clients: Samsung UE40ES5700 (VDR on Smart TV widget), Kodi

  • Also libc ist :


    Code
    root@OpenWrt:/# opkg list | grep 0.9.33
    ldconfig - 0.9.33.2-1 - Shared library path configuration
    ldd - 0.9.33.2-1 - LDD trace utility
    libc - 0.9.33.2-1
    libpthread - 0.9.33.2-1 - POSIX thread library
    librt - 0.9.33.2-1 - POSIX.1b RealTime extension library


    Ich lege jezt erst los. Danke erstmal für alle Tips hier!
    Werde umgehend Bericht erstatten ;)

  • Compiler failt natürlich ;)


    Aber hier bin ich raus! Ich verstehe viel zu wenig von C um das zu
    raffen!



    Ich habe die Zeile im Code gefunden:


    Code
    cCharSetConv::cCharSetConv(const char *FromCode, const char *ToCode)
    {
      if (!FromCode)
     	FromCode = systemCharacterTable ? systemCharacterTable : "UTF-8";
      if (!ToCode)
     	ToCode = "UTF-8";
      cd = iconv_open(ToCode, FromCode);
      result = NULL;
      length = 0;
    }


    libiconv gibts im staging_dir mit headers usw......

  • Ich bin mal ebn auf die Version 1.7.17 zurückgerudert.
    Da diese mit meiner clib klarkommt. den vnsi plugin habe ich von Hier :


    https://github.com/opdenkamp/xbmc-pvr-addons
    (bessere Quelle bekannt?)


    Compile läuft durch vdr läuft auf dem hostsystem.
    Nur:


    Jan 17 14:28:35 OpenWrt user.err vdr: [2686] VNSI-Error: Client 'XBMC Media Center' have a not allowed protocol version '2', terminating client
    Jan 17 14:28:35 OpenWrt user.err vdr: [2686] VNSI-Error: Clients must be logged in before sending commands! Aborting.


    Wenn ich das fixen könnte, hätte ich es beinahe.


    wechn 1.7.33 :
    Das file ist da


    ./staging_dir/target-arm_v5te_uClibc-0.9.33.2_eabi/usr/include/iconv.h


    und :


    derdigge@skynet:~/build/dvb2$ cat ./staging_dir/target-arm_v5te_uClibc-0.9.33.2_eabi/usr/include/iconv.h | grep iconv_open
    from iconv_open().) */
    #define iconv_open libiconv_open
    extern iconv_t iconv_open (const char* tocode, const char* fromcode);


    also rafft er es aus anderem Grund nicht ;(

  • Durch diverse rumfrickeleien ist 1.7.27 erfolgreich umgesezt. (LDflags und andere)
    Es startet vnsiserver usw. Es gibt keine Errors beim start bis auf :


    Code
    Jan 18 14:56:07 OpenWrt user.err vdr: [3460] ERROR: error in /etc/config/vdr/channels.conf, line 363
    Jan 18 14:56:07 OpenWrt user.err vdr: [3460] ERROR: error in /etc/config/vdr/channels.conf, line 364
    Jan 18 14:56:07 OpenWrt user.err vdr: [3460] ERROR: error in /etc/config/vdr/channels.conf, line 365
    Jan 18 14:56:07 OpenWrt user.err vdr: [3460] ERROR: error in /etc/config/vdr/channels.conf, line 366
    Jan 18 14:56:07 OpenWrt user.err vdr: [3460] ERROR: error in /etc/config/vdr/channels.conf, line 367


    Alle Channels werden bemängelt.
    Was hat er für ein Problem damit :



    channels.conf wurde so erstellt:


    w_scan -fc -c DE -o 7 > /etc/config/vdr/channels.conf


    meines wissens nach vollkommen korrekt oder ?

  • Der VDR startet, aber die channels.conf kann nicht mit der ARM Version gelesen werden? Gleicher Fehler bei mir anfangs.
    Es half, die sscanf patche zu übernehmen.


    Aber jetzt kämpfe ich auch mit den:

    Code
    vdr: symbol '_ZN10cIndexFile3GetEiPtPlPbPi': can't resolve symbol
    
    
    vdr: symbol '_ZN10cIndexFile13GetNextIFrameEibPtPlPi': can't resolve symbol
    
    
    vdr: symbol '_ZN10cIndexFile3GetEtl': can't resolve symbol


    Die Interfaces sind direkt im vdr binary zu finden, nicht in einer lib:



    Nur weiß ich nicht, warum sie im Plugin und im vdr unterschiedlich sind, ich habe beide sauber neu kompiliert.

  • Fehler gefunden:
    Ich musste 'make plugins' im VDR Verzeichnis machen, dann passt alles.
    Ich hatte, weil ich vergessen habe, die Plugins unter ./PLUGINS/src richtig umzubenennen bzw. einen Link zu kreieren, wo keine Sonderzeichen vorkommen, damit das Makefile sie listen kann, die Plugins direkt mit 'make' im Plugin Verzeichnis kompiliert. Das klappt zwar, aber die Symbols werden dann manchmal anders vergeben.

Jetzt mitmachen!

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