Több ethernet kártya a Linux alatt - Mini HOGYAN


Don Beckerbecker@cesdis.gsfc.nasa.gov

Ez csak egy rövid kis ismertető arról, hogy miként konfiguráljunk egy Linux rendszert, hogy több ethernet adatpert is felismerjen.

A legtöbb ember egy szabványos, ,,hétköznapi'' Linux disztribúciót használ. A legtöbb esetben elég a következő sort hozzátenni a /etc/lilo.conf fájlod elejére és ezután újrafuttatni a ,,lilo''-t:

    append = "ether=0,0,eth1"

Ez minden amit tenned kell. A legközelebbi bootoláskor a Linuxnak fel kellene ismernie a második ethernet kártyádat.


1. Mit és hogyan tettél az imént

Alapértelmezésben egy szokványos (szabványos) Linux kernel csak egyetlen ethernet kártya után kutat, majd miután talált egyet, felfüggeszti a kutatást. Három pontosan meghatározott útja van annak, hogy rávegyünk egy kernelt, hogy kutasson a további kátyák után. Emelkedő sorrendben a nehézség és a tartósság szerint:

  • Bootidő alatti paraméterátadás a kernelhez.
  • A bootbetöltő beállítása úgy, hogy mindíg átadja az adott a paramétereket.
  • A kernel hálózatikártya-leprobáló táblájának megváltoztatása a drivers/net/Space.c fájlban.

A legtöbb ember számára a második módszer a legmegfelelőbb és ezt ismertetjük az alábbiakban.


2. Paraméterek kapcsolása a bootbetöltőhöz (boot loader)

A következő instrukciók azt feltételezik, hogy a tisztelt olvasó a szabványos Linux bootbetöltőt, azaz a LILO-t használja.

A Linux kernele a bootidő alatt különféle megkapott paramétereket képes értelmezni. A leggyakrabban a konfiguráció olyan speciális esetében használják, amiket nem lehet meghatározni a bootolás ideje alatt. Hálózati adapterek esetében a következő paramétereket ismeri fel:

    ether=<IRQ>,<IO-CÍM>,<PARAMÉTER_1>,<PARAMÉTER_2>,<NÉV>

Az érvényes numerikus értékek lehetnek decimális, oktális (megelőző ,,0''-val), hexadecimális (megelőző ,,0x'' jelzéssel) formában. Az első nemnumerikus argumentum az eszköz nevét fogja megadni. Az üres argumentumokat 0 értékkel kell megadni és bármilyen - a név előtti - hiányzó argumentum változatlan marad.

IRQ
    Ez a bejegyzés határozza meg, hogy mely IRQ érték lesz beállítva (az alaplapon szoftveresen beállítható IRQ értékek) vagy használva (az alaplapon jumpereken keresztül beállított IRQ értékek). A ,,0'' érték azt jelenti, hogy az IRQ rész az alaplapi értékekből legyen kiolvasva (amennyiben ez lehetséges) vagy használja az autoIRQ beállítás lehetőségét, ha az alaplap nem tartalmazza az IRQ érték kiolvashatóságának lehetőségét.
IO-CÍM
    Ez a bejegyzés egy egyszerű alap I/O címet határoz meg a tesztelésre. A ,,0'' érték valamennyi lehetséges I/O cím vizsgálatát jelenti.
    Normális esetben egy I/O címfenntartási terület (I/O region reservation map) használt annak eldöntésére, hogy mely címterület kerüljon tesztelésre. Ez a címtár figyelmen kívűl helyezhető, ha egy I/O cím meg van adva. Ez engedélyezhető a "reserve=," paraméterrel, amellyel kizárható más eszközök tesztelése az adott IO címrégióban.
PARAMÉTER_1, PARAMÉTER_2
    Eredetileg ezek a bejegyzések arra voltak hivatottak, hogy meghatározzák az olyan adapterek memória címét, amelyek osztott memóriát (shared memory) használnak, mint például a WD8013. Ez idő alatt kiterjesztett módon látnak el más eszközspecifikus információkat.
NÉV
    Az előredefiniált eszközmeghajtó neve. A szokványos kernel mindenképpen értelmezi az ,,eth0'', ,,eth1'', ,,eth2'', ,,eth3'' értékeket. Más eszköz nevek (mint például a PPP, SLIP, vagy a pocket ehternet eszközmeghajtó) is létezhetnek, ám ezeknek ettől eltérő a szemantikája.

