10. Questions diverses.

Contenu de cette section

Tout ce qui se rapporte à Ethernet et qui ne rentrait pas ailleurs a fini ici. Cela n'est peut-être pas intéressant ou ne rentre pas bien dans le cadre du document, mais c'est là, un point c'est tout.

10.1 Passage des arguments Ethernet au noyau

Voici deux commandes génériques du noyau qui peuvent être passées au noyau au moment du démarrage. Vous pouvez le faire avec LILO, loadlin, ou tout autre utilitaire de démarrage qui accepte des arguments optionnels.

Par exemple, si la commande était `blabla' et qu'elle attend trois arguments (disons 123, 456 et 789), alors, avec LILO, vous pouvez taper au démarrage:

LILO: linux blabla=123,456,789

Note: les E/S et les IRQ des cartes PCI sont assignées par le BIOS au démarrage. Cela signifie que tout argument de démarrage pour l'IRQ ou les ports d'entrée/sortie d'une carte PCI est généralement ignoré.

Pour plus d'information sur les (et une liste complète des) arguments de démarrage, veuillez consulter le

BootPrompt-HOWTO

La commande ether

Sous sa forme la plus générique, elle ressemble à quelque chose comme:

ether=IRQ,ADR_DE_BASE,PARAM_1,PARAM_2,NOM

Tous les arguments sont optionnels. Le premier argument non-numérique est considéré comme le NOM.

IRQ: Evident. Une valeur d'IRQ de `0' (habituellement la valeur par défaut) signifie affectation automatique de l'IRQ. C'est un accident de l'Histoire que le paramètre d'IRQ soit en premier plutôt que l'adr_de_base -- cela sera corrigé lorsque quelque chose d'autre changera.

ADR_DE_BASE: Evident aussi. Une valeur de `0' (habituellement la valeur par défaut) signifie de tester une liste d'adresses spécifiques à ce type de carte pour essayer de détecter une carte Ethernet.

PARAM_1: Utilisé à l'origine comme une valeur qui passe outre l'adresse de départ de la zone mémoire pour une carte Ethernet à mémoire partagée, comme la WD80*3. Certains pilotes utilisent les quatre bits de poids faible de cette valeur pour fixer le niveau de message de débogage. 0 -- défaut, 1-7 -- niveaux 1 à 7 (7 étant le niveau le plus bavard), 8 -- niveau 0 (pas de messages). Le pilote LANCE utilise les quatre bits de poids faible de cette valeur pour sélectionner le canal DMA. Sinon il utilise l'affectation automatique du DMA.

PARAM_2: Le pilote 3c503 l'utilise pour choisir entre le transceiver interne et le transceiver externe. 0 -- défaut/interne, 1 -- AUI externe. Les cartes E21XX de Cabletron utilisent les quatre bits de poids faible de PARAM_2 pour choisir le support physique. Sinon il est détecté automatiquement.

NOM: Sélectionne le périphérique réseau auquel les valeurs se réfèrent. Le noyau standard utilise les noms `eth0', `eth1', `eth2' et `eth3' pour les cartes Ethernet attachées au bus, et `atp0' pour l'adaptateur `de poche' sur port parallèle. Le pilote ARCnet utilise le nom `arc0'. Le comportement par défaut est de tester une seule carte Ethernet pour `eth0'. Vous ne pouvez activer plusieurs cartes qu'en fixant de façon explicite leur adresse de base avec les paramètres de LILO. Le noyau 1.0 considérait les cartes Ethernet basées sur la puce LANCE comme un cas spécial. Les arguments de LILO étaient ignorés, et les cartes LANCE recevaient toujours des noms `eth<n>' en commençant à `eth0'. Les cartes supplémentaires, non-LANCE, devaient être affectées à `eth<n+1>', et le test habituel de `eth0' devait alors être désactivé avec quelque chose comme `ether=0,-1,eth0'. (Oui, c'est bogué.)

La commande reserve

