segfault mit graphlcd 0.0.7

  • Hi,


    nachdem ich mein reichelt-128x64 LCD mit KS108 zum Laufen bekommen habe, kam doch schnell die Ernüchterung:


    vdr startet mit dem Plugin nur noch genau einmal. Danach gibts bei jedem
    Start ein segmentation fault. Ohne Plugin startet vdr anschließend noch normal, nur mit graphlcd gibts Probleme.


    in der messages-Datei steht NICHTS an Fehlermeldungen.


    Für Experten (oder dem Programmierer von graphlcd): Ich habe mal den output von strace angehängt.


    Ich habe ein Epia Via Mainboard, Parallelport auf normal eingestellt (ecp/epp auch schon probiert)


    ich hoffe, da kann mir jemand weiterhelfen.


    tschuess,
    macfly.

  • Das wiederrum sieht dann so aus, als ob die Fonts und die Logos nicht unter im Confid Directory (-c Option im runvdr Script) liegen. Die muss man doch noch manuell dahinkopieren.


    Hope that helps.

  • Zitat

    Original von RaK
    Das wiederrum sieht dann so aus, als ob die Fonts und die Logos nicht unter im Confid Directory (-c Option im runvdr Script) liegen. Die muss man doch noch manuell dahinkopieren.


    Hope that helps.


    Hallo RaK,
    das mit dem reinkopieren ist mir bekannt. Das Plugin startet ja auch genau einmal, und dieses eine Mal funktioniert es ja auch perfekt. Ich habe Senderlogos, Uhrzeit, Symbole, Menü, alles.


    Nur beim vdr-Neustart macht das Plugin zicken.


    randy: whoo - also, lasse ich showpic direkt laufen

    Code
    ./showpic -p 0x378 -x 128 -y 64  graphlcd/tux-goodbye_128x64.glcd

    gibr es einen segfault. Lasse ich showpic mit strace laufen, baut er mir das Bild einwandfrei auf. - Allerdings dauert der Bildaufbau so ca. 1,8 Sekunden... ist das normal ?


    zu gdb - kannst du mir sagen, was ich da machen muss ? hab gdb noch nie bedient..



    danke,
    macfly.

    VDR(Via Epia M-10000, 512MB, 2xNexus-s, 120GB&160GB&160GB Samsung SpinPoint, NEC 1300 DVD+-R/RW, IR-Kit, VFD Noritake)
    Gehäuse: Eigenbau (s.o.)

  • Zitat

    Original von sn123py
    randy: whoo - also, lasse ich showpic direkt laufen

    Code
    ./showpic -p 0x378 -x 128 -y 64  graphlcd/tux-goodbye_128x64.glcd

    gibr es einen segfault. Lasse ich showpic mit strace laufen, baut er mir das Bild einwandfrei auf. - Allerdings dauert der Bildaufbau so ca. 1,8 Sekunden... ist das normal ?


    mit strace ja, weil er ja viele messages hinschreibt.


    Zitat


    zu gdb - kannst du mir sagen, was ich da machen muss ? hab gdb noch nie bedient..



    danke,
    macfly.


    Code
    gdb ./showpic<enter>
    
    
    gdb> run -p 0x378 -x 128 -y 64  graphlcd/tux-goodbye_128x64.glcd
    ...segfault...
    gdb> bt


    -- randy

  • randy:


    also , gdb sagt:



    hm - bischen mager, oder ? muss ich showpic irgendwie mit debugoptionen kompilieren ?


    NACHTRAG:
    hm - jeder zweite run-befehl im gdb funktioniert:


    Code
    (gdb) run  tux-goodbye_128x64.glcd
    The program being debugged has been started already.
    Start it from the beginning? (y or n) y
    
    
    Starting program: /vdr/vdr-1.2.1/PLUGINS/src/graphlcd-0.0.7/showpic tux-goodbye_128x64.glcd
    
    
    Program exited normally.

    und dann ist auch die Anzeige in Ordnung


    nachnachtrag:
    kompiliert mit -g vermeldet:


    VDR(Via Epia M-10000, 512MB, 2xNexus-s, 120GB&160GB&160GB Samsung SpinPoint, NEC 1300 DVD+-R/RW, IR-Kit, VFD Noritake)
    Gehäuse: Eigenbau (s.o.)

    2 Mal editiert, zuletzt von sn123py ()

  • Zitat

    Original von sn123py
    hm - bischen mager, oder ? muss ich showpic irgendwie mit debugoptionen kompilieren ?


    sehr seltsam.


    du kannst mal probieren im ks0108.c file folgende zeilen zu aendern:


    zeile 143: LCD_soll = MALLOC( byte*, iSizeX * 2 );
    zeile 146: LCD_soll[x] = MALLOC(byte, (iSizeY+7)/8 * 2 );
    zeile 153: LCD = MALLOC( byte*, iSizeX * 2 );
    zeile 156: LCDl[x] = MALLOC(byte, (iSizeY+7)/8 * 2 );


    auf einer meiner maschinen passiert auch sowas aehnliches.
    das malloc zu verdoppeln (+1 oder so half nichts) hat dann keine
    segfaults mehr gebracht.


    -- randy


  • hm , bei mir hat die Datei die Inhalte an anderen Zeilen (im Verzeichnis showpic). Egal, ich hab alle 4 Mallocs angepasst, -> identisch (sprich: segfault)

    VDR(Via Epia M-10000, 512MB, 2xNexus-s, 120GB&160GB&160GB Samsung SpinPoint, NEC 1300 DVD+-R/RW, IR-Kit, VFD Noritake)
    Gehäuse: Eigenbau (s.o.)

    Einmal editiert, zuletzt von sn123py ()

  • Hi,
    ich kenn mich zwar nicht unbedingt mit dem ks0108 Treiber aus, aber für mich siehts doch eher danach aus, dass outb ein Problem hat, oder? (Wenn der bt output korrekt ist)
    Ich bin gerade dabei, das Plugin und auch die dazugehörigen Tools auf /dev/... ioctls umzubauen. Vielleicht hat sich das Problem dann erledigt. (Das kann allerdings noch ein bischen dauern... Hab' momentan ziemlich viel Anderes zu tun :( )
    Gruss, Carsten

  • Zitat

    Original von Sibbi
    Hi,
    ich kenn mich zwar nicht unbedingt mit dem ks0108 Treiber aus, aber für mich siehts doch eher danach aus, dass outb ein Problem hat, oder? (Wenn der bt output korrekt ist)


    aehm, ja aeh, sorry :)


    man sollt halt die fehlermeldung mal richtig lesen.


    scheint wirklich so zu sein, das er ned auf den port schreiben kann.


    laeuft da evtl nen cups oder lpd oder lcdproc noch?
    lpd ist bei den meisten distris einfach mal gestartet.


    wenn ja, killall lpd und dann nochmal testen.


    warum ich auf den malloc kam: das problem hatte ich erst beim sed1520 treiber,
    drum hab ich ned genau hingeschaut, sorry.


    -- randy

  • Konnte das Segfault Problem beseitigen durhc umbenennen der Fonts in die Dateinamen, die das Plugin verlangte.


    (steht in der /var/log/messages)


    MfG, Marcel.

    VDR-Box: DT-HiFi-01-sw von rebach, ME6000, Hauppauge DVB-s 1.3, 80Gb Samsung, SUSE 8.2, vdr-1.2.6, Sony STR-DE 445 für AC3overDVB

Jetzt mitmachen!

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