Почему имя интерфейса моей беспроводной карты изменилось, когда я добавил звуковую карту?

8

Предсказуемые имена сетевых интерфейсов не должны изменяться при добавлении или удалении оборудования. Разве это не весь смысл схемы именования ???

Мой беспроводной интерфейс был назван wlp3s0.

Я установил звуковую карту интерфейса PCI Express x1 ASUS Xonar DX 7.1 в свободный слот PCI, и имя моего беспроводного интерфейса изменилось на wlp5s0.

Беспроводная карта находится в том же слоте PCI, в котором она находилась до установки звуковой карты, так почему бы изменить имя интерфейса ?!

Mobo - это GIGABYTE GA-970A-UD3, а беспроводная карта - ASUS PCE-N15. Система работает под управлением Arch Linux со стандартным ядром.

Я ищу разумное объяснение того, почему имя интерфейса изменится в этом сценарии. Если нет веской причины, по которой имя интерфейса может измениться, куда я могу отправить отчет об ошибке / кому я могу пожаловаться?

Это не имеет большого значения, и единственной конфигурацией, которую мне нужно было изменить, был мой сетевой профиль для netctl. Я просто думаю, что если «предсказуемое» имя сетевого интерфейса не предсказуемо, тогда они полностью потерпят неудачу в своей работе, и эта схема именования является бесполезным мусором! / напыщенная

Мио Ивакура
источник
Вы перенесли PCE-N15 в другой слот?
Серж
PCE-N15 - это беспроводная карта, и, как я сказал в посте, она не двигалась; он находится в том же слоте, что и раньше. Все, что я сделал, это добавил звуковую карту в свободный слот!
Мио Ивакура
звучит странно. В любом случае, прочитайте о схеме именования, используемой в linux для адаптеров Ethernet, это может объяснить некоторые части вашего вопроса: en.wikipedia.org/wiki/Consistent_Network_Device_Naming
Serge

Ответы:

6

Предсказуемые имена сетевых интерфейсов не должны изменяться при добавлении или удалении оборудования. Разве это не весь смысл схемы именования ???

Короче говоря, в этом нет ничего нового; это ожидается / предназначено. Поэтому вам не нужно сообщать об ошибке, если только вы не хотите попросить вашего производителя ПК лучше поддерживать Linux (BIOS) или производителя оборудования (драйверы). Некоторые варианты, если вы хотите улучшить ситуацию для устройств с «горячей» заменой и / или вернуться к старой схеме именования:

  • Отключить новую схему именования для сетевых устройств с net.ifnames=0ядром cmdline
  • Добавьте biosdevname=1командную строку ядра для включения в имена индексов, предоставленных BIOS
  • Создание или редактирование udevправил для пользовательских имен или измененных схем именования
  • Вы отключаете назначение фиксированных имен, так что непредсказуемые имена ядра используются снова. Для этого просто замаскируйте файл .link для udev для политики по умолчанию:ln -s /dev/null /etc/systemd/network/99-default.link

Если вы используете systemdи / или udev, аргумент «предсказуемой схемы именования» может отличаться от предыдущего. На основе схемы именования интерфейса Wi - Fi, хотя, я предполагаю , что вы которые с помощью системы с systemd.

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

net.ifnames=0

Добавление его /etc/default/grubможет облегчить сохранение и повторное использование этого параметра; опять же, если вы используете grub2:

GRUB_CMDLINE_LINUX="net.ifnames=0"

Если udevпри определении имен устройств используются микропрограмма устройства, местоположение и другие параметры, то, возможно, местоположение или что-то еще могло измениться внутри, в зависимости от того, как соответствующие устройства взаимодействуют друг с другом. Это, кажется, не так актуально, поскольку устройства представляют собой адаптер WiFi и звуковую карту. Тем не менее, это может быть связано с базовой структурой шины; что представляется актуальным, поскольку оба устройства подключены к слотам PCI.


Дополнительная информация от FedoraDocs

8.1. Иерархия схем именования

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

  • Схема 1: Имена, включающие индексные номера встроенного ПО или BIOS для встроенных устройств (пример: eno1), применяются, если эта информация из микропрограммы или BIOS применима и доступна, в противном случае используется схема 2.

  • Схема 2: Имена, содержащие встроенное ПО или BIOS, при условии, что индексы слотов горячего подключения PCI Express (пример: ens1) применяются, если эта информация из встроенного программного обеспечения или BIOS применима и доступна, в противном случае используется схема 3.

  • Схема 3: Имена, включающие физическое местоположение соединителя аппаратного обеспечения (пример: enp2s0), применяются, если применимо, в противном случае напрямую возвращаются к схеме 5 во всех других случаях.

  • Схема 4: Имена, содержащие MAC-адрес интерфейса (пример: enx78e7d1ea46da), по умолчанию не используется, но доступна, если пользователь выбирает.

  • Схема 5: Традиционная непредсказуемая схема именования ядра используется в случае сбоя всех других методов (пример: eth0).

Эта политика, описанная выше процедура, используется по умолчанию. Если в системе включено biosdevname, оно будет использовано. Обратите внимание, что включение biosdevname требует передачи biosdevname=1в качестве параметра командной строки, за исключением случая системы Dell, где biosdevname будет использоваться по умолчанию, пока оно установлено. Если пользователь добавил udevправила, которые изменяют имя устройств ядра, эти правила будут иметь приоритет.


Дополнительные ресурсы

ILMostro_7
источник