RunCPM compile auf einem OpenWRT-device (LinkIt Smart MT7688)

  • Irgendwie hatte mich ja heute nochmal der Ehrgeiz gepackt.
    Ich wusste ja es fehlt einiges an Ressourcen an einem OpenWRT-Device, aber mein LinkIt Smart MT7688 hat 128MB Ram und einen MicroSD-Slot - da muss doch was zu machen sein....

    Als erstes habe ich meinem Device das aktuelle OpenWRT 19.04.7 verpasst.
    Dann brauchte ich fuer den gcc mehr internen Disk-Platz, den der MicroSD-Slot wird nicht automatisch eingebunden.
    Mehr Platz bekommt man, wenn man entweder einen USB-Stick oder hier bei mir die MicroSD-Card als /overlay einbindet/mountet.

    Eine Anleitung dazu gibt es auf:

    https://linuxconfig.org/how-to-extend-…h-an-usb-device

    Anstatt sd1 bekommen man auf dem MT7688 mit der installierbaren Erweiterung

    kmod-sdhci-mt7620

    dann ein Device mmcblk0 und durch fdisk dann dort die Partition 1 (ext4) = mmcblk0p1

    Nach Anleitung habe ich die Partition angelegt, ext4-formatiert und die alten /overlay-Daten uebernommen/kopiert und den passenden mount-Eintrag in die /etc/config/fstab eingetragen (s. passende UUID beim Partition erstellen)

    Nach dem Reboot war dann genug Platz um gcc und make per opkg zu installieren ;)
    (musste wegen zu kleinem tmpfs das Paket ( gcc_7.4.0-5_mipsel_24kc.ipk ) per wget aus dem Internet holen direkt nach /overlay

    und dann dort per opkg install ./gcc_7.4.0-5_mipsel_24kc.ipk installieren)

    Zum Transfer des RunCPM-Sourcecode habe ich das Paket vsftpd-tls als FTP-Server installiert und den Sourcecode per FTP auf mein Home-Directory (ausgepackt) uebertragen.

    Beim ersten kompilier-Versuch stellte ich fest, dass OpenWRT als Paket zwar libreadline anbietet aber kein libreadline-dev :(

    Mir viel auf, dass readline.h nur angefordert wurde, wenn man mit LUA-Support kompilierte.... also habe ich alles zu LUA aus dem Makefile.posix entfernt.

    (und spaeter umbenannt/kopiert auf Makefile.openwrt)

    Nun ging der Compile ein Stueck weiter, meckerte dann aber beim "linken" die Optionen "-lncurses" und "-ldl" an :(

    Also die auch noch entfernt und somit schon die Hoffnungen stark schwinden sehen, dass noch was brauchbares rauskommt :(

    Aber ohne die Optionen bekam ich nur ein ausfuehrbares/kompilieretes RunCPM-File

    Dieses kopierte ich nun in ein frisches RunCPM-Directory und fuellte per FTP die Verzeichnise fuer die Laufwerke aus meiner funktionstuechtigen Arduino-DUE RunCPM-Version.

    (ohne diese Laufwerkverzeichnisse und die CCP-Files bekam ich vorher einen BDOS-Error - ich dachte eher an einen "missing CCP")

    Mit den Files im Verzeichnis startete ich nun die downstripped-RunCPM-Version und bekam doch mehr als ich erwartete :)

    Ich kann DIR aufrufen, Programme starten/beenden, Aus-/Eingaben klappen :)
    Ich weiss noch garnicht, was mir bis jetzt gross verloren gegangen ist durch weglassen der beiden "LDFLAGS" fuer den Linker...

    Anbei das Makefile(.openwrt) und 2 Terminal-Bilder.

    Zum Vergleich der Mandelbrot-Benchmark braucht auf dem 580Mhz MIPS-Prozessor nur 13 Sekunden gegen 40 auf dem ESP32
    bzw. ueber 1 Minute auf dem Arduino DUE.

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

  • Jetzt 2 OpenWrt-Versionen weiter (19.04.07 -> 22.03 -> 23.5.0) und jetzt mit GCC 12.3.0 habe ich die RunCPM-Version auch hier mal auf v6.1 gebracht.

    OpenWrt scheint sich gut zu entwickeln und die Software laeuft gefuehlt besser ;)

    Gut war, dass ich mir damalle eine gute Anleitung geschrieben habe, da bei den 128MB RAM noch etwas Swap-Space gebraucht wird und das Filesystem auf eine SD-Karte ewrweitert werden muss - da der interne Flash nicht fuer alle Software-Pakete langt, die ich installiert habe :)

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

  • Klappt unter OpenWrt prima auf einem TP-LINK WDR-3600 Router
    (128MB RAM, 560Mhz MIPS CPU und USB-Storage)

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.