Cette autre commande LILO est utilisée exactement comme la commande `ether=' ci-dessus, c'est-à-dire que l'on ajoute son nom aux options spécifiées dans lilo.conf:

reserve=IO-base,extent{,IO-base,extent...}

Sur certaines machines, il peut être nécessaire d'empêcher les pilotes de périphérique de tester des périphériques (auto-détection) dans une zone spécifique. Cela peut être le cas à cause d'un matériel mal conçu qui fige le démarrage (comme certaines cartes Ethernet), d'un matériel qui est identifié par erreur, d'un matériel dont l'état a été changé par une procédure de détection précédente, ou plus encore d'un matériel que vous ne souhaitez pas voir initialisé par le noyau.

L'argument de démarrage reserve répond à cette attente en spécifiant une région de port d'E/S qui ne doit pas être testée. Cette région est réservée dans la table d'enregistrement des ports du noyau comme si un périphérique avait déjà été trouvé dans cette région. Notez que ce mécanisme ne devrait pas être nécessaire sur toutes les machines. C'est seulement lorsqu'il y a un problème ou un cas spécial que son utilisation peut se révéler nécessaire.

Les ports d'E/S dans la zone spécifiée sont protégés contre les procédures de détection de périphériques. Nous avons montré que cela est nécessaire lorsqu'un pilote se bloque sur une carte NE2000, ou identifie de façon erronée un autre périphérique comme étant le sien. Un pilote de périphérique correct ne devrait pas tester une zone réservée, à moins qu'un autre argument de démarrage ne spécifie explicitement qu'il doive le faire sur cette zone. Cela implique que reserve sera le plus souvent utilisé avec un autre argument de démarrage. Donc si vous spécifiez une zone de reserve pour protéger un périphérique donné, vous devez généralement spécifier explicitement une détection pour ce périphérique. La plupart des pilotes ignorent la table d'enregistrement des ports si on leur fournit une adresse explicite.

Par exemple, la ligne de démarrage

LILO: linux reserve=0x300,32 ether=0,0x300,eth0

oblige tous les périphériques à l'exception des pilotes Ethernet à ne pas tester la plage 0x300-0x31f.

Comme d'habitude avec les spécificateurs de démarrage, il existe une limite de 11 paramètres, donc vous ne pouvez spécifier que 5 zones réservées par mot-clé reserve. Plusieurs spécificateurs reserve fonctionneront si vous avez une requête inhabituellement compliquée.

10.2 Utilisation des pilotes Ethernet comme modules

Consultez la page de manuel de insmod(8) pour des informations sur le passage des arguments au module lors de son chargement. La commande lsmod vous montrera quels modules sont chargés, et rmmod les supprimera.

Actuellement, tous les modules sont placés dans le sous-répertoire modules dans votre arborescence du noyau Linux (en général sous la forme de liens symboliques). Pour générer réellement les modules, vous devez taper make modules après avoir fini de construire correctement le noyau. Les versions antérieures du noyau les compilaient automatiquement, ce qui n'était pas sympa pour ceux qui compilent sur des machines 386sx-16 avec 4Mo.

La plupart des modules acceptent des arguments comme io=0x340 et irq=12 sur la ligne de commande d'insmod. Il est FORTEMENT RECOMMANDÉ que vous fournissiez ces paramètres pour éviter la détection automatique de la carte. A la différence des périphériques PCI et EISA, il n'existe pas de moyen vraiment sûr de réaliser une détection automatique des périphériques ISA, et cela doit donc être évité quand on utilise les pilotes sous la forme de modules chargeables.

Une liste de tous les paramètres que chaque module accepte peut être trouvée dans le fichier:

/usr/src/linux/Documentation/networking/net-modules.txt

Vous avez intérêt à le lire pour trouver quelles options vous pouvez utiliser pour votre carte spécifique.

Une fois que vous avez deviné les arguments (les options) que vous allez utiliser, vous pouvez insérer le module en tapant sous root:


        insmod mod_name.o [io=val1[,val2,...]] [irq=val7[,val8,...]]

Les listes de valeurs séparées par des virgules sont utilisées pour des modules qui sont capables de prendre en charge plusieurs périphériques depuis un seul module, comme c'est le cas pour tous les pilotes 8390, et le pilote PLIP.

Une fois qu'un module a été inséré, vous pouvez l'utiliser comme d'habitude, et exécuter des commandes ifconfig. Si vous configurez le réseau au démarrage, assurez-vous que vos fichiers /etc/rc* exécutent la(les) commande(s) insmod avant d'arriver à la commande ifconfig.

Notez aussi qu'un module occupé ne peut pas être supprimé. Cela signifie que vous devez faire un ifconfig eth0 down (désactiver la carte Ethernet) avant de pouvoir supprimer le(s) module(s).

Cartes basées sur le 8390 comme modules

La liste courante des pilotes basés sur le 8390 est: 3c503, ac3200, e2100, hp, hp-plus, ne, smc-ultra and wd. Ces cartes n'étaient pas disponibles comme modules pour les versions du noyau antérieures à la 1.3.42 (cela n'inclut pas certains des pilotes PCMCIA distribués séparément (par exemple le de-650) qui sont aussi basés sur le 8390, mais qui étaient disponibles sous la forme de modules depuis déjà quelques temps.)

Si vous avez une carte basée sur la puce 8390, vous devrez insérer deux modules, 8390.o puis ensuite le module pour votre carte. Si le support pour le 8390 a été intégré dans votre noyau, vous n'aurez alors pas besoin d'insérer le module 8390. (Le support 8390 est intégré dès qu'une carte basée sur le 8390 doit être intégrée dans le noyau.) Un petit cat /proc/ksyms | grep 8390 vous dira si le support 8390 est présent dans votre noyau.

Pour une carte basée sur le 8390, vous devrez supprimer le module de la carte avant de supprimer le module 8390, puisque le module 8390 est utilisé par le module de la carte, et donc marqué comme occupé (busy, en anglais).

La série des pilotes réseaux permet maintenant d'utiliser des systèmes à plusieurs cartes sans charger plusieurs fois le même module (efficacité en occupation mémoire!). Pour cela, spécifiez plusieurs valeurs séparées par des virgules, comme dans:


        insmod 3c503.o io=0x280,0x300,0x330,0x350 xcvr=0,1,0,1

La commande ci-dessus permet à un seul et même module de contrôler quatre cartes 3c503, les cartes 2 et 4 utilisant le transceiver externe.

Il est *FORTEMENT RECOMMANDE* que vous fournissiez io= au lieu d'utiliser la détection automatique. Si un argument io= n'est pas fourni, alors les pilotes ISA 8390 indiqueront que la détection automatique n'est pas récommandée, et feront, à contrecoeur et parce qu'il le faut, la détection pour une *SEULE CARTE* -- si vous voulez utiliser plusieurs cartes vous *devez* fournir un argument io=0xNNN,0xQQQ,....

Le module ne est une exception à ce qui précède. Une carte NE2000 comporte essentiellement une puce 8390, un bus de liaison et un peu de RAM. A cause de cela, la procédure de détection de ne est plus envahissante que les autres, et c'est pour cela qu'au démarrage nous nous assurons que la détection de ne est faite en dernier parmi les cartes à base de 8390 (afin qu'elle ne marche pas sur les platebandes d'autres cartes à base de 8390). Avec les modules, nous ne pouvons pas assurer que toutes les cartes à base de 8390 non-ne ont déjà été trouvées. Par conséquent, le module ne NÉCESSITE qu'un argument io=0xNNN lui soit passé via insmod. Il refusera de pratiquer une détection automatique.

Il faut aussi noter que l'affectation automatique des IRQ (``auto-IRQ'') n'est pas aussi sûre durant l'agitation qui règne au niveau de l'activité des interruptions sur une machine en ordre de marche. Des cartes comme la NE2000 qui ne peuvent obtenir la configuration de leur IRQ depuis une EEPROM ou un registre de configuration se comporteront mieux si on leur fournit aussi un argument irq=M. Le fichier

/usr/src/linux/Documentation/networking/net-modules.txt
donne aussi la liste des façons dont la configuration des interruptions est déterminée pour les différentes cartes si une valeur irq=N n'est pas donnée.

10.3 Les listes de diffusion et les groupes de news Linux

Si vous avez des questions sur votre carte Ethernet, s'il vous plaît LISEZ ce document en premier. Vous pourrez aussi joindre le canal NET (réseau) des listes de diffusion Linux en envoyant un message à majordomo@vger.rutgers.edu pour obtenir de l'aide sur les listes disponibles et la façon de les rejoindre. (NDT: envoyez un message contenant simplement le mot "help" à l'adresse indiquée.)

Bien plus, gardez à l'esprit que le canal NET ne concerne que les discussions sur le développement logiciel. Les questions générales concernant la configuration de votre système doivent être dirigées vers comp.os.linux.setup à moins que vous ne soyez activement impliqué(e) dans le développement d'une partie du réseau pour Linux. Nous vous demandons s'il vous plaît de respecter cette ligne de conduite générale pour le contenu de vos messages.

D'autre part, les groupes de news comp.sys.ibm.pc.hardware.networking et comp.dcom.lans.ethernet doivent être utilisés pour des questions qui ne sont pas spécifiques à Linux.

10.4 Autres documents

La plupart des informations que vous trouvez dans ce document proviennent de messages sauvegardés des groupes de comp.os.linux.*, ce qui montre qu'il s'agit d'une source d'informations valable. D'autres informations très utiles proviennent de tout un tas de petits fichiers de Donald lui-même.

Bien entendu, si vous configurez une carte Ethernet, vous voudrez configurer les logiciels que vous allez utiliser, et vous lirez pour cela le Howto NET-3. Ou encore, si vous vous sentez pousser des ailes de ``hacker'', vous pourrez toujours grapiller des informations supplémentaires directement dans les fichiers sources des pilotes. Ils comportent en général un paragraphe ou deux qui décrit les points importants, avant que le code ne démarre...

Pour ceux d'entre vous qui recherchent des informations qui ne sont pas spécifiques à Linux (comme: qu'est-ce que 10BaseT, qu'est-ce qu'AUI, que fait un hub, etc.) je vous recommande fortement la FAQ Ethernet (Ethernet-FAQ) qui est postée régulièrement dans le groupe de news comp.dcom.lans.ethernet. Vous pouvez aussi la récupérer sur tout site qui offre les FAQ, comme

Les FAQ de Usenet

Vous pouvez aussi consulter la `Page d'accueil d'Ethernet' pour ainsi dire, qui se trouve à l'URL suivante:

