Page suivante Page précédente Table des matières

9. Connexion PLIP entre Dos et Linux

Après la première version de ce Mini-HOWTO, plusieurs personnes m'ont écrites pour avoir des informations au sujet de la connexion entre une machine sous Linux et une autre sous Dos (ou Windows). Cet intérêt me conduit donc à ajouter cette section qui, je l'espère, viendra en aide à chacun.

Cette section provient d'un article que j'ai trouvé dans la Linux Gazette dont l'auteur est James McDuffie mcduffie@scsn.net. Il couvre l'installation de base d'une connexion PLIP entre deux machines, l'une sous Linux, l'autre sous Dos utilisant Windows et Trumpet Winsock. Il donne aussi l'adresse d'un programme intéressant qui permet d'ouvrir des fenêtres X-Window sous Windows.

La partie suivante est un ensemble de notes envoyées par James Vahn jvahn@short.circuit.com où il décrit en profondeur comment installer cette connexion et comment résoudre plusieurs problèmes.

Pour toute question au sujet de cette section, s'il vous plait contactez James Vahn, pas moi.

9.1 Configuration d'une connexion entre Dos et Linux

Je suppose que vous avez déjà installer correctement le support PLIP du coté de la machine Linux et que vous avez le bon câble. Sinon retournez aux chapitres précédents.

Maintenant, du coté du Dos, vous avez, avant tout, besoin d'un pilote de paquets Ethernet. Vous pouvez en trouver un à cette adresse :

ftp://ftp.crynwr.com/drivers/plip.zip

Le programme s'exécute sous Dos et joue le rôle d'un pilote de paquets Ethernet. Si vous voulez utiliser PLIP sous Windows, vous avez également besoin de Trumpet Winsock. Il sert d'interface TCP/IP. Sinon, vous pouvez probablement trouver un logiciel TCP/IP pour Dos.

