Mise en r‚seau de FreeDOS - installation du pilote NDIS
Vue d'ensemble
(Image : Vue d'ensemble de l'architecture NDIS)
Les pilotes fond‚s sur la "Network Driver Interface Specification"
(NDIS) sont utilis‚s par d‚faut dans le monde Windows. La version la
plus r‚cente est NDIS 6 qui est utilis‚ dans Windows Vista.
Windows 98 utilisait NDIS 5, Windows 95 ‚tait fourni avec NDIS 3.1.
Sous DOS vous devez utiliser le pilote en mode r‚el NDIS2.
O— les trouver
Il est fort probable qu'un pilote NDIS existe pour votre carte r‚seau.
Cherchez un r‚pertoire appel‚ "NDIS2" dans les fichiers d'installation
de votre carte. Si vous ne trouvez pas de pilote, jetez un coup d'oeil
… site : (voyez : http://drivesnapshot.de/en/makebootdisk.htm (*01)).
L'extension du nom du pilote doit ˆtre *.DOS, donc par exemple le
pilote 3Com 3C574 PC-Card est appel‚ "EL3C574.DOS".
Comment ils fonctionnent
Dans le jargon de l'architecture NDIS, ces pilotes sont appel‚s les
pilotes "Media Access Control" (MAC).
Le pilote MAC n'est qu'un composant de l'architecture NDIS comme vous
pouvez le voir sur l'image ci-dessus. Selon la documentation de NDIS
2.1 (voyez : http://www.ndis.com/faq/ndis201.txt (*02)) NDIS semble
fonctionner ainsi :
* Les commandes de FDCONFIG.SYS (FreeDOS) ou CONFIG.SYS (autres DOS)
chargent le gestionnaire de protocole PROTMAN.DOS, le pilote MAC et
le pilote de protocole. Cela peut ˆtre effectu‚ par des lignes pour
chacun de ces pilotes ou en commen‡ant le pilote "Installable File
System Helper" qui est charg‚ par "DEVICEHIGH=IFSHLP.SYS" et qui
d‚marre le gestionnaire de protocole ainsi que les pilotes MAC
et de protocole selon PROTOCOL.INI.
* Le gestionnaire de protocole lit la configuration depuis
PROTOCOL.INI et la rend accessible aux pilotes MAC et de protocole
qui se chargent ensuite.
* Les pilotes MAC et de protocole se chargent et se configurent
selon ces informations. Ils s'identifient auprŠs du gestionnaire de
protocole.
* Avant que les pilotes MAC et de protocole puissent communiquer,
ils doivent ˆtre li‚s ensemble pour pouvoir acc‚der aux "points
d'entr‚e" l'un de l'autre (c'est-…-dire aux ports de
communication).
Ce processus de liaison est contr“l‚ par le gestionnaire de
protocole en se fondant sur les informations contenues dans
PROTOCOL.INI.
* La s‚quence de liaison peut ˆtre d‚clench‚e par NET.EXE ou
NETBIND.COM (ce qui peut ˆtre fait dans AUTOEXEC.BAT).
* Le gestionnaire de protocole (PROTMAN.DOS) d‚marre alors le
programme r‚sident en m‚moire (Terminate and Stay Resident - TSR)
PROTMAN.EXE pour ex‚cuter la commande de liaison et pour contr“ler
le bon ordre des pilotes.
* AprŠs que la liaison ait ‚t‚ effectu‚e, les pilotes MAC et
de protocole communiquent directement l'un avec l'autre. Le
gestionnaire de protocole n'intervient plus dans ce processus de
communication, donc NETBIND.COM libŠre la plupart de la m‚moire
pr‚c‚demment r‚serv‚e par le gestionnaire de protocole.
La configuration de NDIS sous DOS a chang‚ au fil du temps avec les
diff‚rentes versions du paquet. Quelques indications sur les
diff‚rences peuvent ˆtre trouv‚es ici
(voyez : http://www.yale.edu/pclt/WINWORLD/NDIS.HTM (*03)). Dans
ce document, je considŠre que nous utilisons les fichiers NDIS livr‚s
avec le client MS 3.0.
Comme cette section est consacr‚e … l'utilisation des applications
TCP/IP fond‚es sur les pilotes de paquets sous DOS nous n'irons pas
dans les d‚tails au sujet du client MS ici, cela est d‚j… expliqu‚
ailleurs.
Fichiers additionnels n‚cessaires
Alors comment pouvons-nous utiliser le pilote MAC NDIS2 qui a ‚t‚
livr‚ avec notre carte d'interface r‚seau pour la mise en r‚seau
TCP/IP ? Comme nous l'avons appris de la description ci-dessus, nous
avons besoin de fichiers additionnels. Il s'agit de :
* Le gestionnaire de protocole ("PROTMAN.DOS" et "PROTMAN.EXE")
* L'utilitaire de liaison ("NETBIND.COM")
Ces fichiers font partie du client MS 3.0 qui peut ˆtre t‚l‚charg‚ ici:
ftp://ftp.microsoft.com/bussys/Clients/MSCLIENT/DSK3-1.EXE (*04)
ftp://ftp.microsoft.com/bussys/Clients/MSCLIENT/DSK3-2.EXE (*05)
Les trois fichiers mentionn‚s font partie de "DSK3-1.EXE". Utilisez
l'utilitaire "EXPAND.EXE" inclus sur le premier disque pour
d‚compresser ces fichiers.
* Copiez DSK3-1.EXE vers un r‚pertoire comme C:\MSCLIENT1. vitez un
chemin long si vous faites cela sous Windows. Les logiciels
16-bit ne s'ex‚cuteront pas si le chemin est trop long.
* Lancez DSK3-1.EXE pour d‚compresser ses contenus.
* D‚compressez PROTMAN.DO_ et PROTMAN.EX_.
expand -r protman.do_
expand -r protman.ex_
* NETBIND.COM est d‚j… d‚compress‚. Vous pouvez maintenant prendre
et utiliser les trois fichiers.
Lisez le fichier LICENSE.TXT avant de commencer … utiliser ces
fichiers. Le logiciel peut ˆtre utilis‚ gratuitement pour un usage
interne. Ni la distribution ni les modifications ne sont permises.
Le convertisseur/shim
La derniŠre piŠce dont nous avons besoin est le "Convertisseur
pilote de paquets vers NDIS". Obtenez "DIS_PKT9.DOS" qui est largement
utilis‚ (version 9, cf. ftp://ftp.cc.umanitoba.ca/software/pc_network/
dis_pkt9.zip (*06)) ou alternativement utilisez la version 11
l‚g‚rement plus r‚cente "DIS_PKT.DOS" (voyez : http://danlan.com/
pdr_shim/odipkt/odipkt.zip/ (*07)).
Il n'y a aucune diff‚rence dans leur utilisation et gestion. Les deux
ont ‚t‚ ‚crits par le Prof. Joe R. Doupnik (Universit‚ d'tat de
l'Utah) et Dan Lanciani (Universit‚ de Harvard). Le copyright est
d‚tenu par le d‚sormais historique FTP Software, Inc., qui a
heureusement publi‚ ce pilote dans le domaine public, libre
d'utilisation, de distribution, de modification et avec le code source.
Configuration des pilotes NDIS
Comme j'en ai d‚j… fait ‚tat, c'est simplement une installation
minimale du client MS 3.0. Le seul but est d'utiliser les applications
TCP/IP fond‚es sur les pilotes de paquets. Dans ce but :
Copiez les quatre fichiers
PROTMAN.DOS
PROTMAN.EXE
NETBIND.COM
DIS_PKT.DOS
dans un r‚pertoire, par exemple C:\NET.
Copiez aussi le pilote MAC de votre carte d'interface r‚seau,
par exemple :
EL3C574.DOS
dans ce r‚pertoire.
Nous devons maintenant cr‚er le fichier de configuration n‚cessaire
pour l'architecture NDIS : Cr‚ez un fichier avec le nom PROTOCOL.INI
dans le dossier C:\NET. Pour notre configuration minimale, il n'aura
besoin que des lignes suivantes :
--- PROTOCOL.INI ---
[protman]
DriverName=PROTMAN$
[EL3C574]
DriverName=EL3C574$
[PKTDRV]
drivername=PKTDRV$
bindings=EL3C574
intvec=0x60
chainvec=0x68
Explication des paramtŠres :
Tout comme d'autres fichiers *.ini, PROTOCOL.INI est structur‚ en
noms de section entre crochets et en nom d'‚l‚ments avec des valeurs
qui leur sont attribu‚es.
[protman]
DriverName=PROTMAN$
La premiŠre section [protman] d‚finit le gestionnaire de protocole.
Comme d‚crit ci-dessus, le gestionnaire de protocole est charg‚ en
tant que pilote PROTMAN.DOS qui est appel‚ "PROTMAN$" ici. La section
et la ligne sont obligatoires.
[EL3C574]
DriverName=EL3C574$
La section [EL3C574] d‚finit la carte d'interface r‚seau. Par d‚faut
la section elle-mˆme est nomm‚e d'aprŠs la carte - c'est utile, si
vous avez plus d'une carte r‚seau et utilisez diff‚rentes sections
pour diff‚rentes cartes.
Donc le nom de section est la premiŠre valeur … ˆtre modifi‚e ici. Ce
serait une bonne id‚e de le nommer d'aprŠs votre propre carte r‚seau.
Mais vous pouvez nommer la section "netcard", "NIC" ou mˆme
"yaourt_cuit" - ce que vous voulez, tant que vous modifiez toutes les
autres lignes qui pointent vers cette section dans PROTOCOL.INI.
La prochaine ligne de cette section est "DriverName=EL3C574$". Elle
d‚finit le pilote pour la carte d'interface r‚seau. Dans notre exemple,
c'est EL3C574.DOS, qui est appel‚ "EL3C574$" ici. TrŠs certainement
vous utiliserez une carte diff‚rente que celle mentionn‚e dans
l'exemple. Donc vous devrez modifier cette ligne. Vous trouverez le
nom correct du pilote dans un fichier textuel appel‚ "PROTOCOL.INI"
qui devrait faire partie des fichiers de pilote NDIS fournis avec
votre carte.
Il est ‚galement possible d'ajouter plus de lignes … cette section
pour d‚finir des r‚glages sp‚ciaux pour votre carte r‚seau. Consultez
"PROTOCOL.INI"fourni avec votre pilote NDIS pour plus d'informations.
Mais dans de nombreux cas la ligne avec le nom du pilote devrait ˆtre
suffisant.
[PKTDRV]
drivername=PKTDRV$
bindings=EL3C574
intvec=0x60
chainvec=0x68
La section suivante "[PKTDRV]" definit notre convertisseur pilote de
paquets vers NDIS qui est "DIS_PKT.DOS" ou "DIS_PKT9.DOS". Tous les
deux sont appel‚s par le nom "PKTDRV$".
Il est important que le convertisseur se lie au pilote de la carte
r‚seau.
Cela est effectu‚ par la prochaine ligne "bindings=EL3C574". Veuillez
noter que ce nom ne comprend PAS de lettre "$" - il fait r‚f‚rence
au nom de la section qui d‚finit le pilote, pas au pilote lui-mˆme.
Donc si vous aviez appel‚ cette section "[yaourt_cuit]" comme sugg‚r‚
plus haut, vous devriez ‚crire "bindings=yaourt_cuit" ici ;-).
L'‚l‚ment "intvec" sp‚cifie le vecteur d'interruption du logiciel
utilis‚ par l'interface du pilote de paquets. Comme d‚j… expliqu‚, cela
devrait ˆtre la valeur hexad‚cimale 0x60 par d‚faut.
L'‚l‚ment "chainvec" d‚finit aussi une interruption logicielle
disponible. Sa fonction est encore un mystŠre pour moi. Selon
l'inventeur du pilote de paquets (cf. http://groups.google.de/group/
comp.protocols.tcp-ip.ibmpc/msg/17b6041f7a3cde7c?dmode=source (*08))
FTP, l'ajout d'une "chain vector interrupt" peut am‚liorer la vitesse
et la fiabilit‚ du traitement des paquets.
Les utilisateurs ont vu "une am‚lioration de 10 fois de la performance"
(cf. http://groups.google.de/group/comp.protocols.nfs/msg/9b0c2e0d
6aa47b32?dmode=source (*09)). Pour ‚viter les erreurs EMM386 certaines
personnes conseillent (voyez : http://groups.google.de/group/
bit.listserv.banyan-l/msg/aa961def5901f506?dmode=source (*10)) de
d‚finir une interruption qui augmente le vecteur de 8 d‚cimales. Donc
si le intvec est 0x60 (c'est le d‚cimal 96), alors le chainvec devrait
ˆtre le d‚cimal 104 (96+8), ce qui est l'hexad‚cimal 0x68. C'est
d‚crit (cf. http://groups.google.de/group/comp.protocols.tcp-ip.ibmpc/
msg/64f2b6060ff2b438?dmode=source (*11)) par l'un des auteurs de
DIS_PKT.DOS, Dan Lanciani. Veuillez contribuer si vous en savez plus.
Ce sont l… tous les r‚glages dans PROTOCOL.INI n‚cessaires … notre
objectif.
Un dernier conseil : Si vous pensez modifier certaines de ses valeurs
… chaque amor‡age, par exemple par des choix pr‚sent‚s dans un menu
de d‚marrage DOS, vous pourriez appr‚cier le programme gratuit de
Horst Schaeffer "Inifile" (voyez : http://www.horstmuc.de/wbat32.htm
(*12)).
Installation
La derniŠre chose qui reste … faire est de charger les pilotes lors du
d‚marrage. Donc modifiez vos fichiers systŠme pour qu'ils contiennent
les lignes suivantes :
--- FDCONFIG.SYS (FreeDOS) ---
--- ou CONFIG.SYS (MS DOS/autre DOS) ---
DEVICEHIGH=C:\NET\PROTMAN.DOS /I:C:\NET
DEVICEHIGH=C:\NET\EL3C574.DOS
DEVICEHIGH=C:\NET\DIS_PKT.DOS
Le paramŠtre "/I" indique au gestionnaire de protocole l'emplacement
de PROTOCOL.INI. Cela n'est pas n‚cessaire si tous les deux sont dans
le mˆme r‚pertoire.
--- AUTOEXEC.BAT ---
C:\NET\NETBIND.COM
Notez que NETBIND.COM ne peut pas ˆtre charg‚ dans la m‚moire haute et
devrait simplement ˆtre ex‚cut‚ depuis AUTOEXEC.BAT. Si vous tentez de
le charger comme un pilote, il quittera avec le message "run-time
error R6009 - not enough space for environment", c'est-…-dire "erreur
d'ex‚cution R6009 - pas assez d'espace pour l'environnement".
Red‚marrage
C'est tout. Red‚marrez le systŠme et utilisez une application TCP/IP
simple comme ping pour tester si tout marche correctement.
(Image : Messages d'amor‡age de 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
et: 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
et: https://archive.org/download/ftp.microsoft.com/ftp.microsoft.
com.zip/ftp.microsoft.com%2Fbussys%2FClients%2FMSCLIENT%2FDSK3-2.
EXE
et: http://download.amd.com/techdownloads/wfw31.zip
et: https://archive.org/download/ftp.microsoft.com/ftp.microsoft.
com.zip/ftp.microsoft.com%2FSoftlib%2FMSLFILES%2FWG1049.EXE
et: https://archive.org/download/ftp.microsoft.com/ftp.microsoft.
com.zip/ftp.microsoft.com%2FSoftlib%2FMSLFILES%2FNETSHAR.EXE
et: https://jeffpar.github.io/kbarchive/kb/121/Q121086/
et: 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 © 2007 Ulrich Hansen, Mainz (Allemagne), modifi‚ en 2010
par W. Spiegl.
Traduit en 2020 par Berki Yenign.
Pour plus d'informations, voyez ici.
La permission est accord‚e de copier, distribuer et/ou modifier ce
document selon les termes de la licence de documentation libre GNU,
version 1.2 ou toute version ult‚rieure publi‚e par la Free Software
Foundation.
Une copie de la licence est incluse dans la section intitul‚e
"GNU Free Documentation License 1.2".