Im folgenden wird angenommen, daß der Standard Linux-Bootloader LILO benutzt wird.
Der Linux-Kernel kennt viele Parameter, die zur Bootzeit übergeben werden können. Die meisten Parameter spezifizieren Aspekte, die nicht vom Kernel selbstbestimmt werden können. Für Netzwerk-Adapter werden die folgenden Parameter ausgewertet:
ether=<IRQ>,<IO-ADDR>,<PARAM1>,<PARAM2>,<NAME>
Gültige numerische Argumente können als dezimale, oktale (mit führender »0«) oder hexadezimale (mit dem Prefix »0x«) Zahl angegeben werden. Das erste nicht-numerische Argument wird als NAME des Devices genommen. Leere Argumente werden als Null angenommen, und leere Argumente vor dem Namen werden nicht verändert.
Dieser Parameter spezifiziert den IRQ, der gesetzt werden soll, auf Karten, die den IRQ per Software setzen, oder der benutzte IRQ, auf Karten mit gejumperten IRQ. Der Wert »0« bedeutet, daß der IRQ wenn möglich von der Ethernetkarte gelesen werden soll, oder das »autoIRQ« genutzt werden soll, wenn die Netzwerkkarte keine Weg bereitstellt den IRQ zu lesen.
Dieser Parameter legt die Basis-I/O-Adresse fest, auf der nach der Karte gesucht werden soll. Ein Wert von Null sagt, daß alle sinnvollen Adresse getestet werden sollen.
Normalerweise wird ein reservierter Adressbereich benutzt, um zu
entscheiden, ob eine Stelle getestet werden soll. Dieser Adressbereich
wird ignoriert, wenn eine I/O-Adresse angegeben wird. Dies erlaubt
dem reserve=
-Parameter das Testen nach der Karte
in einer I/O-Region zu unterbinden.
Ursprünglich wurden diese Parameter dazu benutzt, um die Speicher-Adressen für Adapter, die Shared-Memory benutzen, wie der WD8013, festzulegen. Im Laufe der Zeit wurden sie erweitert, um anderen Treibern spezifische Optionen zu übergeben.
Der Name eines definierten Devices. Der Standard-Kernel
definiert im allgemeinen eth0
, eth1
,
eth2
und eth3
. Andere
Device-Namen z.B. für PPP, SLIP oder einen
Pocket-Ethernet-Adapter sind vielleicht vorhanden, gehorchen aber
einer anderen Semantik.
LILO stellt zwei Wege bereit, Parameter zur Bootzeit dem Kernel zu übergeben. Der am häufigsten genutzte Weg ist die direkte Eingabe am Bootprompt, hinter der Angabe des Kernelimages. Das folgende Beispiel aktiviert alle vier möglichen Devices.
boot: linux ether=0,0,eth1 ether=0,0,eth2 ether=0,0,eth3
Natürlich ist es ziemlich kompliziert, bei jedem Booten diese Parameter
einzugeben, und erfordert unbeaufsichtigte Roboter. Man kann
Kernel-Parameter permanent festlegen, in dem man in die Konfigurationsdatei
von LILO, /etc/lilo.conf
, eine append
-Zeile
einfügt und dann lilo
aufruft,
um die geänderte Konfiguration zu aktivieren.
append = "ether=0,0,eth1 ether=0,0,eth2 ether=0,0,eth3"
Wenn man bei einkompilierten Treibern eine zweite/weitere Karte einbaut,
hängt die Reihenfolge der Erkennung von der Reihenfolge in
den Kernelsourcen ab. Also muß man eventuell die Netzwerk-Startup-Skripte
anpassen. Der Ort für die Anpassung der Kernelquellen wäre wahrscheinlich
drivers/net/Space.c
. (Hinweis von Holger van Koll)