Mini-HOWTO Machines Multi-Ethernet

Don Becker, becker@cesdis.gsfc.nasa.gov

5 août 1995
Ce mini-Howto explique comment configurer Linux pour qu'il reconnaisse plusieurs cartes Ethernet sur une m�me machine.

1. Introduction

Dans le cas de la plupart des distributions classiques de Linux, il suffit d'ajouter la ligne suivante au d�but de votre fichier /etc/lilo.conf et de relancer lilo :

append = "ether=0,0,eth1"

C'est tout ce que vous avez � faire. Lors du prochain red�marrage de la machine, Linux devrait reconna�tre la seconde carte.

2. Les diff�rentes solutions

Par d�faut, le noyau Linux ne recherche qu'une seule carte Ethernet, et ne va pas plus loin d�s qu'il en a trouv� une. Il y a trois fa�ons de contraindre le noyau � rechercher des cartes suppl�mentaires. Par ordre de simplicit� (et de souplesse) croissante :

Dans la plupart des cas, c'est la deuxi�me solution qui convient le mieux, et correspond � ce que nous avons d�crit en introduction. Les deux premi�res solutions reposent sur le passage de param�tres au noyaux et sont d�crites dans la section suivante. La troisi�me solution est d�crite ensuite.

3. Transmettre des param�tres au noyau

Le noyau Linux admet qu'on lui fournisse un certain nombre de param�tres lors de son lancement. Le plus souvent ces param�tres d�crivent des aspects de la configuration qui ne peuvent �tre d�termin�s qu'au moment du d�marrage. Pour les cartes r�seaux, le param�tre est le suivant :

ether=IRQ,adresse-E/S,param1,param2,nom

Les valeurs num�riques admises peuvent �tre exprim�es en d�cimal, en octal (pr�c�d�es par un '0') ou en hexad�cimal (pr�c�d�es par '0x'). Le premier argument qui n'est pas une valeur num�rique est pris comme nom du p�riph�rique (ici une carte r�seau). Les param�tres vides (entre virgules) ont z�ro comme valeur par d�faut, et les param�tres manquants avant le nom ne sont pas modifi�s.

IRQ

Ce param�tre indique l'IRQ (ligne d'interruption) � configurer (pour les cartes admettant un param�trage logiciel de l'IRQ) ou � utiliser (pour celles o� l'IRQ est configur�e avec des cavaliers sur la carte). Une valeur nulle (0) indique de demander � la carte quelle IRQ utiliser (si elle le permet) ou d'utiliser l'autoIRQ si la carte ne le permet pas.

adresse-E/S

Ce param�tre indique l'adresse d'entr�e/sortie � tester. Une valeur nulle (0) demande le test de toutes les adresses d'entr�e/sortie raisonnables. Celles-ci sont d�termin�es d'apr�s une carte des zones d'entr�e/sortie habituelles pour les diff�rents types de p�riph�rique. Cette carte des zones est ignor�e si une adresse d'entr�e/sortie est sp�cifi�e. Utilis� avec le param�tre reserve=base,taille,...

Se reporter � la documentation Lilo.
ceci permet d'emp�cher l'auto-test d'une zone d'entr�e/sortie par d'autres pilotes et d'�viter ainsi le dysfonctionnement d'un p�riph�rique qui se trouverait pertub� par ces tests.

param1,param2

Au d�part, ces param�tres permettaient d'indiquer l'adresse d'une zone de m�moire partag�e pour les cartes qui utilisaient cette technique, comme la WD8013. Leur utilisation a ensuite �t� �tendue � la transmission d'autres informations propres aux diff�rents types de cartes.

nom

Ce param�tre indique le nom d'un p�riph�rique pr�d�fini. Le noyau standard d�finit ainsi au moins "eth0", "eth1", "eth2" et "eth3". D'autres noms peuvent �tre pr�d�finis (pour PPP, SLIP, etc.) mais ils ont une s�mantique diff�rente (pour toute pr�cision, se reporter aux FAQ et HOWTO correspondants).

