#################### # TriOS R56 Netzwerk #################### Einleitung ========== Dies ist eine Implementierung von Netzwerk-Funktionen in die aktuelle Version von TriOS (R56). Als erste Anwendungen sind enthalten: - Ein FTP-Client, welcher Dateien von einem FTP-Server downloaden und in der RAM-Disk im eRAM oder auf SD-Card abspeichern kann. - Ein vollständiger IRC-Client Zukünftige Erweiterungen, wie die Integration in Regime und direktes Starten von Programmen aus dem Netzwerk sind geplant. Implementierung =============== Es wurde ein neuer Administra-Code erstellt, welcher direkt geflasht werden kann oder zur Laufzeit geladen wird. Grundlage ist das originale admflash.spin. Aus diesem wurden aus Platzgründen alle Soundfunktionen entfernt und dafür die unveränderten Netzwerk-Treiber von Harrison Pham integriert. Für die Kommunikation über den Hive-Bus wurden die wesentlichen Funktionen des Netzwerk-Treibers zur Verfügung gestellt. Die Implementierung weiterer Funktionen des Original-Treibers ist bei Bedarf möglich. Die IP-Konfiguration des Hive wird im NVRAM des RTC gespeichert. Das hat den Vorteil, daß der Hive zukünftig auch ganz ohne SD-Card arbeiten kann, also quasi aus dem Netzwerk bootet. Ist kein RTC vorhanden (wird automatisch erkannt), erfolgt das Speichern der Konfiguration auf der SD-Card unter /system/nvram.sav. Installation ============ Binär: ------ Voraussetzung ist die Installation eines aktuellen TriOS im Flash von Administra, Bellatrix und Regnatix sowie auf der zugehörigen SD-Card. In das Verzeichnis "/system" auf der SD-Card werden die Dateien des Verzeichnisses "system" des vorliegenden Installations-Archives kopiert: admnet.adm: Administra mit Netzwerk-Funktionen, ohne Sound ipconfig.bin: IP-Konfigurationsprogramm ftp.bin: FTP-Client irc.bin: IRC-Client Quellen: -------- Das Verzeichniss "src" des vorliegenden Archives wird in die vorhandene TriOS- Struktur (R56) kopiert. Damit werden die folgenden Dateien durch geänderte Versionen ersetzt: lib/glob-con.spin lib/reg-ios.spin Wer dort eigene Änderungen vorgenommen hat, sollte sich die Änderungen in den beiliegenden Patches (glob-con.spin.diff und reg-ios.spin.diff) ansehen und selbst einpflegen. Folgende SPIN-Dateien können dann mittels BST übersetzt werden: system/administra/admnet/admnet.spin system/regnatix/ipconfig.spin system/regnatix/ftp.spin system/regnatix/irc.spin Das übersetzte admnet.spin kann direkt in Administra geflasht oder als "system/admnet.adm" auf die SD-Card kopiert werden. ipconfig.bin und ftp.bin gehören dann ebenfalls auf die SD-Card ins system-Verzeichnis. Wer die make.bat benutzt: Damit sollte ipconfig.spin, ftp.spin und irc.spin automatisch mit übersetzt werden, admnet.spin müßte man noch ergänzen. TriOS-R56-Network-src.tar.bz2 enthält die zur Entwicklung genutzten kompletten Sourcen. Hier wurden alle SPIN-Dateien nach UTF-8 gewandelt und auf Linux- Zeilenumbruch (LF) konvertiert. Außerdem ist ein Build-Script (make.sh) für Linux enthalten. In diesem können #defines für Debugging-Ausgaben und alternative Locales (z.Z. Englisch) gesetzt werden. Nutzung ======= Allgemeines ----------- Der Netzwerk-Stack in Administra wird erst gestartet, wenn er benötigt wird. Auch danach sollte man sich nicht wundern, daß der Hive nicht per Ping angesprochen werden kann: Aus Platzgründen enthält der Netzwerk-Stack keinen ICMP-Code. Dieser könnte auf Wunsch aber recht einfach hinzugefügt werden. Administra ---------- Voraussetzung ist, daß Administra mit dem Netzwerk-Code läuft. Das geschieht entweder durch direktes Flashen von admnet.spin oder durch Eingabe von "admnet" am Regime-Prompt. IP-Konfiguration ---------------- Mittels "ipconfig" wird die IP-Konfiguration im NVRAM oder als Datei abgelegt. Folgende Parameter kennt ipconfig: /? : Hilfe /l : Konfiguration anzeigen /a : IP-Adresse setzen /m : Netzwerk-Maske setzen /g : Gateway setzen /d : DNS-Server setzen /b : Boot-Server setzen /i : Hive-Id setzen Aus der Hive-Id wird eine eindeutige Mac-Adresse erzeugt. DNS-Abfragen werden noch nicht unterstützt, deswegen muß man den DNS-Server nicht konfigurieren. Der Boot-Server wird derzeit vom FTP-Client als Default- Server genutzt (s.u.). FTP-Client ---------- Der FTP-Client ist aktuell eine sehr einfache Implementierung und dient primär zum Testen der Funktion des Netzwerk-Stacks. Der Download funktioniert nur, wenn der FTP-Server das Kommando "SIZE" versteht. Obwohl das kein Standard-Kommando ist, wird es von den meisten FTP-Servern unterstützt. Außerdem wird nur passives FTP verwendet. Folgende Parameter kennt der FTP-Client: /h : FTP-Server-Adresse (Host) (default: mit ipconfig gesetzter Boot-Server) /d : in entferntes Verzeichnis wechseln (default: /hive/sdcard/system) /f : Download /u : Benutzername am FTP-Server (default: anonymous) /p : Paßwort am FTP-Server (default: anonymous@hive) /s : Datei auf SD-Card speichern Dabei ist zu beachten, daß auf Grund der fehlenden Namensauflösung die IP- Adresse und nicht der Host-Name des Servers angegeben wird. Weitere Einschränkungen ergeben sich durch die maximale Parameter-Länge von 64 Zeichen in Regime und maximal 12 Zeichen lange Dateinamen in der RAM-Disk. Ein Beispiel: Zum Download von ftp://1.2.3.4/verzeichnis/unterverzeichnis/datei.txt verwendet man folgende Befehlszeile: ftp /h 1.2.3.4 /d /verzeichnis/unterverzeichnis /f datei.txt Dabei erfolgt die Anmeldung wegen der fehlenden Parameter /u und /p als "anonymous" mit dem Paßwort "anonymous@hivexxx" (xxx: mit ipconfig gesetzte Hive-Id). Die Datei wird in der RAM-Disk gespeichert (s. Kommando "xdir") und könnte mittels "xsave" auf SD-Card gespeichert werden. Mit Nutzung aller Default-Werte genügt die Eingabe des folgenden Befehls: ftp /s /f ipconfig.bin Damit wird die Datei "ipconfig.bin" vom FTP-Server mit der IP-Adresse des mittels "ipconfig" konfigurierten Boot-Servers aus dem Verzeichnis "/hive/sdcard/system" geladen und im aktuellen Verzeichnis auf der SD-Card abgespeichert. Von dort könnte sie direkt gestartet werden. Getestet wurde mit einer lokalen Installation von "pure-ftpd" und den FTP- Servern der TU Chemnitz sowie des GnuPG-Projektes. IRC-Client ---------- siehe IRC.README.txt Schlußbemerkung =============== Fragen können im Hive-Forum (http://hive-project.de/board/) gestellt werden oder direkt an joergd@bitquell.de Viel Spaß - Jörg