Mein neues RPi 3-Gerät ist kürzlich mit einem deaktivierten Ethernet hochgefahren worden.
Also habe ich /etc/networks/interfaces
die Zeile gesehen und gesehen:
auto eth0
iface eth0 inet dhcp
Anruf ifup eth0
gab leider folgende Meldung:
eth0 No such device
No hardware found
Also überprüfte ich mein ifconfig -a
und sah ein seltsames Gerät:
enx*MACADDRESS* Link encap:Ethernet HWaddr **:**:**:**:**:**
Der Versuch, /etc/networks/interfaces
den Namen zu ändern , führte zu einem funktionierenden Netzwerk. Wie kann ich diesen Gerätenamen wieder auf ändern eth0
?
PS: Ich habe keine 70-persistent-net.rules
Datei fyi. Betriebssystem ist Ubuntu MATE 15.10
Vielen Dank.
ethernet
networking
ethernet-port
Tom Siwik
quelle
quelle
Antworten:
Ich hatte dieses Problem, als ich Debian armhf auf Raspberry Pi 2 ausführte. Sie können den Namen der Schnittstelle ändern, indem Sie die Datei /etc/udev/rules.d/70-persistent-net.rules erstellen und dies einfügen
Ersetzen Sie b8: ac: 6f: 65: 31: e5 durch Ihre eth0-MAC-Adresse, starten Sie neu und es wird eth0. Möglicherweise haben Sie nach dem Neustart keinen Internetzugang, da in / etc / network / interfaces eine falsche Schnittstelle definiert ist. Ändern Sie einfach enx * zu eth0
Bearbeiten: Dies ist kein Problem, sondern ein neues Benennungsschema für Schnittstellen "Vorhersagbare Schnittstellennamen". Sie sollten dieses anpassen und verwenden, anstatt zu versuchen, es auf die alten zurückzusetzen.
quelle
ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules
. Es ist im Grunde die Namenssache deaktivieren. Funktioniert jetzt .. danke!KERNEL=="eth*"
Eintrag entfernen, damit dies funktioniert.Diese Lösung funktioniert nur, wenn Sie ein seltsames Netzwerkschnittstellengerät sehen, wie es
env{hwdaddress}
beim Ausführen$ ifconfig -a
von angezeigt wirdeth0
. Ich habe alle gängigen Antworten zum Hinzufügen von Regeln ausprobiert, aber nur dieses Update hat funktioniert.Ich verwende einen Raspberry Pi 3 mit Ubuntu 16.04 vorinstalliertem Server Armhf. Lange Rede kurzer Sinn , laufend vorhersehbare Netzwerkschnittstellennamen
$ apt-get update
hinzugefügtBearbeiten Sie die folgende Datei:
Das solltest du sehen:
Ändern Sie den NAME am Ende wie folgt:
Änderungen speichern
Starten Sie neu. Alles sollte jetzt funktionieren, vorausgesetzt, alles zeigt auf eth0.
Bearbeiten (26.10.2016) Gehen Sie folgendermaßen vor, um zu verhindern, dass zukünftige Updates diesen Fix überschreiben:
quelle
eth0
mit Ubuntu Server 16.04 einen stabilen Zustand für meinen Pi zu erreichen. Vielen Dank. Eine kleine Änderung an Ihrer Antwort, die ich vorschlagen würde, dass Sie versuchen, sie zu implementieren und dann zu Ihrer Antwort hinzuzufügen: Kopieren Sie die73-usb-net-by-mac.rules
Datei in das/etc/udev/rules.d/
Verzeichnis und ändern Sie diese; Wenn Sie die Version ändern, wird/lib/udev/rules.d
sie möglicherweise bei einem zukünftigen Betriebssystemupdate überschrieben.raspi-config ist die einfachste Methode.
Wenn Sie Raspbian verwenden, wird es standardmäßig installiert. Wenn Sie jedoch mit Ubuntu, Mint oder Mate arbeiten, können Sie es mit dem folgenden Befehl installieren:
Dann können Sie es mit raspi-config konfigurieren.
Getan.
quelle
Dies ist KEIN "Bug", sondern ein "Feature". konsistente Benennung von Netzwerkgeräten ". (Ich sehe nichts Beständiges daran.)
Es gibt wahrscheinlich viele Möglichkeiten, dies zu "beheben", aber sie funktionieren möglicherweise nicht, wenn die Hardware geändert wird.
Um das vorherige Verhalten wiederherzustellen, fügen Sie am Ende von "net.ifnames = 0 biosdevname = 0" hinzu
cmdline.txt
.quelle
net.ifnames=0
. Ich glaube nicht, dass irgendjemand den Diskussionen über Fehlerberichte folgen muss, um ein beliebtes Betriebssystem mit einer gemeinsamen Hardwarekonfiguration zum Laufen zu bringen, aber das ist das Leben. bugs.launchpad.net/ubuntu/+source/systemd/+bug/1593379config.txt
funktioniert auf dem Pi nicht wirklich als dokumentierter Fehler (möglicherweise mit der Veröffentlichung des neuesten udev-Builds, den es endlich tut). Es ist ein überraschend unbekannter Fehler, der alle Systeme mit Ethernet auf USB betrifft.Ich habe es nicht speziell mit der MAC-Adresse als Teil des Namens angetroffen, aber was Sie erleben, heißt konsistente Netzwerkgerätenamen.
Dies wurde geändert, da es auf einigen Systemen mit mehreren Netzwerkkarten möglich und wahrscheinlich sogar wahrscheinlich ist, dass die Karten nicht mehr in Ordnung sind und das Benennungsschema eth0, eth1 usw. verwenden. Am Ende würden Sie Routing-Regeln anwenden und so weiter auf die falsche Schnittstelle.
Viele Linux-Distributionen haben eine einheitliche Bezeichnung für Netzwerkgeräte gewählt. Normalerweise sieht diese so aus
enp0s1
, als würde sie den PCI-Bus und den Anschlusspunkt an den Bus identifizieren (0 bzw. 1).Weitere Informationen erhalten Sie unter https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/ch-Consistent_Network_Device_Naming.html sowie über die Umstellung Ihres Systems auf die alte Vorgehensweise Dinge, wenn Sie dies noch tun möchten.
quelle
Ich hatte das gleiche Problem mit Ubuntu Server 16.04 auf Raspberry Pi 2 und dies (siehe Link unten) hat mir geholfen, das Problem zu lösen
https://bugs.launchpad.net/ubuntu-pi-flavour-maker/+bug/1585335
quelle
Einfach:
sudo ln -s /dev/null /etc/systemd/network/99-default.link
und
sudo reboot
.Quelle: https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
quelle
Mit Odroid Erstellen dieser Datei wurde mein Problem behoben
quelle
Ich hatte das gleiche Problem auf Raspberry Pi 2 mit Ubuntu 16.04 und es funktionierte, wenn ich dem Link von #goutam folgte und /etc/udev/rules.d/70-persistent-net.rules mit folgendem hinzufügte:
quelle
Ich habe diesen Vorschlag hier gefunden :
Ändern Sie eine Zeile in den 70-persistent-net.rules in
Das KERNEL-Attribut wird gelöscht und der NAME von = in: = geändert
Es scheint zu erzwingen, dass die gefundene MAC-Adresse an eth0 gesendet wird. Funktioniert auf Raspberry Pi und Uboot-Boot-Systemen.
quelle
Für mich, Debian Unstable auf dem Raspberry Pi 2 auszuführen, war der im Kommentar zur ersten Antwort erwähnte Symlink auch die richtige Idee, aber sein Name musste anders lauten:
ln -vis /dev/null /etc/udev/rules.d/80-net-setup-link.rules
quelle
enx
Interface-Namen auf beiden, Raspi 2 und 3, gesehen habe. Ich kann mich derzeit allerdings nicht erinnern, wie das WLAN-Interface auf dem Raspi 3 benannt wurde.Deaktivieren Sie einfach die udev-Regeln, die für den Umbenennungsprozess der Benutzeroberfläche verantwortlich sind
oder
BEARBEITEN: thx @ sparkie, um einen Fehler auszudrücken. Ich vermische immer die Reihenfolge. :)
quelle
Mir ist klar, dass diese Frage alt ist, aber ich bin auf dieses Problem gestoßen, und keine der bisher auf dieser Seite vorgeschlagenen Lösungen hat mein Problem gelöst. Für mich scheint der Ordner "rules.d" nichts zu bewirken.
Meine Lösung bestand darin, einfach ein Skript zu schreiben, das sich im Ordner init.d befindet, um dem kabelgebundenen Ethernet-Port unabhängig vom Namen DHCP zuzuweisen. Dies ist wichtig, da ich mehrere Raspberry Pi-Einheiten habe und sie alle dasselbe Problem hatten. (sehr frustrierend)
Mein Problem tritt auf, weil ich einen Netzwerkspeicherordner habe, der während des Startvorgangs bereitgestellt werden muss. Da das Interface nicht verfügbar war, ist dieses Mount fehlgeschlagen und die Situation hat sich für mich immer weiter verschlechtert.
Hier ist meine Lösung. Ich hoffe, dies wird allen anderen helfen, die mit den obigen Antworten keinen Beitritt finden können.
Erstellen Sie die Datei /etc/init.d/raspi-init-network mit Ihrem bevorzugten Texteditor. Ich benutze gerne vi.
Dies ist der Code, der in die Datei gehört
Stellen Sie sicher, dass das Skript ausführbar ist
Aktivieren Sie den Code, damit er während des Startvorgangs ausgeführt wird, indem Sie den Befehl update-rc.d ausführen.
Danach hatte ich kein einziges Problem mehr und konnte den Code auf alle meine Pi-Einheiten mit den gleichen gleichbleibenden Ergebnissen kopieren.
ANMERKUNG: Wenn Sie keine Laufwerke mounten, können Sie die Zeile "mount -a" weglassen.
TWEAKS: Wenn Sie Ihr WLAN verwenden, können Sie die Zeile ändern, die mit "interface =" beginnt, und das erste "grep" -Segment bearbeiten. Mit diesem ersten Grep wird die gesamte Zeile der Schnittstelle erfasst, die Sie verwenden möchten. Das zweite grep nimmt diese Zeile und gibt nur den Schnittstellennamen zurück.
quelle