Inhalt

6. Parameterübergabe mit dem Bootloader

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.

IRQ

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.

IO-ADDR

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.

PARAM1, PARAM2

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.

NAME

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"

6.1 Hinweis

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)


Inhalt