Hilfe - Arduino Nano programmieren mit "XD2031" (für nano488)

  • Cygwin installiert, "gcc", "make", "git", "ncurses-devel", "curl-devel" packages installieren, dann compiliert es und startet. Macht aber ein POSIX binary, kein windows native wenn ich das richtig verstanden habe.


    Muss aber schauen wann ich zum Testen komme

  • Cygwin installiert, "gcc", "make", "git", "ncurses-devel", "curl-devel" packages installieren, dann compiliert es und startet. Macht aber ein POSIX binary, kein windows native wenn ich das richtig verstanden habe.


    Muss aber schauen wann ich zum Testen komme

    Jep. Braucht eine Laufzeitungebung. Da beißt die Maus keinen Faden ab. Und ist auch nicht grade als performant bekannt. Aber besser als nix.

  • Also, mingw64 installiert unter Windows. SIeht so aus als müsste ich das komplette Makefile neu schreiben. Vielleicht mag sich jemand dran versuchen, ich schaffe das nicht auf die Schnelle. Eigentlich muss man nur alle *.c files wie hier aus einer zufälligen Zeile compilieren. und dann linken (Ausgabe unter Linux mit "V=1 make"). Die Makefiles einfacher zu machen steht auch auf der Liste, bin ich aber auch noch nicht dazu gekommen...


    gcc -g -W -Wall -pedantic -ansi -std=c11 -funsigned-char -I. -I../common -Ihandler -Ios -Iposix -Iutil -DSERVER -D_POSIX_C_SOURCE=200809 -MMD -MP -MF obj/posix/.dep/tcp_provider.o.d -c handler/tcp_provider.c -o obj/posix/tcp_provider.o




    Unter Linux auch mal versucht, mxe zu installieren (siehe das doc/README.win in XD2031) - aber das schlägt beim Download der mingwrt (runtime?) fehl. Damit wäre ein cross-compile wohl möglich.


    Mehr werde ich dieses WE nicht mehr schaffen.


    Edit:

    gcc -g -W -Wall -pedantic -ansi -std=c11 -funsigned-char -I. -I../common -Ihandler -Ios -Iposix -Iutil -DSERVER -D_POSIX_C_SOURCE=200809 -c handler/tcp_provider.c -o obj/posix/tcp_provider.o

    sollte auch gehen (dann ohne dependency generation)

  • Also damit als Makefile versucht mingw das zumindest zu kompilieren:


    ---

    CC=gcc


    OBJFILES= cerrno.o channel.o cmd.o cmdline.o dir.o drives.o handler.o in_device.o in_ui.o openpars.o provider.o resolver.o xcmd.o xdserver.o handler/curl_provider.o handler/di_provider.o handler/diskimgs.o handler/fs_provider.o handler/tcp_provider.o handler/typed_handl

    er.o handler/x00_handler.o os/os.o os/privs.o os/serial.o os/terminal.o posix/loop.o posix/socket.o util/array_list.o util/hashmap.o util/log.o util/mem.o util/registry.o ../common/charconvert.o ../common/cmdnames.o ../common/errnames.o ../common/filetypes.o ../common/n

    ame.o ../common/wildcard.o


    %.o: %.c

    gcc -g -W -Wall -pedantic -ansi -std=c11 -funsigned-char -I. -I../common -Ihandler -Ios -Iposix -Iutil -DSERVER -D_POSIX_C_SOURCE=200809 -c $< -o $@



    xdserver: ${OBJFILES}

    gcc ${OBJFILES} -o xdserver -lncurses -lcurl -lc

    ----


    Aber dann findet er curl nicht:


  • Also, wenn ich mir "msys2" installiere als Cross-compile-Umgebung unter Windows (siehe https://www.msys2.org/ ), und dann mit


    pacman -Syuu

    pacman -S base-devel make gcc curl

    pacman -S mingw-w64-x86_64-curl

    pacman -S mingw-w64-x86_64-toolchain

    pacman -S msys/libcurl-devel


    das system update, und div. tools installiere (wobei ich jetzt nicht mehr sagen kann was nur in der historie steht und was _wirklich_ nötig ist), dann kompiliert der server zu einem xdserver.exe


    Vielleicht kann das ja mal jemand nachvollziehen.

  • Jetzt habe ich ihm poll() beigebracht, er baut eine xdserver.exe, aber beim Starten aus der cmd beschwert er sich über eine fehlende curl DLL :(

    Und static baut er auch nicht wg. undefined references zu curl....


    Wasn't Mist das ganze...

  • Ok, jetzt habe ich ihm die ganzen schönen FTP und HTTP interfaces abgeklemmt, jetzt baut er und startet auch (ohne CURL).


    Aber testen geht dann erst nächste Woche wieder oder so.

    Danke, dass du dich da so reinhängst! :thumbup: :sunny:

  • Ich habe mal einen neuen Branch angelegt, in dem ich meine Windows patches gesammelt habe. Der Server ist halt ziemlich beschränkt - keine Netzwerkfunktionen, und auch keine lokalen Commands. Aber bei mir verbindet er sich jetzt ohne Probleme mit dem Nano488, auch aus der reinen Windows cmd.exe.


    Könnt ihr das mal probieren?


    Source ist hier:
    https://github.com/fachat/XD2031/tree/win


    Anleitung ist hier:

    XD2031/README.win at win · fachat/XD2031
    A filesystem server for Commodore 8-bit computers. Contribute to fachat/XD2031 development by creating an account on GitHub.
    github.com


    Ich habe die Installationskommandos aus der shell-Historie gezogen. Daher kann es Lücken geben, bei einigen bin ich mir auch nicht sicher ob sie nötig sind. Wenn Ihr merkt das was fehlt gebt bitte Bescheid.

  • Hi Andrè,


    dann bin ich hiermit offiziell raus. :D

    Ich hab alles nach deiner Anleitung gemacht (auch die mehrfachen Updates, bis er nix Neues mehr wollte), hier der Auszug aus diesem "MING"-Ding am Schluss:


    Selbst wenn jetzt alles soweit korrekt wäre- wo finde ich jetzt den Server?

    Und: Muss ich dieses Ming-Paket dann auf JEDEM Rechner installieren, mit dem ich XD2031 verwenden will?


    Meine "Vorstellung" war: Irgendwann kommt eine unter Windows ausführbare *.exe-Datei raus, die man ausführt und der Server steht (wenn man im Batch-File den entsprechenden Pfad eingibt)...

    Falls es so nicht klappt, ist es einfach nichts für mich. Ich kenne mich wirklich NULLKOMMANICHT mit Programmieren auf dem PC aus. Also wirklich garnicht. :(

    Ansonsten verwende ich einfach meine petSD+ Laufwerke, befülle die SD-Karte mit Programmen und benutze diese wenige Sekunden später auf dem CBM.


    Ist üüüüberhaupt nicht böse oder negativ gemeint- aber ich bin einfach nicht firm in diesen Themen und hab es auch nicht vor.


    Vielleicht kommt hier ja noch anderer Input. Aber mir sagt ungelogen nichtmal 1% der ganzen Meldungen in diesem MINGW64 irgendwas... ich sitze hier mit tausend Fragezeichen auf dem Kopf ganz verstört vor dem Rechner. :D


    Einzig für mich gangbarer Weg: Eine ausführbare Datei unter Windows, ohne den Doktortitel in IT vorweisen zu müssen. angst



    Viele Grüsse und wirklich nix für Ungut (ich ziehe meinen Hut vor Leuten, die so einen kompletten WAHNSINN verstehen können!),
    Matthias


  • Also, bitte nicht so kurz vor der Zielgeraden aufgeben.


    Die xdserver.exe die einfach so unter Windows läuft ist ja das Ziel, sonst bräuchte man diesen ganze Aufwand ja gar nicht und könnte einfach mit cygwin arbeiten


    Dein Screenshot zeigt mir eine Fehlermeldung. Ich habe das mal gefixt und unnötige Referenzen die bei Dir nicht aufgelöst werden können entfernt.


    Bitte im XD2031 Verzeichnis mal ein "git pull" machen. Dann im pcserver Unterverzeichnis ein "make -f Makefile.win". Dann sollte da eine xdserver.exe rauskommen.

  • Die xdserver.exe die einfach so unter Windows läuft ist ja das Ziel, sonst bräuchte man diesen ganze Aufwand ja gar nicht und könnte einfach mit cygwin arbeiten

    Wenn das das Ziel ist, wäre es dann nicht das Einfachste immer eine aktuelle EXE für Windows zu Verfügung zu stellen. Dann wäre zumindest den 80% Windows-Usern geholfen. Die Linux-User sind das ja gewohnt, dass sie immer alles erst compilieren müssen, bevor sie es benutzen können. Die sind da einfach schmerzfrei. ;)

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Guten Morgen fachat ,


    hier das Ergebnis meines Versuchs:


    :(


    Was ist diese xdconfig- Datei?

    Gehe ich recht in der Annahme, dass die Datei "xdserver.exe" die alte Datei "fsser.exe" ersetzt, jedoch die gleichen Parameter in der "StartServer.BAT" funktionieren? So habe ich auch meine Batch aufgebaut. Einfach "fsser.exe" durch "xdserver.exe" ausgetauscht.


    Immerhin: Stecke ich das nano488 vom Rechner ab, erhalte ich gefühlt 40x so viele Fehlermeldungen. Also erkennen, dass was da ist, funktioniert.

  • Die Meldung über die xdconfig kannst Du ignorieren.


    Bei mir funktioniert es auf jeden Fall. Was genau passiert bei Dir? Was ist dass für eine Windows Fehlermeldung?


    Kannst Du einfach mal

    xdserver -v -d COM3

    Bzw mit Deiner COM Schnittstelle aufrufen aus einer cmd.exe? Bei verbundenem nano488 sollte eine Meldung des Devices auftauchen.


    Alles andere kommt danach.

  • fachat


    Hier das Ergebnis (bzw. die unteren Zeilen, da ich nicht alles auf den Schirm bringe- vorher ist aber alles "grün"):



    Ui, es scheint zu laufen!



    Evtl. ist mit meiner Batch-Datei was falsch?

  • Ja, das grüne kommt vom Arduino :thumbup::thumbup::thumbup:


    Seit dem fsser von damals hat sich mit Sicherheit einiges geändert.

    1. Du kannst das "-v" weglassen. Das ist "verbose" und bringt einfach nur mehr log output

    2. mal mit "xdserver -?" schauen was es an Optionen gibt und mit Deinem Batch-File vergleichen.


    Insb. Du kannst Drives zuweisen mit

    -A0:=/foo/bar


    Das hab ich aber noch nicht wirklich getestet unter Windows, insb. die Nutzung von Laufwerken.

  • Hallo André!


    Hmmmm... in dem Moment, wo ich ein Drive zuweisen will, kommt die Windows-Fehlermeldung, dass xdserver.exe nicht mehr richtig funktioniert und beendet werden muss. :(

    Habe es mit unterschiedlichen Varianten getestet- keine Chance. (In der Hilfe zur EXE steht, man soll A0:fs=... verwenden, damit hängt sich das Programm auf und muss beendet werden)

    Ohne "fs" kommt "ERR34 Error assigning 0:Ordner"


    Eine Zuordnung klappt also noch nicht.

    Und: Welche Dateien benötigt xdserver.exe noch, damit es läuft? Kopiere ich nur die EXE in einen anderen Ordner, bzw. blank auf "D:\", kommt ebenfalls die Windows-Fehlermeldung...


    Und was bedeutet "foo" und "bar"? :D


    Viele Grüsse,

    Matthias