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".