Jak przywrócić nazwę interfejsu USB WiFi (z wlxXXXXXXXXXXXX do wlanX)?

9

W Ubuntu 16.04 interfejs WiFi USB jest teraz wlxXXXXXXXXXXXX, gdzie X to cyfry adresu mac urządzenia (polityka przewidywalnej nazwy interfejsu) Więcej informacji na ten temat można znaleźć tutaj: systemd: PredictableNetworkInterfaceNames

właściwie całe nazewnictwo interfejsów uległo zmianie, ale mogłem wrócić do starej mody (ethX dla interfejsu ethernet, wlanX dla wbudowanej karty Wi-Fi) modyfikując / etc / default / grub, jak zasugerowano w trzecim poście tego wątku zmieniając nazwę interfejsów sieciowych ubuntu 16-04 Mój problem polega na tym, że to rozwiązanie nie działa dla interfejsów USB i wciąż mam tę irytującą długą nazwę (często używam wiersza poleceń, aby grać z moimi interfejsami Wi-Fi) problem z nazewnictwem interfejsu

 So here is my question: 

Co powinienem zrobić, aby wyłączyć te nowe reguły dla mojego interfejsu Wi-Fi USB? Dzięki za porady i przepraszam za mój słaby angielski. PA

kcdtv
źródło
Dlaczego chcesz to wyłączyć?
Kaz Wolfe
Ponieważ używam wiersza polecenia do zarządzania interfejsem USB Wi-Fi i używam skryptów, które używają starej nazwy. Niż moglibyśmy godzinami mówić o tym, co uważam za bardzo bezużyteczny interfejs systemowy, „przewidywalna polityka”, ale ... nie o to tutaj chodzi :)
kcdtv 17.09.16
Jeśli masz skrypty do zarządzania i używasz tej samej karty, dlaczego po prostu nie zmienić skryptów i używać poprawnych (i lepszych) nazw? W ten sposób zawsze będziesz wiedział, z którym pracujesz. Jeśli zawsze masz tylko te dwie karty podłączone, skryptu znajdź drugą kartę i skonfiguruj ją.
Kaz Wolfe
Nie ma lepszych nazw ... nie będę wchodził w głębsze rozważania na ten temat, tak naprawdę nie o to chodzi tutaj, uważasz, że są lepsze, ale możesz użyć swojego systemu między innymi, używam go w inny sposób ... faktycznie mam dużo kart ... ale tak naprawdę nie o to tutaj chodzi ...
kcdtv 17.09.16
1
Nowy schemat nazewnictwa jest do bani. Teraz potrzebujemy osobnego skryptu przy zmianie urządzenia USB - z powodu nazwy, powiązanej z adresem mac.
Nuclear

Odpowiedzi:

9

Brakowało jednej rzeczy z https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

sudo ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

Następnie uruchom ponownie

Myślę, że musi to być plik 80-net-setup-link.rules w / etc / udev /, ponieważ jedyny laptop, który zaktualizowałem do Ubuntu 16.04 od 15.10, nadal zawierał plik o nazwie /lib/udev/rules.d/73- usb-net-by-mac.rules i zawierał

# Use MAC based names for network interfaces which are directly or indirectly
on USB and have an universally administered (stable) MAC address (second bit
is 0).

IMPORT{cmdline}="net.ifnames", ENV{net.ifnames}=="0", GOTO="usb_net_by_mac_end" PROGRAM="/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules", RESULT=="/dev/null", GOTO="usb_net_by_mac_end"

ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb", NAME=="", \ ATTR{address}=="?[014589cd]:*", \ IMPORT{builtin}="net_id", NAME="$env{ID_NET_NAME_MAC}"

LABEL="usb_net_by_mac_end"

I określa /etc/udev/rules.d/80-net-setup-link.rules

Ten plik nie istnieje w żadnej z moich czystych instalacji Ubuntu 16.04, ale część tego musi istnieć w innym kodzie źródłowym

