becker@cesdis.gsfc.nasa.gov
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.
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 :
drivers/net/Space.c
(et recompiler le noyau
apr�s coup).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.
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.
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.
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 :
eth0
� eth3
sont d�finies dans le source
drivers/net/Space.c
) ;
eth
x.
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.
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.
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 eth
x 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