Moje nowe urządzenie RPi 3 (tak) niedawno uruchomiło się z dezaktywowanym eterem.
Więc obejrzałem /etc/networks/interfaces
i zobaczyłem linię:
auto eth0
iface eth0 inet dhcp
Dzwonienie ifup eth0
niestety dało następujący komunikat:
eth0 No such device
No hardware found
Więc sprawdziłem ifconfig -a
i zobaczyłem dziwne urządzenie:
enx*MACADDRESS* Link encap:Ethernet HWaddr **:**:**:**:**:**
Próba zmiany /etc/networks/interfaces
nazwy spowodowała działającą sieć. Jak mogę zmienić nazwę tego urządzenia na eth0
?
PS: Nie mam żadnych 70-persistent-net.rules
plików FYI. System operacyjny to Ubuntu MATE 15.10
Dzięki.
ethernet
networking
ethernet-port
Tom Siwik
źródło
źródło
Odpowiedzi:
Miałem ten problem podczas uruchamiania Debiana armhf na Raspberry Pi 2, możesz zmienić nazwę interfejsu, tworząc plik /etc/udev/rules.d/70-persistent-net.rules i umieszczając to w
zamień b8: ac: 6f: 65: 31: e5 na swój adres MAC eth0, uruchom ponownie i stanie się eth0, po restarcie możesz nie mieć dostępu do Internetu, ponieważ w / etc / network / interfaces definiuje zły interfejs, po prostu zmień enx * do eth0
Edycja: To nie jest problem, ale nowy schemat nazewnictwa interfejsów „Przewidywalne nazwy interfejsów”, należy go dostosować i używać zamiast próbować przywracać go do starych.
źródło
ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules
. Zasadniczo wyłącza to nazewnictwo. Działa teraz .. dzięki!KERNEL=="eth*"
wpis, aby to zadziałało.To rozwiązanie działa tylko wtedy, gdy widzisz dziwne urządzenie interfejsu sieciowego, takie jak
env{hwdaddress}
podczas uruchamiania$ ifconfig -a
zamiasteth0
. Próbowałem wszystkich popularnych odpowiedzi na temat dodawania reguł, ale tylko ta poprawka działała.Używam Raspberry Pi 3 z preinstalowanym serwerem armhf dla Ubuntu 16.04. Krótka historia, uruchomione
$ apt-get update
dodano przewidywalne nazwy interfejsów sieciowychEdytuj następujący plik:
Powinieneś zobaczyć:
Zmień NAZWĘ na końcu w następujący sposób:
Zapisz zmiany
Restart. Wszystko powinno działać teraz, zakładając, że wszystko wskazuje na eth0.
Edytuj (26.10.2016) Aby zapobiec zastąpieniu tej poprawki przez przyszłe aktualizacje, wykonaj następujące czynności:
źródło
eth0
dla mojego Pi z Ubuntu Server 16.04. Dziękuję Ci. Jedna niewielka modyfikacja Twojej odpowiedzi, którą sugeruję spróbować, zaimplementować, a następnie dodać do swojej odpowiedzi: Skopiuj73-usb-net-by-mac.rules
plik do/etc/udev/rules.d/
katalogu i zmodyfikuj ten; jeśli zmienisz ten/lib/udev/rules.d
, może on zostać zastąpiony w przyszłej aktualizacji systemu operacyjnego.raspi-config jest najłatwiejszą metodą.
Jeśli korzystasz z Raspbian, to jest on instalowany domyślnie. Ale jeśli korzystasz z systemu Ubuntu, Mint lub Mate, możesz zainstalować go za pomocą poniższego polecenia:
Następnie możesz to skonfigurować za pomocą raspi-config.
Gotowy.
źródło
To NIE jest „błąd”, to „funkcja” „ spójna nazwa urządzenia sieciowego ”. (Nie widzę w tym nic spójnego.)
Prawdopodobnie istnieje wiele sposobów „naprawienia” tego, ale mogą one nie działać, jeśli sprzęt zostanie zmieniony.
Aby przywrócić poprzednie zachowanie, dodaj „net.ifnames = 0 biosdevname = 0” na końcu
cmdline.txt
.źródło
net.ifnames=0
. Nie sądzę, aby ktokolwiek musiał śledzić dyskusje o błędach, aby popularny system operacyjny działał ze wspólną konfiguracją sprzętową, ale takie jest życie. bugs.launchpad.net/ubuntu/+source/systemd/+bug/1593379config.txt
naprawdę nie działa na Pi jako udokumentowany błąd (być może teraz wraz z wydaniem najnowszej wersji udev, którą w końcu robi). Jest to zaskakująco nieznany błąd, który wpływa na wszystkie systemy z Ethernetem na USB.Nie spotkałem go konkretnie z adresem mac jako częścią nazwy, jednak to, co napotykasz, nazywa się spójnym nazywaniem urządzenia sieciowego.
To była zmiana dokonana, ponieważ jest to możliwe, a może nawet prawdopodobne w niektórych systemach, które mają wiele kart sieciowych, że karty wypadną z porządku i przy użyciu schematu nazewnictwa eth0, eth1 itp. Ostatecznie zastosujesz reguły routingu i tak dalej. do niewłaściwego interfejsu.
Wiele dystrybucji Linuksa zostało przeniesionych do pewnego rodzaju spójnego nazewnictwa urządzeń sieciowych, zwykle będzie to wyglądać podobnie
enp0s1
, identyfikując magistralę PCI i punkt przyłączenia do magistrali (odpowiednio 0 i 1).Możesz uzyskać więcej informacji na https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/ch-Consistent_Network_Device_Naming.html , a także jak zmienić system na stary sposób robienia rzeczy, jeśli nadal chcesz to zrobić.
źródło
Miałem ten sam problem z Ubuntu Server 16.04 działającym w Raspberry Pi 2 i to (patrz link poniżej) pomogło mi rozwiązać problem
https://bugs.launchpad.net/ubuntu-pi-flavour-maker/+bug/1585335
źródło
Prosty:
sudo ln -s /dev/null /etc/systemd/network/99-default.link
a
sudo reboot
.Źródło: https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
źródło
Utworzenie tego pliku przez odroid naprawiło mój problem
źródło
Miałem ten sam problem na Raspberry Pi 2 z Ubuntu 16.04 i działało się po kliknięciu linku z #goutam i dodaniu /etc/udev/rules.d/70-persistent-net.rules z następującymi:
źródło
Znalazłem tę sugestię tutaj :
Zmień jedną linię w 70-persistent-net.rules na
która usuwa atrybut KERNEL i zmienia NAZWĘ z = na: =
Wydaje się, że wymusza to, by każdy adres MAC został znaleziony na eth0. Działa na Raspberry Pi i systemach rozruchowych uboot.
źródło
Dla mnie, uruchamiając Debian Unstable na Raspberry Pi 2, dowiązanie symboliczne wspomniane w komentarzu do pierwszej odpowiedzi również było właściwym pomysłem, ale jego nazwa musiała być inna:
ln -vis /dev/null /etc/udev/rules.d/80-net-setup-link.rules
źródło
enx
nazwy interfejsu w obu Raspi 2 i 3. I chociaż obecnie nie pamiętam jak interfejs WLAN został nazwany na Raspi 3.po prostu dezaktywuj reguły udev odpowiedzialne za proces zmiany nazwy interfejsu, tj
lub
EDYCJA: thx @ sparkie za zgłoszenie błędu. Zawsze mieszam zamówienie. :)
źródło
Zdaję sobie sprawę, że to pytanie jest stare, ale trafiłem w ten problem i żadne z proponowanych do tej pory rozwiązań na tej stronie nie rozwiązało mojego problemu. Wydaje mi się, że sztuczka z folderem rules.d nic nie robi.
Moim rozwiązaniem było po prostu napisanie skryptu, który znajduje się w folderze init.d, aby przypisać DHCP do przewodowego portu Ethernet bez względu na nazwę. Jest to ważne, ponieważ mam kilka jednostek Raspberry Pi i wszystkie mają ten sam problem. (bardzo frustrujące)
Mój problem jest złożony, ponieważ mam folder pamięci sieciowej, który musi zostać podłączony podczas procesu rozruchu. Ponieważ interfejs się nie pojawił, to montowanie nie powiodło się, a dla mnie wszystko poszło źle.
Oto moje rozwiązanie. Mam nadzieję, że pomoże to każdemu, kto nie może dołączyć, korzystając z powyższych odpowiedzi.
Utwórz plik /etc/init.d/raspi-init-network za pomocą swojego ulubionego edytora tekstu. Lubię używać vi.
To jest kod, który należy do pliku
Upewnij się, że skrypt jest wykonywalny
Aktywuj kod, aby był wykonywany podczas procesu uruchamiania, wykonując komendę update-rc.d.
Po tym nie miałem żadnego problemu i mogłem skopiować kod do wszystkich moich jednostek Pi z tymi samymi stałymi wynikami.
UWAGA: Jeśli nie montujesz dysków, możesz pominąć linię „mount -a”.
TWEAKS: Jeśli korzystasz z Wi-Fi, możesz zmienić linię rozpoczynającą się od „interface =” i edytować pierwszy segment „grep”. Ten pierwszy grep chwyta całą linię interfejsu, którego chcesz użyć. Drugi grep zajmuje tę linię i zwraca tylko nazwę interfejsu.
źródło