Jeremy31
źródło
1
Cześć Jeremy31 i dziękuję za odpowiedź
kcdtv 19.09.16
. Mój katalog /etc/udev/rules.d/ jest pusty. Mam plik 80-net-setup-link.rules w katalogu /lib/udev/rules.d . Zrobiłem to samo, co zasugerowałem w tym katalogu, ale urządzenie USB USB wciąż ma nazwę MAC. Spróbuję znaleźć sposób i zaktualizuję, gdy coś znajdę ... jeszcze raz dziękuję
kcdtv 19.09.16
Po prostu zrób to na /etc/udev/rules.d/80-net-setup-link.rules, ponieważ właśnie sprawdziłem moją maszynę ubuntu 16.04 i podłączenie starszego urządzenia WiFi USB pokazuje to jako wlan1 w iwconfig. Nie jestem pewien, dlaczego net.ifnames = 0 w pliku grub nie jest wystarczające, aby powstrzymać go przed zmianą urządzeń USB
Jeremy31,
Zadziałało! Skopiowałem regułę 80 z /lib/udev/rules.d do /etc/udev/rules.d . Następnie zduplikowałem go w tym katalogu, zmieniając jego nazwę na 80-net-setup-link.rules.bak . I w końcu stworzyłem dowiązanie symboliczne do / dev / null_. Po ponownym uruchomieniu moja karta USB WiFi nie wyświetla się teraz jako interfejs „ wlan1 ”. Dziękuję Ci bardzo! :)
kcdtv
2

Uwaga dla osób szukających podobnego przypadku użycia:

Miałem problem ze sterownikiem klucza USB WiFi nie mógł się uwierzytelnić z powodu dość długiej nazwy interfejsu w Debianie (stretch).

Kroki rozwiązania:

  1. skopiowane /lib/udev/rules.d/80-net-setup-link.rulesdo/etc/udev/rules.d/

  2. zmieniony $env{ID_NET_NAME}na$env{ID_NET_SLOT}

To utrzymało unikalność nazwy interfejsu, jednocześnie ją skracając.

Aktualizacja: Wydaje się, że nie jest to już problem z Debianem 10.

Code Maverick
źródło
0

Mam studio Ubuntu i miałem ten sam problem: długą nazwę wlxxxxx ORAZ wifi podłączone, ale NIE DZIAŁA!

Ubuntu studio ma specjalne jądro o niskim opóźnieniu i podejrzewałem, że długa nazwa może być problemem.

Więc zmieniam nazwę na wlan0 zainspirowany tym wątkiem. Zrobiłem następujące:

1) skopiował /lib/udev/rules.d/80-net-setup-link.rules do folderu /etc/udev/rules.d/

2) edytował tam nazwę. W moim przypadku była linia: NAME == "", ENV {ID_NET_NAME}! = "", NAME = "$ env {ID_NET_NAME}"

Po prostu wstawiłem „wlan0” zamiast „$ env {ID_NET_NAME}”.

A teraz działa Wifi!

GR

mchrgr2000
źródło
0

Zamiast całkowicie wyłączać zmianę nazwy, możesz przesłonić ją, aby nadać interfejsom własne, niestandardowe nazwy. To utrzymuje statyczne nazewnictwo, ale daje nazwę, którą możesz zapamiętać i wpisać.

Istniejący system nazewnictwa ( /lib/udev/rules.d/80-net-setup-link.rules) zmienia nazwę interfejsu tylko wtedy, gdy nie otrzymał jeszcze nazwy. Możesz więc dodać własne reguły o wyższym priorytecie, w /etc/udev/rules.dktórych nazwać interfejsy na swój własny sposób, co uniemożliwi domyślnemu systemowi nazywanie tych interfejsów.

Mam plik 70-wifi.rulesw moim systemie, który nazywa interfejsy zgodnie z siecią, do której są podłączone:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0f:00:4a:c4:c9", NAME="wifi-root"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:19:86:31:dd:b7", NAME="wifi-main"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="38:2c:4a:48:27:49", NAME="wifi-local"

Jest kluczowany przez adres MAC interfejsu i powoduje:

$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 3c:d9:2b:73:ad:5d brd ff:ff:ff:ff:ff:ff
15: wifi-main: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 00:19:86:31:dd:b7 brd ff:ff:ff:ff:ff:ff
16: wifi-local: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 38:2c:4a:48:27:49 brd ff:ff:ff:ff:ff:ff
17: wifi-root: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 00:0f:00:4a:c4:c9 brd ff:ff:ff:ff:ff:ff

Można zmienić ich nazwy wlan0, wlan1 itp Piękno tej metody jest to, masz nazwy chcesz, i korzystać ze statycznego nazewnictwa interfejsu sieciowego. Interfejsy zawsze będą miały tę samą nazwę.

Majenko
źródło