FreeDOS help system (hhstndrd 1.0.8 de)[ndis_ins]

Netzwerken unter FreeDOS - NDIS Treiberinstallation

Übersicht

(Bild Übersicht über die NDIS Architektur) Treiber, die auf der "Netzwerk Driver Interface Specification" (NDIS) basieren, sind der Standard in der Windowswelt. Die aktuellste Version ist NDIS 6, welches unter Windows Vista verwendet wird. Windows 98 verwendete NDIS 5, Windows 95 wurde mit NDIS 3.1 geliefert. Unter DOS haben Sie den Real-Mode Treiber NDIS 2.

Wo man sie findet

Es ist höchstwahrscheinlich, daß es für Ihre Netzwerkkarte einen NDIS Treiber gibt. Schauen Sie auf den Installationsmedien Ihrer Karte nach einem Verzeichnis "NDIS2". Falls Sie keinen Treiber finden kön- nen, schauen Sie doch mal auf diese Seite (vgl.: http://drivesnapshot. de/en/makebootdisk.htm (*01)). Die Dateiendung des Treibernamens lautet auf *.DOS, so heißt zum Beispiel der Treiber der 3Com 3C574 PC-Karte "EL3C574.DOS".

Wie sie arbeiten

In der Sprache der NDIS Architektur werden diese Treiber "Media Access Control" (MAC) Treiber genannt. Wie Sie in dem Bild oben sehen können, ist der MAC Treiber nur eine Komponente der NDIS Architektur. Laut NDIS 2.1 Dokumentation (vgl.: http://www.ndis.com/faq/ndis201.txt (*02)) scheint NDIS in etwa wie folgt zu funktionieren: * Befehle in der FDCONFIG.SYS (FreeDOS) oder der CONFIG.SYS (andere DOS) laden den Protokollmanagertreiber PROTMAN.DOS, den MAC Treiber und den Protokolltreiber. Dies kann durch Befehlszeilen für jeden dieser Treiber oder durch Starten des "Installable File System Helper" Treibers (=installierbarer Dateisystemhelfer Treiber), der durch den Befehl: "DEVICEHIGH=IFSHLP.SYS" gestartet wird und den Protokollmanager, den MAC- und den Protokolltreiber gemäß Ein- trägen in der PROTOCOL.INI startet. * Der Protokollmanager liest die Konfiguration aus der PROTOCOL.INI und macht sie für den MAC Treiber und die Protokolltreiber, die nach ihm laden, verfügbar. * Der MAC Treiber und der Protokolltreiber laden und konfigu- rieren sich gemäß dieser Information selbst. Sie identifizieren sich selbst beim Protokollmanager. * Bevor der MAC Treiber und der Protokolltreiber miteinander kommunizieren können, müssen Sie aneinander gebunden werden, damit sie gegeneinander bei ihren "Eintrittspunkten" (Kommuni- kationsports) Zugang haben. Dieser Verbindungsprozess wird vom Protokollmanager auf Basis der Information in der PROTOCOL.INI kontrolliert. * Die Bindesequenz kann von NET.EXE oder NETBIND.COM angesteuert werden (was in der AUTOEXEC.BAT erledigt werden kann). * Der Protokollmanager (PROTMAN.DOS) startet dann das speicher- residente Programm (TSR = terminate and Stay Resident = beende und bleibe im Speicher resident) PROTMAN.EXE um den Bindebefehl auszuführen und den korrekten Aufruf der Treiber zu kontrollieren. * Nachdem die Bindung stattgefunden hat, kommunizieren die MAC- und die Protokolltreiber direkt miteinander. Der Protokollmanger ist an diesem Kommunikationsprozess nicht mehr länger beteiligt, deshalb befreit NETBIND.COM den größten Teil des zuvor vom Protokollmanager reservierten Arbeitsspeichers. Die Konfiguration von NDIS unter DOS hat sich im Laufe der Zeit mit den verschiedenen Paketversionen geändert. Einige Hinweise über die Unterschiede können Sie hier finden (vgl.: http://www.yale.edu/ pclt/WINWORLD/NDIS.HTM (*03)). In diesem Dokument ging ich davon aus, daß wir die mit dem MS Client 3.0 gelieferten NDIS Dateien verwenden. Da diese Abteilung nur darüber abhandelt, wie man pakettreiberbasie- rende TCP/IP Anwendungen hoch- und mit DOS zum Laufen bekommt, werden wir hier nicht tiefer in Details über den MS Client eingehen, dies wird bereits in einer anderen Abteilung behandelt.

Zusätzliche Dateien erforderlich

Wie können wir jetzt den NDIS 2 MAC Treiber, der mit unserer Netzwerk- schnittstellenkarte geliefert wurde, für TCP/IP Netzwerken verwenden? Wie wir aus obiger Beschreibung gelernt haben, benötigen wir einige zu- sätzliche Dateien. Diese sind: * Der Protokollmanager ("PROTMAN.DOS" und "PROTMAN.EXE") * Das Binde-Utility ("NETBIND.COM") Diese Dateien sind Teil des MS Client 3.0, der hier heruntergeladen werden kann: ftp://ftp.microsoft.com/bussys/Clients/MSCLIENT/DSK3-1.EXE (*04) ftp://ftp.microsoft.com/bussys/Clients/MSCLIENT/DSK3-2.EXE (*05) Die drei erwähnten Teile sind Teil der "DSK3-1.EXE". Verwenden Sie das Utility "EXPAND.EXE", das mit der ersten Diskette mitgeliefert wird, um diese Dateien zu entpacken. * Kopieren Sie DSK3-1.EXE in ein Verzeichnis wie z.B.: C:\MSCLIENT1. Vermeiden Sie lange Pfade, wie Sie sie vielleicht unter Windows ver- wenden. 16 Bit Software läßt sich nicht ausführen, wenn der Pfad zu lang ist. * Tippen Sie DSK3-1.EXE, um ihren Inhalt zu entpacken. * Entkomprimieren Sie PROTMAN.DO_ und PROTMAN.EX_ wie folgt: expand -r protman.do_ expand -r protman.ex_ * NETBIND.COM ist bereits entpackt. Sie können jetzt diese drei Dateien nehmen und verwenden. Lesen Sie die LICENSE.TXT Datei, bevor Sie damit beginnen, die Dateien zu verwenden. Die Software ist für eigene Zwecke frei. Weder Vertrieb noch eine Modifikation sind erlaubt.

Der Konverter/Shim

Das letzte Stück, das wir noch brauchen, ist der "Packet Driver to NDIS Konverter". Besorgen Sie sich den oft verwendeten "DIS_PKT9.DOS" (Version 9, vgl.: ftp://ftp.cc.umanitoba.ca/software/pc_network/ dis_pkt9.zip (*06)) oder alternativ den etwas neueren (Version 11) "DIS_PKT.DOS"(vgl.: http://danlan.com/pdr_shim/odipkt/odipkt.zip (*07)). Im Gebrauch und der Bedienung bestehen keine Unterschiede. Beide wurden von Prof. Joe R. Doupnik (Utah State University) und Dan Lanciani (Harvard University) geschrieben. Das Urheberrecht wird von der nunmehr historischen FTP Software, Inc. gehalten, die glücklicherweise diesen Treiber als Public Domain, frei für den Gebrauch, den Vertrieb, Modifikation und mit Quellcode veröffentlicht hat.

Konfiguration der NDIS Treiber

Wie ich bereits erwähnte, ist dies nur eine minimale Installation des MS Client 3.0. Der einzige Grund dafür ist, pakettreiberbasierende TCP/IP Anwendungen zu verwenden. Dazu kopieren Sie die vier Dateien: PROTMAN.DOS PROTMAN.EXE NETBIND.COM DIS_PKT.DOS in ein Verzeichnis, zum Beispiel: C:\NET Kopieren Sie auch den MAC Treiber Ihrer Netzwerkschnittstellenkarte, z.B.: EL3C574.DOS in dieses Verzeichnis. Jetzt müssen wir die Konfigurationsdatei erstellen, die für die NDIS Architektur benötigt wird. Erzeugen Sie eine Datei mit dem Namen PROTOCOL.INI innerhalb des C:\NET Verzeichnisses. Für unsere minimale Konfiguration benötigen wir nur folgende Zeilen: --- PROTOCOL.INI --- [protman] DriverName=PROTMAN$ [EL3C574] DriverName=EL3C574$ [PKTDRV] drivername=PKTDRV$ bindings=EL3C574 intvec=0x60 chainvec=0x68 Erklärung der Parameter: Wie andere *.ini Dateien ist die PROTOCOL.INI in Sektionsnamen, die in eckigen Klammern stehen, und in Beschreibungsnamen mit zugeordneten Werten aufgeteilt. [protman] DriverName=PROTMAN$ Dieser Abschnitt [protman] definiert den Protokollmanager. Wie oben beschrieben, wird der Protokollmanager als Treiber PROTMAN.DOS geladen, der hier "PROTMAN$" genannt wird. Der Abschnitt und die dazugehörige Zeile sind zwingend vorgeschrieben. [EL3C574] DriverName=EL3C574$ Der Abschnitt [EL3C574]definiert die Netzwerkschnittstellenkarte. Üb- licherweise wird dieser Abschnitt nach der Karte selbst benannt - das ist praktisch, wenn Sie mehr als eine Netzwerkkarte eingebaut haben und verschiedene Abschnitte für verschiedene Karten verwenden. Deshalb ist der Abschnittsname hier der erste zu verändernde Wert. Es ist keine schlechte Idee, ihn nach Ihrer eigenen Netzwerkkarte zu be- nennen. Aber Sie können ihn natürlich genausogut "Netzwerkkarte", "NIC" oder auch "baked_beans" benennen, solange Sie auch alle Zeilen in der PROTOCOL.INI, die sich auf diesen Abschnitt beziehen, entsprechend umbenennen. Die nächste Zeile dieses Abschnitts ist "DriverName=EL3C574$". Sie definiert den Treiber für die Netzwerkschnittstellenkarte. In unserem Beispiel ist das EL3C574.DOS, der hier "EL3C574$" genannt wird. In der Regel werden Sie eine andere NIC als die im Beispiel erwähnte Karte verwenden. Sie werden deshalb diese Zeile ändern müssen. Sie sollten den richtigen Namen des Treibers in einer Textdatei namens "PROTOCOL. INI" finden, die als Teil der NDIS-Treiber Dateien mit Ihrer Karte mit- geliefert wird. Sie können in diesem Abschnitt mehrere Zeilen einfügen, dadurch können Sie spezielle Einstellungen Ihrer Netzwerkkarte definieren. Weitere Informationen finden Sie dazu in der "PROTOCOL.INI", die mit Ihren NDIS-Treibern geliefert wurden. Aber in vielen Fällen sollte die Zeile mit dem Treibernamen ausreichen. [PKTDRV] drivername=PKTDRV$ bindings=EL3C574 intvec=0x60 chainvec=0x68 Der nächste Abschnitt [PKTDRV] definiert unseren Pakettreiber-zu-NDIS- Konverter, der "DIS_PKT.DOS" oder "DIS_PKT9.DOS" heißt. Beide werden über den Namen "PKTDRV$" aufgerufen. Es ist wichtig, daß der Konverter sich an den Treiber der Netzwerkkarte bindet. Das geschieht durch die nächste Zeile "bindings=EL3C574". Bitte beachten Sie, daß dieser Name kein "$" Zeichen beinhaltet - er bezieht sich auf den Abschnittsnamen, der den Treiber definiert, nicht auf den Treiber selbst. Wenn Sie also diesen Abschnitt "[baked_beans]" wie oben vorgeschlagen haben, müssten Sie hier "bindings=baked_beans" schreiben. Die Zeile "intvec" benennt den Softwareinterrupteinsprung, der von der Pakettreiberschnittstelle verwendet wird. Wie bereits erwähnt, sollte dies üblicherweise der Hexadezimalwert 0x60 sein. Die Zeile "chainvec" definiert ebenfalls einen verfügbaren Software- interrupt. Ihre Funktion ist für mich immer noch mysteriös. Lt. dem Erfinder der Pakettreiber (vgl.: http://groups.google.de/group/ comp.protocols.tcp-ip.ibmpc/msg/17b6041f7a3cde7c?dmode=source (*08)), FTP, kann ein "chain vector interrupt" die Ausführgeschwindigkeit und Zuverlässigkeit verbessern. Benutzer meldeten "eine 10fache Steigerung der Geschwindigkeit" (vgl.: http://groups.google.de/group/comp. protocols.nfs/msg/9b0c2e0d6aa47b32?dmode=source (*09)). Um EMM386-Fehler zu vermeiden empfehlen einige, einen Interrupt zu setzen, der den Vektor um Dezimal 8 erhöht. (vgl.: http://groups. google.de/group/bit.listserv.banyan-l/msg/aa961def5901f506?dmode=source (*10)). Wenn also der intvec 0x60 (was dezimal 96 bedeutet) ist, sollte der chainvec dezimal 104 (96+8) sein, was hexadezimal 0x68 ist. Das wird auch von einem der Autoren von DIS_PKT.DOS, Dan Lanciani, so beschrieben. (vgl.: http://groups.google.de/group/comp. protocols.tcp-ip.ibmpc/msg/64f2b6060ff2b438?dmode=source (*11)). Bitte informieren Sie mich, wenn Sie mehr darüber wissen. Das sind alle Einstellungen in der PROTOCOL.INI, die wir für unsere Zwecke benötigen. Ein letzter Hinweis: Wenn Sie beabsichtigen, einige dieser Werte bei jedem Neustart, wie zum Beispiel über ein DOS Boot- menue, zu verändern, könnte Horst Schäffer's Freeware "Inifile" für Sie nützlich sein (vgl.: http://www.horstmuc.de/wbat32.htm (*12)).

Installation

Die letzte Sache, die jetzt noch zu erledigen ist, ist die Treiber beim Booten zu laden. Ändern Sie deshalb Ihre Systemdateien, damit sie folgende Zeilen enthalten: --- FDCONFIG.SYS (FreeDOS) --- --- or CONFIG.SYS (MS DOS/anderes DOS) --- DEVICEHIGH=C:\NET\PROTMAN.DOS /I:C:\NET DEVICEHIGH=C:\NET\EL3C574.DOS DEVICEHIGH=C:\NET\DIS_PKT.DOS Der "/I" Parameter teilt dem Protokollmanager die Lage der PROTOCOL.INI mit. Das ist nicht notwendig, wenn beide im gleichen Verzeichnis liegen. --- AUTOEXEC.BAT --- C:\NET\NETBIND.COM Bitte beachten Sie, daß NETBIND.COM nicht hochgeladen werden kann und direkt von der AUTOEXEC.BAT aus aufgerufen werden sollte. Wenn Sie ver- suchen, ihn wie einen Treiber zu laden, wird er mit der Meldung "run- time error R6009 - not enough space for environment" abbrechen.

Neustart (reboot)

So, das wars. Das Beste was Sie jetzt tun können, ist, das System neu zu starten und eine einfache TCP/IP Anwendung wie ping zu verwenden, um zu testen, ob alles funktioniert. (Bild: Bootmeldungen von NDIS) (*01) OK (*02) https://web.archive.org/web/20030327055531/http:// www.ndis.com/faq/ (*03) https://web.archive.org/web/20100901143311/http://www.yale. edu/pclt/WINWORLD/NDIS.HTM (*04) https://www.virtualbox.org/wiki/Sharing_files_with_DOS und: https://archive.org/download/ftp.microsoft.com/ftp.microsoft. com.zip/ftp.microsoft.com%2Fbussys%2FClients%2FMSCLIENT%2FDSK3-1. EXE (*05) https://www.virtualbox.org/wiki/Sharing_files_with_DOS und: https://archive.org/download/ftp.microsoft.com/ftp.microsoft. com.zip/ftp.microsoft.com%2Fbussys%2FClients%2FMSCLIENT%2FDSK3-2. EXE und: http://download.amd.com/techdownloads/wfw31.zip und: https://archive.org/download/ftp.microsoft.com/ftp.microsoft. com.zip/ftp.microsoft.com%2FSoftlib%2FMSLFILES%2FWG1049.EXE und: https://archive.org/download/ftp.microsoft.com/ftp.microsoft. com.zip/ftp.microsoft.com%2FSoftlib%2FMSLFILES%2FNETSHAR.EXE und: https://jeffpar.github.io/kbarchive/kb/121/Q121086/ und: https://jeffpar.github.io/kbarchive/kb/128/Q128800/ (*06) OK (*07) https://web.archive.org/web/20110722171549/http:// www.danlan.com/ (*08) https://groups.google.com/forum/#!topic/comp.os.ms-windows. networking.tcp-ip/Ekxg5Y5pP0g (*09) https://groups.google.com/forum/#!original/comp.protocols. nfs/Xe1WnbPu0og/Mnukag0uDJsJ (*10) https://groups.google.com/forum/#!original/bit.listserv. banyan-l/v6HiU41jovQ/BvUBWe8dlqoJ (*11) https://groups.google.com/forum/#!original/comp.protocols .tcp-ip.ibmpc/-/OLTyDwa28mQJ (*12) https://www.horstmuc.de/div.htm#inifile ------------------------------------------------------------------------------ Copyright (C) 2007 Ulrich Hansen, Mainz (Germany), 2011 und 2020 an die FreeDOS-Hilfe angepasst von W.Spiegl. Weitergehende Informationen finden Sie hier. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation. A copy of the license is included in the section entitled "GNU Free Documentation License 1.2".