TriOS mit Netzwerk

Du hast ein Betriebssystem für den Hive geschrieben oder beschäftigst dich mit den grundlegenden Systemfunktionen, dann bist du hier richtig!
joergd
Beiträge: 124
Registriert: Fr 20. Dez 2013, 20:08
Wohnort: Ronneburg

TriOS mit Netzwerk

Beitrag von joergd »

Wie bereits hier angedeutet, habe ich als mein erstes Software-Projekt versucht, die Netzwerk-Schnittstelle des Hive in TriOS nutzbar zu machen. Das bisherige Ergebnis ist im Anhang zu finden.

Es wird der IP-Stack von Harrison Pham in Administra integriert, Regnatix kann darauf über den Hive-Bus zugreifen. Zum Testen wurde ein einfacher FTP-Client erstellt, welcher Dateien downloaden und in der RAM-Disk ablegen kann. Genauer wird alles in der README des angehängten Archives beschrieben. Der Client wurde mit mehreren FTP-Servern getestet, es wird aber sicher etliche Server geben, welche auf Grund abweichender Implementierung nicht funktionieren. Dann bitte hier mögliche Fehlermeldungen posten. Prinzipiell funktionieren nur Server, welche passives FTP und das SIZE-Kommando unterstützen.

Die Netzwerk-Konfiguration des Hive (IP-Adresse, Mac-Adresse usw.) wird im NVRAM der RTC gespeichert. Damit soll es einmal möglich sein, den Hive ohne SD-Card zu verwenden und Programme direkt aus dem Netz zu starten. Nachteil ist natürlich, daß das Netzwerk nicht mit Hives ohne RTC funktioniert. (Ergänzung: ab Version R56-nw1.1 wird erkannt, ob eine RTC vorhanden ist. Falls nicht, erfolgt die Speicherung automatisch auf SD-Card)

FTP habe ich deswegen gewählt, weil damit Dateien im Netzwerk recht einfach sowohl gelesen als auch geschrieben werden können. Mit HTTP wäre zumindest das Schreiben wohl komplexer geworden. Und TFTP als noch einfachere Variante scheidet aus, weil es auf UDP basiert. Der IP-Stack von Harrison Pham unterstützt nur TCP.

Was kann man damit nun anfangen?
Mir schwebt als nächstes eine Integration von FTP in Regime vor, um Dateien statt von SD-Card direkt über das Netz zu laden. Damit könnte man dann wesentlich einfacher eigene Programme testen: Anstatt diese nach der Übersetzung erst am PC auf SD-Karte zu kopieren, die SD-Karte in den Hive zu stecken und dann zu testen, könnte man sich diese ganzen Umwege sparen. Das Programm wird am PC übersetzt, die Binaries landen in einem Verzeichnis, welches ein FTP-Server für den Hive freigibt. Am Hive muß man dann nur noch das Programm aufrufen.
Ansonsten würde ich mich natürlich sehr freuen, wenn es noch andere Ideen und Anwendungen zur Nutzung des Netzwerkes geben würde.

Wie gesagt handelt es sich um meine ersten Programmierversuche in SPIN und am Hive. Deswegen sind mit hoher Wahrscheinlichkeit Fehler enthalten, viele Dinge könnte man sicher besser machen. Für Verbesserungsvorschläge und Tips zur richtigen Programmierung bin ich immer offen. Die Spezialisten unter euch sollten bitte auch mal nachsehen, ob ich die Integration ins TriOS wie vorgesehen vorgenommen habe. Ich denke da speziell an die Nummerierung und Namen der in glob-con.spin sowie reg-ios.spin hinzugefügten LAN-Funktionen und an die Verwendung von CHIP_SPEC in admnet.spin. Auch die Verwendung des NVRAM könnte diskutiert werden.

Historie:

R57-nw1.5 (23.07.2014)
  • Webserver: erste Version eines Webservers für Domonstrationszwecke und eigene Experimente
  • admnet: Korrektur beim Verbindungsende, konnte zum Absturz nach Start des nächsten Programmes bit Netzwerkfunktionen führen
  • admnet: Netzwerkfunktionen nutzen nun den ABORT Trap
R57-nw1.4 (22.06.2014)
  • Update auf TriOS R57
  • IRC-Client: Unterstützung von /me und /ctcp
R56-nw1.3 (19.02.2014)
  • IRC-Client: Schönerer Ton bei neuen Mitteilungen (Tip von drohne235)
  • IRC-Client: Erkennung von Verbindungsabbrüchen und automatischer Reconnect (nach jeweils 1-2 Minuten)
  • IRC-Client: Prüfung beim Start, ob Administra Netzwerk-Funktionen zur Verfügung stellt. Falls nicht, wird "/system/admnet.adm" von SD-Card geladen. Mit dieser Änderung kann der IRC-Client auch vom aktuellen Plexus aus gestartet werden.
  • IRC-Client: Das Eingabefenster wird bei Eingabe einer längeren Mitteilung nun dynamisch vergrößert, die anderen Fenster entsprechend verkleinert (Anregung von drohne235)