Deux m�thodes peuvent �tre utilis�es pour fournir ces param�tres au noyau Linux lors de son lancement. La m�thode habituelle est de les indiquer directement apr�s le nom de l'image noyau � charger. L'exemple suivant permet de tester les quatre emplacements possibles :

linux ether=0,0,eth1 ether=0,0,eth2 ether=0,0,eth3

Pour �viter d'avoir � taper ceci � chaque d�marrage, il est plus pratique de configurer votre chargeur.

3.1 Configurer votre chargeur

Il est suppos� dans ce qui suit que vous utilisez le chargeur Linux standard Lilo.

Il est bien �videmment p�nible d'avoir � taper une s�rie de param�tres lors de chaque d�marrage, et de plus cela emp�cherait tout red�marrage involontaire de s'effectuer correctement

Bien que ce type de red�marrage ne se produise pas sous Linux ;-)(N.D.T.).
. L'ajout d'une ligne append � votre fichier de configuration Lilo (/etc/lilo.conf) vous permet de fournir automatiquement ces param�tres au noyau (n'oubliez pas de relancer lilo pour mettre � jour votre configuration).

append = "ether=0,0,eth1 ether=0,0,eth2 ether=0,0,eth3"

Cet exemple est �quivalent au pr�c�dent (test des quatre emplacements), en utilisant cette fois Lilo pour transmettre � chaque d�marrage ces param�tres au noyau.

4. Modifier le noyau

Si vous pouvez configurer votre syst�me sans toucher au code source du noyau, nous vous recommandons fortement de faire ainsi (cf. supra). Il est difficile de garder une trace d'une modification apport�e au code source et cela complique grandement les mises � jour du noyau. Toutefois, cela s'impose dans les situations suivantes :

5. Notes sur la d�tection de quelques cartes particuli�res

5.1 Cartes Lance/PCNET

Le pilote Lance a besoin de tampons DMA en m�moire basse, ce qui fait que la proc�dure de d�tection des cartes Lance est sp�cifique � ce type de cartes, et effectu�e avant la d�tection des autres p�riph�riques r�seaux. L'avantage est que les cartes Lance multiples sont automatiquement d�tect�es par cette proc�dure, l'inconv�nient est que le pilote Lance ignore (pour le moment) les param�tres Lilo telle l'IRQ.

5.2 La 3C509 en mode ISA

La 3C509 pr�sente la caract�ristique unique de permettre une d�tection vraiment s�re par le bus ISA. C'est une caract�ristique int�ressante, mais malheureusement pour les situations qui nous int�ressent ici, cela ne fait pas tr�s bon m�nage avec les autres m�canismes de d�tection.

Le probl�me le plus important est qu'il est difficile de savoir quelle carte sera reconnue en premier, l'ordre d�pendant de l'adresse Ethernet des cartes. Cela signifie que la carte avec l'adresse la plus basse se verra affect�e � eth0, et ainsi de suite. Si la carte correspondant � eth0 est retir�e, toutes les autres cartes voient leur nom de p�riph�rique d�cal� d'une unit� vers eth0.

Un probl�me li� est qu'il n'est pas possible de laisser une premi�re carte inactive, ou une carte active � une adresse ou � une IRQ diff�rentes de celles indiqu�es dans l'EEPROM, ou encore de configurer une carte � une adresse sp�cifique.

5.3 La 3C579 EISA et la 3C509 en mode EISA

Les noyaux de version ant�rieure � la 1.1.25 ne d�tecteront pas correctement les cartes multiples en mode EISA. Si plusieurs p�riph�riques ethx sont indiqu�s, la m�me carte 3C509 sera d�tect�e plusieurs fois. La solution est de sp�cifier l'adresse d'entr�e/sortie directement. Les noyaux de version ult�rieure d�tecteront correctement plusieurs cartes en mode EISA, et d�tecteront aussi des cartes en mode ISA suppl�mentaires, une fois toutes les adresses potentielles de cartes en mode EISA test�es.

Don Becker, becker@cesdis.gsfc.nasa.gov