Как вернуть имя интерфейса Wi-Fi USB (от wlxXXXXXXXXXXXX к wlanX)?

9

В Ubuntu 16.04 Wi-Fi-интерфейс USB теперь имеет вид wlxXXXXXXXXXXXX, где X - цифры MAC-адреса устройства (политика предсказуемого имени интерфейса). Дополнительную информацию можно найти здесь: systemd: PredictableNetworkInterfaceNames

на самом деле все имена интерфейсов изменились, но я смог вернуться к старому способу (ethX для интерфейса Ethernet, wlanX для Wi-Fi-карты inetrnal), изменив / etc / default / grub, как предложено в третьем посте этого потока, изменив имя сетевых интерфейсов Ubuntu 16-04 Моя проблема в том, что это решение не работает для интерфейсов USB, и у меня все еще есть это очень раздражающее длинное имя (я часто использую командную строку, чтобы играть с моими интерфейсами Wi-Fi) проблема с именами интерфейсов

 So here is my question: 

Что я должен сделать, чтобы отключить эти новые правила для моего интерфейса USB Wi-Fi? Спасибо за ваши советы и извините за мой плохой английский. до свидания

kcdtv
источник
Почему вы хотите отключить?
Каз Вулф
Потому что я использую командную строку, чтобы управлять своим интерфейсом Wi-Fi USB, и я использую сценарии, которые используют старые имена. Чем бы мы могли часами говорить о том, что я считаю очень бесполезным интерфейсом systemd, «предсказуемой политикой», но ... здесь не
совсем так
Если у вас есть сценарии, которые управляют, и вы используете одну и ту же карту, почему бы просто не изменить сценарии, чтобы использовать правильные (и лучшие) имена? Таким образом, вы всегда будете знать, с кем вы работаете. Если вы всегда подключаете только эти две карты, заставьте скрипт найти другую карту и настроить ее.
Каз Вулф
Есть не лучшие имена ... я не буду вдаваться в более глубокие соображения по этому поводу, это на самом деле не главное, вы считаете, что они лучше, но вы можете использовать свою систему, например, я использую ее по-другому ... Я на самом деле есть много карт ... но на самом деле это не
главное
1
Новая схема именования - отстой. Теперь нам нужен отдельный скрипт при смене USB-устройства - из-за имени, привязанного к mac-адресу.
Nuclear

Ответы:

9

Вы пропустили одну вещь из https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

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

Затем перезагрузите

Я думаю, что это должен быть файл 80-net-setup-link.rules в / etc / udev /, так как один ноутбук, который я обновил до Ubuntu 16.04 с 15.10, все еще содержал файл с именем /lib/udev/rules.d/73- usb-net-by-mac.rules и он содержал

# 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"

И это указывает /etc/udev/rules.d/80-net-setup-link.rules

Этот файл не существует ни в одной из моих чистых установок Ubuntu 16.04, но часть этого должна существовать в другом исходном коде

Jeremy31
источник
1
Привет Джереми31 и спасибо за ответ
kcdtv 19.09.16
, Мой каталог /etc/udev/rules.d/ пуст. У меня есть 80-net-setup-link.rules в /lib/udev/rules.d . Я сделал то же самое, что предлагалось в этом каталоге, но USB-устройство Wi-Fi по-прежнему называется с MAC-адресом. Я постараюсь найти способ и
обновлюсь,
Просто сделайте это на /etc/udev/rules.d/80-net-setup-link.rules, так как я только что проверил свою машину с Ubuntu 16.04, а при подключении старого USB-устройства Wi-Fi это отображается как wlan1 в iwconfig. Я не уверен, почему net.ifnames = 0 в файле grub недостаточно для того, чтобы
помешать
Это сработало! Я скопировал правило 80 из /lib/udev/rules.d в /etc/udev/rules.d . Затем я продублировал его в этом каталоге и переименовал в 80-net-setup-link.rules.bak . И наконец я создал символическую ссылку на / dev / null_. После перезагрузки моя карта USB WiFi теперь не отображается как интерфейс " wlan1 ". Большое спасибо! :)
kcdtv
2

Примечание для тех, кто ищет похожий вариант использования:

У меня была проблема с драйвером USB WiFi ключа, который не мог пройти аутентификацию из-за довольно длинного имени интерфейса в Debian (растянуть).

Шаги для разрешения:

  1. скопированы /lib/udev/rules.d/80-net-setup-link.rulesв/etc/udev/rules.d/

  2. изменился $env{ID_NET_NAME}на$env{ID_NET_SLOT}

Это поддерживало уникальность имени интерфейса, сокращая его.

Обновление: похоже, это больше не проблема Debian 10.

Код Маверик
источник
0

У меня есть студия Ubuntu, и у меня была та же проблема: длинное имя wlxxxxx И WiFi подключен, но НЕ РАБОТАЕТ!

Студия Ubuntu имеет специальное ядро ​​с низкой задержкой, и я подозревал, что длинное имя может быть проблемой.

Итак, я переименую его в wlan0, вдохновленный этой темой. Я сделал следующее:

1) скопировал /lib/udev/rules.d/80-net-setup-link.rules в папку /etc/udev/rules.d/

2) отредактировал имя там. В моем случае была строка: NAME == "", ENV {ID_NET_NAME}! = "", NAME = "$ env {ID_NET_NAME}"

Я просто поставил «wlan0» вместо «$ env {ID_NET_NAME}».

И теперь WiFi работает!

GR

mchrgr2000
источник
0

Вместо того, чтобы полностью отключить переименование, вы можете переопределить его, чтобы дать вашим интерфейсам свои собственные имена. Это сохраняет статическое наименование, но дает вам имя, которое вы можете запомнить и ввести.

Существующая система именования ( /lib/udev/rules.d/80-net-setup-link.rules) переименовывает интерфейс, только если ему еще не дали имя. Таким образом, вы можете добавить свои собственные правила с более высоким приоритетом, в /etc/udev/rules.dкоторых имена по-своему называются интерфейсами, что затем не дает системе по умолчанию называть эти интерфейсы.

70-wifi.rulesВ моей системе есть файл , который называет интерфейсы в соответствии с сетью, к которой они подключены:

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"

Он определяется MAC-адресом интерфейса и приводит к:

$ 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

Вы можете переименовать их в wlan0, wlan1 и т. Д. Прелесть этого метода в том, что вы получаете нужные имена и извлекаете выгоду из имен статического сетевого интерфейса. Поэтому интерфейсы всегда будут называться одинаково.

Majenko
источник