R56-nw1.2 (05.02.2014)
  • admnet: HSS-Soundeffekte wieder eingefügt (aber keine Hintergrund-Musik)
  • admnet: statt 4 nur 2 Sockets in driver_socket.spin
  • IRC-Client: Klingeln bei jeder neuen Mitteilung
R56-nw1.1 (02.02.2014)
  • Lokalisierung aller Netzwerk-Programme (z.Z deutsch und englisch)
  • #define __DEBUG zur Aktivierung von Debug-Ausgaben, weniger Ausgaben der Programme, wenn nicht aktiviert
  • automatische Erkennung, ob RTC/NVRAM vorhanden ist (falls nicht, wird Konfiguration auf SD-Card in /system/nvram.sav geschrieben)
  • IRC-Client: private Mitteilungen besser erkennbar
  • IRC-Client: besseres Timing für Auto-Join
R56-nw1.0 (27.01.2014)
  • IRC-Client: erste Release-Version mit vollem Funktionsumfang
R56-nw0.3 (07.01.2014)
  • alle Programme (ipconfig, ftp) prüfen, ob Administra Netzwerk-Funktionen zur Verfügung stellt (admnet geladen)
  • ipconfig: Konfiguration wird nur noch nach Angabe des Parameters /l angezeigt (nicht mehrfach bei Angabe mehrerer Parameter)
  • ipconfig: konfigurierte Parameter werden sofort aktiviert (IP-Stack wird gestoppt und wieder gestartet)
  • ftp: Parameter für FTP-Server von /s in /f geändert
  • ftp: direktes Speichern auf SD-Card (Parameter /s)
  • ftp: Benutzername und Paßwort kann angegeben werden
  • ftp: anonymous-Login mit und ohne Paßwort (je nach Server)
  • ftp: verbessertes Timing (Kompatibilität mit verschiedenen Servern)
  • ftp: verschiedene Default-Werte hinterlegt:
    - FTP-Server: mittels ipconfig eingetragener Boot-Server
    - Verzeichnis: /hive/sdcard/system
    - Benutzer: anonymous
    - Paßwort: anonymous@hive<hive-id>
  • IRC-Client (Proof of Concept)
  • neue Administra-Funktionen lan_rxbyte und lan_isconnected
    (für IRC-Client benötigt)
R56-nw0.2 (23.12.2013)
  • erste veröffentlichte Version, basierend auf TriOS R56
Dateianhänge
HIVE-TriOS-R57-Network-1.5-src.zip
Netzwerk-Ergänzungen zu TriOS R57, IRC- und FTP-Client, Webserver (Archiv mit Quellen zum Selbstcompilieren)
(487.75 KiB) 904-mal heruntergeladen
HIVE-TriOS-R57-Network-1.5-bin.zip
Netzwerk-Ergänzungen zu TriOS R57, IRC- und FTP-Client, Webserver (Archiv mit Binärdateien)
(227.46 KiB) 932-mal heruntergeladen
Zuletzt geändert von joergd am Mi 23. Jul 2014, 13:28, insgesamt 8-mal geändert.
Viele Grüße

Jörg
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: TriOS mit Netzwerk

Beitrag von PIC18F2550 »

:DAUMENHOCH

Ein FTP-Client ist schon was tolles.

Da währe ein Mini FTP-Server der nur auf Administra läuft schon in greif barer ferne.:D

Weiter so und viel Erfolg.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: TriOS mit Netzwerk

Beitrag von drohne235 »

Super Arbeit! Freue mich schon darauf an den Feiertagen damit ein wenig zu experimentieren.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
BorgKönig
Beiträge: 598
Registriert: So 24. Mai 2009, 11:24

Re: TriOS mit Netzwerk

Beitrag von BorgKönig »

genial wärs noch, wenn der ftp client auf die sd-card schreiben kann... amsonsten 1a idee, teste ich demnächst mal.
Benutzeravatar
Micha
Beiträge: 812
Registriert: Sa 24. Mär 2012, 21:45
Wohnort: Merseburg
Kontaktdaten:

Re: TriOS mit Netzwerk

Beitrag von Micha »

na das nenne ich mal ne Neuigkeit!

Da werd ich meinen Hive dann umgehend mit ner Netzwerkbuchse (und einem Kühlkörper für den Spannungsregler!) ausrüsten, um an dieser Innovation teilhaben zu können.

Vielen herzlichen Dank an Jörg für dieses tolle Weihnachtsgeschenk!!!

Gibt derzeit so viele neue Sachen für den Hive, dass man kaum nachkommt mit Ausprobieren :-)
Also vonder Sache här tätch jetz ma behaupten "Mischn ägomplischd" un so...
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: TriOS mit Netzwerk

Beitrag von PIC18F2550 »

Ich hab es nicht mehr ausgehalten und gleich mal getestet.

mit IP-Config die werte gesetzt

Code: Alles auswählen

IP 192.168.1.201/255.255.255.0
Ga 192.168.1.1
DN 192.168.1.1
Bo 0.0.0.0
Hi 265
Ich hoffe das ich das richtig gemacht habe.