La page d'accueil d'Ethernet

10.5 Contributions

D'autres personnes qui ont contribué (directement ou indirectement) à l'Ethernet-HOWTO, par ordre alphabétique:

        Ross Biro               <bir7@leland.stanford.edu>
        Alan Cox                <iialan@www.linux.org.uk>
        David C. Davies         <davies@wanton.enet.dec.com>
        Bjorn Ekwall            <bj0rn@blox.se>
        David Hinds             <dhinds@allegro.stanford.edu>
        Michael Hipp            <mhipp@student.uni-tuebingen.de>
        Mike Jagdis             <jaggy@purplet.demon.co.uk>
        Duke Kamstra            <kamstra@ccmail.west.smc.com>
        Russell Nelson          <nelson@crynwr.com>
        Cameron Spitzer         <camerons@NAD.3Com.com>
        Dave Roberts            <david.roberts@amd.com>
        Glenn Talbott           <gt@hprnd.rose.hp.com>

Ces adresses de courrier électronique ne sont intentionnellement pas des liens `mailto' afin de protéger ces personnes de programmes de filtrage WWW qui alimentent des robots `spammeurs'. Mille fois merci à ces personnes, et à tous les autres testeurs non-mentionnés d'où qu'ils soient.

10.6 Désistement de responsabilité et Copyright