Maintenant retournez à l'ordinateur sous Linux et ajoutez l'adresse de l'ordinateur sous Dos dans le fichier /etc/hosts. Si votre machine Dos n'a pas de d'adresse IP enregistrée, vous pouvez choisir n'importe quelle adresse (Rappelez vous toutefois l'avertissement de la section Configuration des fichiers au sujet des adresses IP).

Supposons que vous choisissez le nom linux pour la machine sous Linux et dos pour la machine sous Dos. Vous devez taper :

ifconfig plip1 linux pointopoint dos arp up
route add dos

Bien sûr si vous voulez que ce soit fait à chaque démarrage de Linux, vous devez ajouter ces lignes dans le fichier /etc/rc.d/rc.inet :


/sbin/ifconfig plip1 linux pointopoint dos arp up
/sbin/route add dos

Ces lignes configurent l'interface et lui ajoutent ensuite une route. Bien sûr, si vous utilisez le second port parallèle, vous devez écrire plip2 à la place de plip1.

Retournez à la machine sous Dos/Windows et éditez le fichier autoexec.bat, vous devez ajouter les lignes suivantes :


c:\plip\plip.com 0x60
c:\tcpip\winsock\winpkt.com 0x60

Je suppose que vous avez mis plip.com (le pilote de paquets) dans le répertoire c:\plip et winpkt.com dans c:\tcpip, sinon vous devez mettre le bon chemin.

Ces lignes configurent le programme plip.com sur le vecteur de paquets 0x60 et chargent ensuite le programme winpkt.com qui vient sur le même vecteur que le programme Trumpet Winsock. Si le câble est sur un autre port que LPT1, vous devrez donner à plip.com le numéro d'IRQ et l'adresse d'E/S. Pour que le programme winpkt.com puisse tourner, Windows doit avoir accès au vecteur de paquets. A partir de maintenant, nous allons sous le programme de configuration de Trumpet Winsock. Vous n'avez qu'à désélectionner SLIP ou PPP et d'entrer 60 dans la boîte nommé Packet vector. Puis indiquez lui l'adresse IP que vous donnez à la machine sous Dos, celle de l'ordinateur sous Linux comme la passerelle par défaut et le Serveur de Nom comme l'IP de votre ordinateur, ou votre adresse d'ISP pour son serveur de nom (si vous allez vous connecter à l'Internet, voir ci-dessous). Fermez le programme de configuration, relancez Winsock, et ce devrait être bon ! Mettez Winsock dans le groupe de démarrage et il se lancera automatiquement à chaque démarrage de Windows.

Si vous voulez accéder à l'Internet à partir de la machine sous Windows, par l'intermédiaire de la machine sous Linux, vous avez besoin de configurer l'IP Masquerading. Pour plus d'informations dessus, lisez NET-2-HowTo. Votre ordinateur sous Windows utilise l'adresse IP de la machine sous Linux.

J'ai aussi trouvé un programme qui vous permet de lancer de programmes X-Window sous Windows ! Il se trouve à l'adresse http://www.tucows.com/.

Configurez-le en fonction des directions, puis vous n'avez plus qu'à faire un telnet depuis votre machine Windows et rediriger l'affichage sur votre machine (DISPLAY=duncan:0.0 par exemple). Vous pouvez alors lancer le programme désiré.

Il n'y a rien de plus sympa que de faire tourner xv sous Windows ! J'espère que tout ceci vous a aidé.

9.2 Expérience pratique de connexion PLIP entre Dos et Linux

NB : J'ai reçu ce document de James Vahn jvahn@short.circuit.com et je le mets ici sans le modifier. Ainsi, pour les questions au sujet de cette section, il est beaucoup plus qualifié que moi. Il vaut donc mieux le contacter par courrier électronique. Son expérience de connexion PLIP entre un ordinateur sous Dos n'ayant qu'un lecteur de disquettes et une machine sous Linux est le parfait exemple de la manière d'aborder les problèmes couramment rencontrés.

Dernière mise à jour : 11 juillet 1996

Ma machine Dos qui ne possède qu'un lecteur de disquette est en réseau par une connexion PLIP sur le deuxième port parallèle sur la machine Linux. Une imprimante est branchée sur le premier port parallèle. Les deux machines sont connectées en permanence et la machine sous Dos effectue un telnet sur Linux. Voici mes notes sur ma manière de l'obtenir.

Quand le noyau recherche les ports d'imprimantes, il les récupère tous, à moins que vous ayez spécifier de ne pas en rechercher un. Sinon PLIP ne pourrait pas trouver de port libre. Une méthode consiste à charger les pilotes comme des modules lorsque c'est nécessaire...

gniibe@mri.co.jp écrit :

Je recommande d'utiliser PLIP/LP comme des modules du noyau, pour les raisons suivantes :

Avec PLIP/LP comme modules du noyau, vous pouvez spécifier sur quels ports seront PLIP et LP. Voici un exemple :

# insmod lp.o io=0x378
# insmod plip.o io=0x278 irq=2

Vous pouvez même utiliser deux ports parallèles :

# insmod plip.o io=0x278,0x3bc irq=2,5

Dans l'exemple ci-dessus,

plip0 est placé à l'adresse 0x278 et son IRQ est 2 ;

plip1 est placé à l'adresse 0x3bc et son IRQ est 5.

Les modules semblent apparemment être le meilleur moyen pour utiliser PLIP et LP ensembles. La méthode suivante montre comment installer modifier les sources du noyau afin de permettre à la fois l'imprimante et PLIP sur différents ports sans utiliser de modules. Si vous n'êtes pas familier avec les modules, vous pourrez trouver ça plus rapide à configurer.

Vous aurez besoin de modifier deux fichiers dans l'arborescence des sources du noyau. J'utilise le noyau 1.2.3 et effectuer quelques changements nécessaires dans le fichier ../linux/drivers/net/Space.c pour qu'il soit conforme à mon système. Regardez aux alentours de la ligne 205 (Le numéro de la ligne dépend de la version du noyau. Pour un version plus récente (2.0.30), il faudra regarder autour de la ligne numéro 295 -- NdT.) pour la définitions de PLIP afin d'être sûr que le port et l'IRQ conviennent, et noter quel pilote sera utilisé (plip0, plip1, plip2). Dans mon cas, le port 0x278 utilise l'IRQ 5 (la carte est ainsi configurée), alors que Space.c le définit avec l'IRQ 2. J'ai préféré faire cette modification plutôt que d'ouvrir la machine pour changer les jumpers. L'autre alternative consiste à spécifier l'IRQ dans la ligne de commande de ifconfig, mais le noyau démarrera avec le mauvais IRQ pour PLIP et ce pourrait être ennuyeux pour vous. Ici, ce n'est qu'un simple changement (un seul caractère).

L'étape suivante est la plus délicate :

Dans le fichier ../drivers/char/lp.c, vous trouverez ce qui suit aux alentours de la ligne 35 (Même numéro de ligne pour la version 2.0.30 du noyau -- NdT) :


struct lp_struct lp_table[] = {
    { 0x3bc, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
    { 0x378, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, }, 
/*  { 0x278, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, }, 
 * 0x278 reserved for plip1
 *
 * }; 
 * #define LP_NO 3 
 */
}; 
#define LP_NO 2 

Notez que les changements à faire : une des définitions de port est mise en commentaire. Seulement deux ports sont donc définis. Le port 0x3bc ne fonctionnera probablement pas pour PLIP : la ligne d'IRQ n'est normalement pas conserver sur ces ports, comme on le trouve sur les vieux adaptateurs monochromes (MDA).

Vous avez effectué une sauvegarde de ces fichiers avant les changer, non ? Maintenant, configurez le nouveau noyau avec les supports printer (imprimante), net (réseau), dummy (support fictif) et plip.

Configuration du système. Voici mon fichier /etc/rc.d/rc.inet1 :


#!/bin/bash
#
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0

/sbin/ifconfig dummy 200.0.0.1
/sbin/route add -net 200.0.0.0 netmask 255.255.255.0
/sbin/ifconfig plip1 arp 200.0.0.1 pointopoint 200.0.0.2 up
/sbin/route add 200.0.0.2
/sbin/ifconfig dummy down

Notez que arp est utilisé pour la connexion Dos-Linux et n'est apparemment pas nécessaire pour lors de connexions Linux-Linux.

Ensuite ajoutez dans le fichier /etc/hosts les lignes suivantes, elles assignent un nom à chaque machine :


200.0.0.1       console1
200.0.0.2       console2

La machine Dos porte le nom de console2. Rappelez vous l'avertissement d'Andrea au sujet des IPs : il est préférable d'utiliser les schémas officiels de numérotation.

Redémarrez la machine afin que les changements et le nouveau noyau prennent effet. Pendant la séquence de démarrage (ou en lançant dmesg), vous devez avoir les messages suivants si vous avez utiliser les patches, sinon quand les modules sont chargés :

lp0 at 0x03bc, using polling driver
lp1 at 0x0378, using polling driver
[....]
NET3 PLIP version 2.0 gniibe@mri.co.jp
plip1: Parallel port at 0x278, using assigned IRQ 5.

La commande route affiche alors ceci :

Kernel routing table
Destination     Gateway         Genmask         Flags MSS    Window Use Iface
console2        *               255.255.255.255 UH    1436   0      136 plip1
loopback        *               255.0.0.0       U     1936   0      109 lo

Et la commande ifconfig plip1 affiche :

plip1     Link encap:10Mbps Ethernet  HWaddr FC:FC:C8:00:00:01
          inet addr:200.0.0.1  P-t-P:200.0.0.2  Mask:255.255.255.0
          UP POINTOPOINT RUNNING  MTU:1500  Metric:1
          RX packets:132 errors:0 dropped:0 overruns:0
          TX packets:136 errors:0 dropped:0 overruns:0
          Interrupt:5 Base address:0x278 

Regarder dans le fichier /etc/inetd.conf s'il est possible d'effectuer un telnet. Vous pouvez lire la page de manuel de tcpd, l'utilisation des fichiers /etc/hosts.allow (ALL: LOCAL) et /etc/hosts.deny (ALL: ALL). Vous devriez être capable de faire un telnet sur une machine locale.

Pour Linux c'est fait, voyons maintenant du coté Dos. A nouveau, faites attention au port 0x3bc s'il y en a un présent.

J'utilise le programme telnet de NCSA et le pilote PLIP de Crynwr trouvés sur les sites suivants :

ftp://ftp.ncsa.uiuc.edu/Telnet/DOS/ncsa/tel2308b.zip 
ftp://ftp.crynwr.com/drivers/plip.zip

Soyez sûr que vous utilisez la version 2.3.08 du telnet de NCSA et la version 11.1 du pilote PLIP de Crynwr. S'il vous plaît, lisez le fichier SUPPORT.DOC de Crynwr qui doit se trouver quelque part.

Le fichier CONFIG.TEL : la grande partie du fichier est utilisable par défaut et pour économiser de la place, je n'ai mis ci-dessous que les informations dont vous avez besoins (je l'espère). Le deuxième port sur cette machine est configuré comme 0x278 sur l'IRQ 5.


myip=200.0.0.2 
netmask=255.255.255.0       # masque de reseau
hardware=packet             # ensemble d'adaptation du reseau (interface du pilote de paquets)
interrupt=5                 # IRQ avec laquelle l'adaptateur est configure
ioaddr=60                   # vecteur d'interruption logiciel que le pilote utilise
#
#[...partie inchangee...]
#
# a la fin du fichier, mettez cette ligne :
name=console1 ; hostip=200.0.0.1 ; nameserver=1 ; gateway=1 

(console1 est le nom de la machine Linux, vous pouvez utiliser celui que vous désirez.)

J'ai fabriqué en câble de 3,5 mètre entre les deux machines, et (après m'être aperçu que je n'avais pas fait les bons cablâges) il n'y a eu aucun problème. Un câble standard d'imprimante 11-brins devrait aussi faire l'affaire. Le fichier plip.c des sources de Linux montre le câblage. Bien que mon câble permettent une connexion 17-17, je ne pense pas qu'il soit utilisé pour n'importe quoi et qu'il existe tel quel dans le commerce.


@echo off
plip.com 0x60 5 0x278
telbin -s console1

Les lignes précédentes vous connectent à la machine Linux sur /dev/ttyp. Le programme telnet de NCSA fournit 8 écrans virtuels et aussi agit comme un serveur ftp. L'interface PLIP fournit une assez bonne connexion, j'obtiens un taux de transfert de 6.5Koctets/s sur mes antiquités. J'espère que vous pourrez faire mieux.


Page suivante Page précédente Table des matières