Da ich lokal keinen FTP mit ano Zugang habe habe ich mal die IP von "ftp.propeller-chip.com" als genommen.
:( leider keinen zugang erhalten.

Danach habe ich eine nicht vorhandene locale IP genommen.
:shock: ADM-LED blinkt und der HIVE steht. nach 5Minuten Reset betätigt.

Verwende ich eine externe IP kehrt das FTP in die Commandozeile zurück.

Trotz der nicht erfolgreichen Verbindung binn ich trotzdem zufrieden und voller zuversicht, da ich davon ausgehe, das ich etwas falsch verstanden habe.
Vieleicht hilft dir meine Beschreibung weiter.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
joergd
Beiträge: 124
Registriert: Fr 20. Dez 2013, 20:08
Wohnort: Ronneburg

Re: TriOS mit Netzwerk

Beitrag von joergd »

PIC18F2550 hat geschrieben::Da währe ein Mini FTP-Server der nur auf Administra läuft schon in greif barer ferne.:D
Das wäre eigentlich zu einfach. Und auch Platzverschwendung im Administra. Ich hoffe, daß man dort noch so viel optimieren kann, daß wenigstens etwas vom Sound wieder reinpaßt. Sinnvoller würde ich einen FTP-Server in Regnatix finden.
BorgKönig hat geschrieben:genial wärs noch, wenn der ftp client auf die sd-card schreiben kann...
Ist ja jetzt schon mit Umweg über die RAM-Disk kein Problem (s. unten).
PIC18F2550 hat geschrieben:Ich hab es nicht mehr ausgehalten und gleich mal getestet.
Die IP-Konfiguration sieht erstmal vernünftig aus (ohne Deine genaue Umgebung zu kennen). Dein Beispiel mit "ftp.propeller-chip.com" funktioniert hier leider auch nicht. Dieser Server antwortet wohl irgendwie komisch (ist ein Microsoft FTP Service...). Muß ich mir später mal genauer ansehen.

Da es sicher noch viele andere FTP-Server gibt, welche auf Grund von Implementierungs-Unterschieden nicht funktionieren, habe ich mal schnell einen eigenen FTP-Server unter ftp.bitquell.de (88.198.147.76) aufgesetzt. Damit sollte es in jedem Fall funktionieren. Beispiel:

Code: Alles auswählen

∞ admnet
 ok
∞ ftp /h 88.198.147.76 /d hive /f hallo.bin
[viel Text]
 ok
∞ xsave hallo.bin
Datei schreiben...
 ok
∞ hallo
Wir sind Borg. Widerstand ist zwecklos.
 ok
∞ 
Damit wird also der Netzwerk-Code in Administra geladen (falls dieser nicht im Flash gespeichert wurde), "hallo.bin" aus dem Verzeichnis "hive" des FTP-Servers in die RAM-Disk geladen, anschließend auf der SD-Card gespeichert und gestartet.

Wenn das bei Dir nicht funktioniert, bitte mal die letzte Ausgabe des FTP-Clients posten. Übrigens bleibt bei mir der Hive auch nicht hängen, wenn ich eine nicht vorhandene interne IP als FTP-Server angebe.

(Edit: FTP-Parameter im Beispiel an neue Version angepaßt)
Zuletzt geändert von joergd am So 2. Feb 2014, 19:00, insgesamt 2-mal geändert.
Viele Grüße

Jörg
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: TriOS mit Netzwerk

Beitrag von PIC18F2550 »

Danke und hier mein Ergebnis:
2013-12-25_12-27-35_690.jpg
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
joergd
Beiträge: 124
Registriert: Fr 20. Dez 2013, 20:08
Wohnort: Ronneburg

Re: TriOS mit Netzwerk

Beitrag von joergd »

"Keine oder falsche Antwort vom FTP-Server erhalten" am Ende der Übertragung macht nichts (die Ursache muß ich aber noch ergründen). An der Ausgabe "226..." des FTP-Servers erkennt man die erfolgreiche Übertragung.
Da Du die heruntergeladene Datei noch nicht auf der SD-Karte gespeichert hast (mit xsave, s. mein obiges Beispiel), kannst Du sie auf dieser mittels "dir" auch nicht sehen. Es ist also soweit alles in Ordnung.
Viele Grüße

Jörg
Benutzeravatar
Micha
Beiträge: 812
Registriert: Sa 24. Mär 2012, 21:45
Wohnort: Merseburg
Kontaktdaten:

die Drossel wars und nicht die Nachtigall...

Beitrag von Micha »

etwas off-topic, aber vielleicht bin ich nicht der einzige für den die Beantwortung folgender Frage von Interesse wär:

Bei meinen Hives sind bisher die Drossel L1 und die Netzwerkbuchse ENC unbestückt. Gab hier über die Jahre soviel Diskussionen im Forum, ich hab den Überblick verloren welche Teile geeignet und wo bestellbar. Wär furchtbar nett wenn einer von den Durchblickern hier mal in kompakter Form Teilenummern und mögliche Händler benennen könnte.

Ansonsten muss ich mich wohl mal nach nem Stück Blech zum Draufschrauben auf den Spannungsregler umsehen...
Also vonder Sache här tätch jetz ma behaupten "Mischn ägomplischd" un so...
Antworten