Ce document n'est pas la bible. Toutefois, il s'agit certainement de la source d'informations la plus à jour que vous pourrez trouver. Personne n'est responsable de ce qui arrive à votre matériel hormis vous-même. Si votre carte Ethernet ou tout autre pièce matérielle de votre ordinateur part en fumée (...bien que ce soit pratiquement impossible!) nous ne prenons aucune responsabilité. LES AUTEURS NE SONT RESPONSABLES D'AUCUN DOMMAGE ENCOURU DU FAIT D'ACTIONS PRISES BASEES SUR LES INFORMATIONS COMPRISES DANS CE DOCUMENT.

Ce document est Copyright (c) 1993-1997 by Paul Gortmaker. Il est permis de faire et de distribuer des copies verbatim de ce manuel à condition que la notice de copyright et que cette notice de permission soient préservées dans toutes les copies.

Il est permis de copier et de distribuer des versions modifiées de ce document sous les mêmes conditions que la copie verbatim, à condition que cette notice de copyright soit incluse exactement telle qu'elle est dans l'original, et que le travail dérivé résultant, dans son intégralité, soit distribué sous les termes d'une notice de permission identique à celle-ci.

Il est permis de copier et de distribuer des traductions de ce document dans d'autres langues, sous les mêmes conditions que ci-dessus pour les versions modifiées.

