我正在使用一系列Raspberry Pis进行一个项目,每个无线网卡有两个不同的无线网卡(不同的芯片组/使用不同的模块,一个是rtl8187,另一个是rt2800usb)。
现在,我已经为每个Pi设置了持久的命名规则,所以当我设置一个新的Pi或者在Pis之间交换无线网卡时,我必须去编辑它,这样新的rtl8187卡仍然是wlan0,而新的rt2800usb卡仍然是wlan1。
有什么方法可以修改持久规则,根据它们使用的模块或其他什么来命名接口吗?理想情况下,我想让它知道,我插入的任何rtl8187卡都应该是wlan0,而任何rt2800usb卡应该是wlan1。
或者作为解决办法,是否有办法使用部分通配符进行MAC地址匹配?我所拥有的同一芯片组的每一张卡都有相同的厂商MAC前缀。
发布于 2016-10-25 06:46:47
我要做的第一件事就是改变
ATTR{address}=="12:34:56:78:9A:AB"至
ATTR{address}=="12:34:56:*"在/etc/udev/rules.d/70-persistent-net.rules中(假设它在您的RaspPi上相同的位置)。
我没有测试它,但这是通常的匹配方式。
如果它有效,只需将该文件复制到每个新的RaspPi。
发布于 2016-10-25 01:35:12
我不认为命名该设备会有帮助,因为您已经注意到,如果设备是wan0还是wan1是从mac地址中删除的,这将是一个决定性的因素。
我唯一能想到的办法就是超级肮脏..。拥有两个网络配置副本&使用udev规则将所需的网络配置复制到适当的位置。(这是可行的,但超级肮脏.)
也许有人可以想出更好的解决方案,但是如果您选择这样的解决方案,方法是在udev规则中匹配设备,在udev规则的末尾有+RUN=/usr/local/bin/bashscript.sh (确保锁定权限)。
我唯一的问题是,我不明白用一个网卡作为wlan1会有什么问题。
我相信你的问题的答案不是从wlan1变成wlan0,而是想出为什么你需要.
下面是一个使用bash脚本的udev规则示例:
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我相信你会在里面找到所有的相关信息
https://unix.stackexchange.com/questions/318670
复制相似问题