Hallo Besucher, der Thread wurde 4,9k mal aufgerufen und enthält 26 Antworten

letzter Beitrag von strik am

Plötzliches OpenCBM Problem auf AMD64

  • Ich war jetzt so froh, dass ich endlich mein Combo-Kabel fertiggelötet habe um endlich mal meinen Parallelport am c1541 auszuprobieren.


    Und dann der Schock: Aus irgendeinem unerfindlichen Grund kann ich auf einmal die cbm.ko von OpenCBM nicht mehr laden.


    Ich bekomme nur:

    Code
    1. - insmod cbm.ko
    2. insmod[4246]: segfault at 0000000000000000 rip 00002b6aa483827b rsp 00007fff06503148 error 4
    3. Segmentation fault

    Gar nicht schön.


    Vor allem: Bis letzte Woche lief es noch!
    Seitdem habe ich an meiner Linux-Installation eigentlich überhaupt nichts verändert. Zumindest nichts, was sich irgendwie auf den Kernel auswirken würde. Habe auch den nächst neueren Kernel runtergeladen und installiert. cbm.ko neu kompiliert (mit dem angegebenen Patch), installiert, und wieder das selbe.
    Das ist echt frustrierend!


    Übrigens kann ich den Rest von OpenCBM auch nicht kompilieren. Aber die Tools hatte ich noch von einem älteren Kompilat, das auch noch funktioniert hat. (zumindest letzte Woche noch)


    Hier bekomme ich folgenden Fehler:

    Code
    1. gcc -shared -o libopencbm.so.0.4.0 -Wl,-soname -Wl,libopencbm.so.0 cbm.lo detect.lo detectxp1541.lo petscii.lo upload.lo LINUX/archlib.lo LINUX/archmnib.lo ../libcbmcopy/cbmcopy.lo ../libcbmcopy/pp.lo ../libcbmcopy/s1.lo ../libcbmcopy/s2.lo ../libd64copy/d64copy.lo ../libd64copy/fs.lo ../libd64copy/gcr.lo ../libd64copy/pp.lo ../libd64copy/s1.lo ../libd64copy/s2.lo ../libd64copy/std.lo ../arch/linux//libarch.a
    2. /usr/bin/ld: ../arch/linux//libarch.a(file.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
    3. ../arch/linux//libarch.a: could not read symbols: Bad value
    4. collect2: ld returned 1 exit status
    5. make[1]: *** [libopencbm.so.0.4.0] Error 1
    6. make[1]: Leaving directory `/tmp/opencbm-0.4.0/lib'
    7. make: *** [all] Error 1


    Hier noch meine Daten:

    Code
    1. AMD64
    2. Linux version 2.6.18 (root@homecomp) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 Thu Jun 21 16:43:22 CEST 2007
    3. gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
    4. GNU ld (GNU Binutils for Debian) 2.17.50.20070426

    Ich weiss nicht genau, wer für Bugs zuständig ist.
    Morgen schreibe ich das an die Mailing-Liste.
    Bis dahin würde ich gerne wissen, ob irgendjemand die Fehler auch schon hatte oder etwas damit anfangen kann.

  • Zitat

    Original von sauhund


    er sagt dir doch was das problem ist (und sogar was die warscheinliche lösung ist)

    Alle kompilierten Dateien vor dieser Fehlermeldung wurden mit -fPIC kompiliert!
    Und bei diesem Aufruf -fPIC anzufügen bringt auch nichts.
    Also ich werde aus dieser Fehlermeldung nicht schlau.

  • Das ist richtig.
    Das ist ein Bug. Danke!
    Mit der Option bei der Stelle kompiliert er jetzt durch.
    Nur am Schluss gibt es noch einen Error, der aber unwichtig zu sein scheint:

    Code
    1. make[1]: Leaving directory `/tmp/opencbm-0.4.0/docs'
    2. make: *** mnib36: No such file or directory. Stop.
    3. make: [all] Error 2 (ignored)

    Aber leider hilft das alles noch nicht bei meinem Hauptproblem.
    Einsetzten kann ich all die schönen kompilierten Tools wegen dem Segfault beim Modul leider nicht.

  • Ich habe noch mal versucht, alle möglichen Fehlerquellen herauszufinden und noch ein paar Informationen gesammelt, die bei der Fehlersuche helfen sollten:


    Nicht dass das so viel hilft. Aus meiner Sicht ist das alles vollkommen in Ordnung. :(

  • Problem gefunden.
    Bei der neuesten module-init-tools löst der Befehl "insmod" grundsätzlich einen "Segmentation Fault" aus. Es hatte also gar nichts mit dem cbm.ko zu tun gehabt!


    Ich hoffe, dieses Problem wird bald gefixed. Das ist ja doch schon hammerhart!


    Leider hat das mir auch so nicht viel gebracht.
    Wenn ich mein selbstgebasteltes XAP1541 Kabel anstecke und das Floppy starte, leuchtet nur die LED rot, der Motor springt an und hört nicht wieder auf.
    Und das, obwohl ich über eine Stunde damit verbracht habe, alle Leiterbahnen zu überprüfen! (So weit es mir möglich war)
    So viel Arbeit, so viel Bastelei ist jetzt für die Katz! :cry :cry :cry


    Aber wenigstens kann ich das normale XM1541 Kabel jetzt wieder benutzen.
    Wenigstens etwas.

  • Hallo,


    Zitat

    Original von Nightshade
    Das ist richtig.
    Das ist ein Bug. Danke!
    Mit der Option bei der Stelle kompiliert er jetzt durch.


    Hattest Du alle Patches von der SF-Seite (http://sourceforge.net/tracker/?group_id=122047&atid=692221) eingespielt? Falls ja, dann würde ich gerne wissen, wo du noch ein -fPIC ergänzen mußtest, damit ich das korrigieren kann.


    Zitat


    Nur am Schluss gibt es noch einen Error, der aber unwichtig zu sein scheint:

    Code
    1. make[1]: Leaving directory `/tmp/opencbm-0.4.0/docs'
    2. make: *** mnib36: No such file or directory. Stop.
    3. make: [all] Error 2 (ignored)


    Richtig, das ist mehr eine Warnung. Die Patches (s. Link oben) beheben auch das.


    Wegen des Problems mit dem insmod, hast Du das auf dem Bugtracking deiner Distri schon ergänzt? Je eher das passiert, umso wahrscheinlicher ist es, dass es bald behoben wird.


    Und: Ja, für Bugs bin ich zuständig. Oder aber auch auf der SF-Seite eintragen. So geraten sie nicht in Vergessenheit, was bei Mails an mich schon eher mal passieren kann.


    Gruß,
    Spiro

  • Ich hatte nur einen Patch. Weiss nicht wo ich den her hatte. Ich wusste nicht, dass es noch mehr gab.
    Vielleicht sollte man sie auch auf der Troubleshooting-Seite mit einem Satz erwähnen.
    Ich hab alle runtergeladen und installiert und jetzt funktioniert alles.


    Na ja, bis auf mein XAP1541 natürlich. :(


    Kleine Frage zum XAP-Kabel:
    Das ist doch eigentlich nur ein XA1541, bei dem noch die parallelen Eingänge mit angelegt werden. Das würde bedeuten, zum Testen des Kabels muss ich nur den XA-Anteil testen und dann würde es auch wie ein XA funktionieren.
    Zumindest so weit, bis mein Floppy beim Einschalten nicht auf Dauerbetrieb geht.


    Jedenfalls danke nochmal für den Hinweis!


  • Richtig. Du kannst das XAP auch als XA benutzen, wenn du den Parallelport offen läßt. Würde ich für erste Tests eh empfehlen.


    Wenn dann mal alles soweit läuft kann man zusätzlichen den Parallelport anschließen.


    Was für Transistoren hast du denn benutzt? Du "offiziell zertifizierten", ;) oder irgendwelche adneren?


    Gruß,
    Spiro

  • Ja, ich habe die richtigen benutzt, aber das ist jetzt hinfällig.
    Ich habe jetzt zusätzlich zu den Leiterbahnen und Lötsstellen noch mal das Schema überprüft, und zwei hammerharte Fehler gefunden.
    Einer lag bei mir, einer bei dem Layoutprogramm.
    Beim Layoutprogramm lagen die Nummer der Pins im Schema und dem Footprint auseinander. Das ist natürlich übel und ich musste das händisch korregieren. Das wird auch ein Fehler in meinem StereoSID-Projekt, das ich noch mal überarbeiten muss.
    Und dann habe ich alle Transistoren gleich auf Collektor und Emitter geschaltet und übersehen, dass bei einem das andersrum ist. Dann kann es auch nicht klappen.


    Ich hoffe, dass die SMD-Transistoren es überleben, wenn ich sie nochmal loslöte. Ich hoffe die sind so robust, denn ich habe nur noch zwei Ersatztransistoren... :roll:
    Morgen versuche ich es nochmal.

  • Jetzt ist das Kabel so weit, dass ich wenigstens das Floppy einschalten kann, ohne dass es auf Dauerbetrieb geht.
    Mehr aber auch nicht.
    Wenn ich irgendeinen Befehl drauf loslasse, passiert gar nichts.
    Ich vermute, dass die Transistoren vom Wieder-Auslöten kaputt gegangen sind. Was anderes kann ich mir nicht mehr denken.
    Damit gebe ich diesen Versuch jetzt auf. :(
    Ich werde mein XM1541 Kabel auf XMP1541 umlöten und schauen ob das geht. Ich weiss sowieso nicht, wo der Vorteil vom XA gegenüber dem XM liegen soll.


  • Hi,
    Dauerbetrieb der Floppy ... kommt mir irgendie bekannt vor.
    Wann machst Du die Floppy denn an ?
    Direkt als erstes, oder erst wenn Du den PC hochgefahren hast ?


    Also bei meinem PC und XM Kabel muß ich wie folgt vorgehen. Erst Floppy einschalten, dann den PC starten, in der Zeit wo der PC hochfährt läuft der Motor der Floppy an, und sobald WindowsXP gestartet ist stellt er sich wieder ab und ich kann so wie es soll drauf zugreifen.
    Wenn ich allesdings mal den PC starte wenn die Floppy aus ist, habe ich keine Chance später mal drauf zuzugreifen, also wenn ich dann mal die Floppy einschalte läuft sie nur im Dauerbetrieb. Muß dann Windows erst neu starten damit es wieder geht.


    Kennt jemand das Verhalten und kann es mal erklären ?
    Ist es auch mit anderen Kabeln so, z.B. beim XA ?


    Gruß Donald

  • Zitat

    Original von wattie
    Also bei mir reicht ein einfaches "cbmctrl reset" aus, danach hört die Floppy auf zu laufen, und ich kann problemlos drauf zugreifen.


    Hi,
    das habe ich natürlich auch schon probiert, keine Chance wenn die Floppy nicht vor dem PC-Start an ist.


    Vielleicht noch irgendeine Einstellung die geändert werden muß, muß ich halt noch mal ein wenig mit verschieden Einstellungen versuchen.


    Gruß Donald

  • Also bei mir läuft Linux.
    Wenn ich ohne geladenen Treiber das Floppy anschalte, geht er auf den bekannten Dauerbetrieb.
    Sobald ich das Kernel-Modul von OpenCBM geladen habe, kann ich den 1541 beliebig an und ausschalten und alles ist in Ordnung.


    Ich habe jetzt übrigens mein XM1541-Kabel mit einem Parallelkabel modifiziert. War ne Sache von 20 Minuten. Die parallele Datenübertragung geht ohne Probleme. Ich hätte mir wirklich nicht die Mühe mit dem XA-Kabel machen sollen.


    Der Geschwindigkeitszuwachs durch parallele Übertragung ist zwar nicht so hoch wie ich gedacht habe, aber mit verdoppelter Geschwindigkeit immer noch sehr gut.

  • Hallo,

    Zitat

    Original von Nightshade
    Also bei mir läuft Linux.
    Wenn ich ohne geladenen Treiber das Floppy anschalte, geht er auf den bekannten Dauerbetrieb.


    Ohne geladenen Treiber geht es bei manchen in den Dauerlauf, bei anderen nicht. Das ist übrigens unabhängig von Linux oder Windows. Je nachdem, wie das System (oder das BIOS) den Parallelport initialisiert und welches Kabel (XM, XA) benutzt wird, passiert es mal, und mal nicht. Daran kann ich nun wirklich nichts ändern.


    Zitat


    Sobald ich das Kernel-Modul von OpenCBM geladen habe, kann ich den 1541 beliebig an und ausschalten und alles ist in Ordnung.


    So sollte es auch sein, funktioniert aber nicht immer. Wenn die Floppy nicht eingeschaltet war beim Laden des Treibers kann es passieren, dass der Treiber das Kabel falsch erkennt, so dass der Treiber gar nicht mehr läuft.


    Abhilfe: Floppy einschalten, Treiber entladen und wieder neu laden.


    Tritt übrigens bei Windows auch auf, und zwar noch stärker, wobei das Problem im aktuellen CVS-Code allerdings behoben ist.


    Zitat


    Ich habe jetzt übrigens mein XM1541-Kabel mit einem Parallelkabel modifiziert. War ne Sache von 20 Minuten. Die parallele Datenübertragung geht ohne Probleme. Ich hätte mir wirklich nicht die Mühe mit dem XA-Kabel machen sollen.


    Nun ja, ich empfehle trotzdem jedem das XA-Kabel.


    Hast du die Floppy beim Laden des Treibers (Kernel-Moduls) eigentlich an? Falls nicht, kann es sein, dass der Treiber das Kabel einfach falsch erkennt.


    Zitat


    Der Geschwindigkeitszuwachs durch parallele Übertragung ist zwar nicht so hoch wie ich gedacht habe, aber mit verdoppelter Geschwindigkeit immer noch sehr gut.


    Schon mal mit mnib probiert? Einfach auf rittwage.com herunterladen und mnib über OpenCBM darauf zugreifen lassen. Das ist deutlich schneller.



    Zitat

    Original von Donald
    so nach einigen hin und her versuchen geht es nun auch, ohne vorher den PC neu zu starten.


    Einfach Treiber deinstallieren mit "instcbm -r"
    und dann wird neu installieren mit "instcbm"
    und schon klappt der Zugriff.


    Richtig. Wie gesagt, das Problem ist schon länger bekannt und auch schon behoben. Allerdings fehlen noch ein paar anständige Tests sowie noch einige Features, die unbedingt in eine 0.4.1 hinein sollen, bevor das freigegeben wird.


    Gruß,
    Spiro

  • Zitat

    Original von Donald
    uiii, 0.4.1 ist in Sicht. Klasse.


    Ja, ist sie schon seit mindestens 1/2 Jahr. *ggg*


    Will heißen: Es gibt keinen genauen Zeitplan, es könnte auch erst in einem Jahr oder mehr sein. Hängt hauptsächlich davon ab, wie viel Zeit wir haben.


    Zitat


    Na das eine oder andere ist schon noch aufgefallen an 0.4.0, aber ich denke mal das brauch ich hier nicht aufführen, wird dann bestimmt auch schon bekannt sein und in der 0.4.1 behoben sein.


    Würde ich nicht so sehen. Wir bekommen leider nur sehr wenige Fehlerreports, also kann auch nur das gefixt werden, was dem Team selbst auffällt.


    Will heißen: Fehler oder Sachen, die euch nicht gefallen, bitte melden! Vorzugsweise im Bug-Tracking von SourceForge, da gehen sie dann nicht so schnell verloren.


    Gruß,
    Spiro