Si vous avez l'intention d'intégrer ce document dans un travail destiné à la publication, contactez-moi (par courrier électronique) afin de pouvoir obtenir les informations les plus à jour possible. Par le passé, des versions dépassées des documents Linux HOWTO ont été publiées, causant aux développeurs le préjudice indu d'être empoisonnés par des questions dont les réponses figuraient déjà dans les versions à jour.

En accord avec cette notice, la version originale (en anglais) telle qu'elle apparaît dans l'Ethernet-HOWTO est fournie ici:

This document is not gospel. However, it is probably the most up to date info that you will be able to find. Nobody is responsible for what happens to your hardware but yourself. If your ethercard or any other hardware goes up in smoke (...nearly impossible!) we take no responsibility. ie. THE AUTHORS ARE NOT RESPONSIBLE FOR ANY DAMAGES INCURRED DUE TO ACTIONS TAKEN BASED ON THE INFORMATION INCLUDED IN THIS DOCUMENT.

This document is Copyright (c) 1993-1997 by Paul Gortmaker. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copying, provided that this copyright notice is included exactly as in the original, and that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this document into another language, under the above conditions for modified versions.

If you are intending to incorporate this document into a published work, please make contact (via e-mail) so that you can be supplied with the most up to date information available. In the past, out of date versions of the Linux HowTo documents have been published, which caused the developers undue grief from being plagued with questions that were already answered in the up to date versions.

Ce document fait partie des HOWTO Linux traduits en français. Vous pouvez trouver une liste à jour de ces documents à l'adresse http://www.freenix.fr/linux/HOWTO/Liste-des-HOWTO.html

Les HOWTO Linux font partie du Linux Documentation Project (LDP). Si vous souhaitez participer au LDP ou à sa traduction en français, vous pouvez consulter http://www.freenix.fr/linux/HOWTO/Liste-des-HOWTO.html ou contacter Eric Dumas, dumas@linux.eu.org.

Cette version française a été réalisée par Stéphane Alnet <alnet@u-picardie.fr>. Elle est Copyright (c) 1997, Stéphane Alnet, selon les termes de la notice ci-dessus.

Si vous constatez des erreurs dans la traduction en français, merci d'en informer le traducteur. Vos remarques seront prises en compte pour la prochaine version de la traduction.

10.7 Conclusion

Si vous avez trouvé une faute de frappe énaurme, ou des informations dépassées dans ce document, merci d'envoyer un courrier électronique. Il a tendance à devenir grand, et il est facile de rater certaines choses. Si vous avez envoyé un courrier à propos d'une modification, et qu'elle n'a pas été incluse dans la version suivante, n'hésitez pas à la ré-envoyer, car elle a pu se perdre dans le flot habituel de SPAM et de prospectus.

Merci!


Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre