Ich arbeite an einem eingebetteten Linux-System. Mein Ziel ist es, die Ethernet-Schnittstelle beim Booten zu aktivieren. Ich benutze U-Boot als Bootloader. Ich habe die Umgebungsvariablen ip = und eth = u-boot als Bootargs an den Linux-Kernel übergeben und den Linux-Kernel als IP konfiguriert: Autokonfiguration auf Kernel-Ebene, aktiviert. Dadurch wurde die Netzwerkschnittstelle jedoch nicht gestartet, wie dies bei "ifconfig eth0 up" der Fall ist.
Ich frage mich also, ob es möglich ist, den Linux-Kernel anzuweisen, die eth0-Schnittstelle zu aktivieren, ohne auf User-Space-Skripte (ifup und ifconfig) zurückzugreifen.
linux
networking
kernel
boot
Aymen Abdelhakim
quelle
quelle
ONBOOT=yes
in dieser Datei wird Ihr Problem lösen, Dateipfad/etc/sysconfig/network-scripts/ifcfg-eth0
Antworten:
Ja, der Linux-Kernel kann die eth0-Schnittstelle aktivieren, ohne auf User-Space-Skripte zurückzugreifen.
Sie können den
ip=
Kernel-Boot-Parameter verwenden, um die Netzwerkschnittstelle mit einer statischen IP-Adresse zu initialisieren. Beispiel:Natürlich kann die eth0- Schnittstelle erst aktiviert werden, wenn Treiber geladen wurden (wie durch die Freigabe
__init
des Speicherbereichs angezeigt ).Im folgenden Systemprotokoll wird angezeigt, wann die Netzwerkschnittstelle aktiv wird:
Ausführliche Informationen zur Syntax des
ip=
Boot-Parameters finden Sie in Documentation / filesystems / nfs / nfsroot.txt . Ignorieren Sie die Tatsache, dass der ursprüngliche Zweck dieser Funktion darin bestand, ein vernetztes Root-Dateisystem zu ermöglichen.eth=
ist kein gültiger Boot-Parameter und wird vom Kernel wahrscheinlich ignoriert.BTW Wenn Sie den Atmel-
macb.c
Treiber verwenden, stellen Sie sicher, dass U-Boot die MAC-Adresse für den PHY installiert, damit dies funktioniert.quelle
macb
. Lesen Sie bitte Atmels Nicolas Ferre, der meine Bemerkungen in at91.com/forum/viewtopic.php/f,12/t,21030 bestätigt. Wenn Ethernet in U-Boot funktioniert, kann Linux dies auch.