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

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

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

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

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

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 

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

  • почему этот сервер CentOS 7 не видит соединения Wi-Fi?
  • Как узнать, какая прошивка загружена ядром?
  • Linux - при загрузке подключитесь к самым мощным беспроводным сетям
  • mint 17.2 не будет подключаться к самому сильному ssid, а вместо этого к определенному
  • Как превратить мой Linux-ноутбук в беспроводной ретранслятор?
  • RT3290 Wireless все еще не работает
  • WLAN подключен, но нет доступа в Интернет
  • Каков наилучший способ проверить подключение к Интернету в фоновом режиме?
  • Беспроводная связь на Slackware
  • Сбой сети в FreeBSD: Ping to router терпит неудачу, но маршрутизатор считает, что компьютер подключен
  • Невозможно изменить битрейт на адаптере wifi
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.