udev постоянные сетевые правила: имена интерфейсов на основе драйвера / набора микросхем

Я работаю над проектом, используя серию Raspberry Pis, каждая с двумя различными беспроводными картами (с различными наборами микросхем / с использованием разных модулей, одна – rtl8187, а другая – rt2800usb).

На данный момент я настроил постоянные правила именования для каждого Pi, поэтому, когда я настраиваю новый Pi или меняю беспроводные карты между Pis, мне нужно пойти и отредактировать его, чтобы новая карта rtl8187 по-прежнему была wlan0, а новая карта rt2800usb по-прежнему wlan1.

Есть ли способ изменить постоянные правила для обозначения интерфейсов на основе используемого ими модуля или чего-то еще? В идеале я хотел бы иметь возможность знать, что какая-либо карта rtl8187, которую я подключаю, должна быть wlan0, и любая карта rt2800usb должна быть wlan1.

Или как обходной путь, есть ли способ использовать частичный шаблон для сопоставления MAC-адресов? На каждой карте, имеющейся на одном чипсете, есть тот же самый префикс MAC поставщика.

  • Qualcomm Atheros AR298X не работает с последними ядрами
  • NetworkManager (апплет) - после щелчка по сети нет окна или ошибки
  • Wifi внезапно не работает на thinkpad, как в Manjaro, так и в parrot linux
  • wifi не работает на новой машине debian
  • Как установить Ralink RT5390 в режим N с помощью iw?
  • wpa_supplicant дает ошибки rfkill при подключении?
  • Как найти статус wlan0?
  • Как добавить несколько сетевых блоков в командной строке?
  • 2 Solutions collect form web for “udev постоянные сетевые правила: имена интерфейсов на основе драйвера / набора микросхем”

    Первое, что я попробую, это просто изменить

    ATTR{address}=="12:34:56:78:9A:AB" 

    в

     ATTR{address}=="12:34:56:*" 

    в /etc/udev/rules.d/70-persistent-net.rules (предполагая, что он находится на том же месте на вашем RaspPi).

    Я не тестировал его, но так работает обычное совпадение.

    Если это работает, просто скопируйте этот файл в каждый новый RaspPi.

    Я не думаю, что именование устройства поможет, поскольку вы заметили решающий фактор, если устройство wan0 или wan1 басировано с адреса mac.

    Единственное решение, о котором я мог подумать, – это супер грязный … есть две копии сетевой конфигурации и использовать правило udev для копирования нужной сетевой конфигурации на место. (Это будет работать, но супер грязно …)

    Возможно, кто-то может подумать о лучшем решении, но если вы выберете это, метод должен соответствовать устройству в правиле udev, а в конце правила udev есть + RUN = / usr / local / bin / bashscript.sh (make обязательно заблокируйте разрешения).

    Только вопрос, который у меня есть, я не понимаю, в чем проблема: иметь один nic как wlan1.

    Я считаю, что ответ на вашу проблему не меняется с wlan1 на wlan0, а на то, почему вам нужно …

    вот пример правила udev, который у меня есть с скриптом bash:

     ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010|0110|0111|0114|0116|0401|0403|0405|0407|0410", ACTION=="remove", RUN+="/usr/local/bin/secdev_lock.sh" 

    (заблокируйте мой экран ноутбука, когда я отключу ключ безопасности)


    ОБНОВИТЬ:

    для отладки доступных карт:

     SUBSYSTEM=="net", ACTION=="add", RUN+="/usr/local/bin/addnic.sh" 

    в addnic.sh;

     #!/bin/bash env > /home/user/udev_$RANDOM.txt 

    Я уверен, что вы найдете всю соответствующую информацию для

    Linux и Unix - лучшая ОС в мире.