A LILO bootbetöltőn keresztül két féle módon kapcsolhatjuk ezeket a bootidejű paramétereket a kernelhez. A legáltalánosabb útja annak, hogy ezt megtegyük az, ha begépeljük rögtön azután, hogy megadtuk a bootimage nevét. A következő példában engedélyezzük mind a négy lehetséges szlot tesztelését.

Természetesen egy kissé komplikált ezt begépelni minden egyes bootoláskor és lehetetlenné tenné az olyan bootolási eseteket, amikor nem szükséges ott lennie valakinek, hogy minden egyes alkalommal begépelje a kívánt paramétereket. A kernelparaméterek használatát állandósíthatjuk, hozzáadva egy ,,append'' sort a LILO konfigurációs fájlunkhoz, /etc/lilo.conf, és lefuttatva a LILO-t, hogy ezáltal installáljuk a frissített beállításokat.


3. A kernel megváltoztatása

Amennyiben lehetséges konfigurálni a rendszert a kernelforrás megváltoztatása nélkül, javasolt, hogy inkább ezt az utat használjuk. A kernelforrás megváltoztatása hivatalosan nem dokumentált és kernelfrissítéskor (kernel upgrade) különleges nehézségeket eredményez. Ennek ellenére következzen néhány példa, amikor szükséges lehet a megvalósítása:

Ha eldöntötted, hogy ezt az utat fogod járni, módosítsd az eszközlistát a driver/net/Space.c fájlban beillesztve abba az általad kívánt értékeket. Amennyiben szükséges hozzáadni egy új eszközt ügyelj arra, hogy fenntartsd a megkötéseket: használd az irányelvekben megadott meglévő listabejegyzéseket.


4. Speciális megjegyzések, speciális eszközök tesztelésekor

LANCE/PCNET KÁRTYÁK
    A LANCE eszköz speciális alacsony-memóriatartományú DMA puffereket igényel és ezért a LANCE tesztelése eltérően és korábban megy végbe, mint más egyéb hálózati eszközök ,,lepróbálása''. Mindezek tetejében figyelmen kívűl hagyhatod ezt a részt, mert több LANCE kártya tesztelése automatikusan megtörténik. Ám a LANCE eszköz (még!) nem használ LILO paramétereket (például IRQ).
A 3C509 KÁRTYA ISA MÓDBAN
    A 3C509 kártyának van egy egyedi lehetősége, amely lehetővé teszi teljesen megbízhatóvá tenni az ISA busz tesztelését. Mindez nagyon jó, csak szerencsétlenségre ennek az eljárásnak a használata nem keverhető jól a további tesztelésekkel.

    A legfigyelemreméltóbb szempont az, hogy nehéz megjósolni a priori módon (a megtapasztalást megelőzően..:-), hogy melyik kártya kerül elfogadásra ,,először'' - ennek sorrendje a a hardver ethernet címén alapul. Ez azt jelenti, hogy a legalacsonyabb ethernet című kártya lesz kijelölve az ,,eth0'' értékhez, majd a következő az ,,eth1'' értékhez,...stb. Amennyiben az ,,eth0'' értékű ethernet kártyát eltávolítjuk, a maradék valamennyi kártya lefelé tolódik egy számértéket.

    A fent említett szemponthoz kapcsolódik még az, hogy lehetetlen egy ,,korábbi'' kártyát letiltott (disabled) módban hagyni, valamint az, hogy a kártya engedélyezése egy adott címen és IRQ értéken különbözik attól, ha ez EEPROM-ot szeretnénk beállítani, vagy ha a kártyát egy speciális címen szeretnénk engedélyezni.

AZ EISA 3C579 ÉS A 3C509 EISA MÓDBAN
    Az 1.1.25-ös verzió előtti kernelek nem tökéletesen tesztelik le a töbszörös EISA-modú (multiple EISA-mode) kártyákat. Ha több ,,ethN'' bejegyzés van meghatározva *ugyanahhoz* a 3c5*9 kártyához, akkor azokat nem egyszerre, hanem egymás után fogja megtalálni. Az elkerülô megoldás világosan meghatározza a szlot-alapú I/O címet. Az 1.1.25-ös verzió utáni kernelek már helyesen fogják keresni a többszörös (multiple) EISA-módú kártyákat, és folytatják a keresést a további ISA-módú adapterek után, miután már valamennyi potenciális EISA-módú címterület leellenőrzésre került.



Szerző: Donald Becker,becker@cesdis.gsfc.nasa.gov

A HOGYAN másolásával kapcsolatos jogokat a következő lapon találod:

http://sunsite.unc.edu/mdw/HOWTO/HOWTO-INDEX-6.html

Magyar fordítás: Murzsa Norbert,kuksi@igyuk.hu