首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >udev持久网络规则:基于驱动程序/芯片组的命名接口

udev持久网络规则:基于驱动程序/芯片组的命名接口
EN

Unix & Linux用户
提问于 2016-10-25 00:27:58
回答 2查看 1.1K关注 0票数 1

我正在使用一系列Raspberry Pis进行一个项目,每个无线网卡有两个不同的无线网卡(不同的芯片组/使用不同的模块,一个是rtl8187,另一个是rt2800usb)。

现在,我已经为每个Pi设置了持久的命名规则,所以当我设置一个新的Pi或者在Pis之间交换无线网卡时,我必须去编辑它,这样新的rtl8187卡仍然是wlan0,而新的rt2800usb卡仍然是wlan1。

有什么方法可以修改持久规则,根据它们使用的模块或其他什么来命名接口吗?理想情况下,我想让它知道,我插入的任何rtl8187卡都应该是wlan0,而任何rt2800usb卡应该是wlan1。

或者作为解决办法,是否有办法使用部分通配符进行MAC地址匹配?我所拥有的同一芯片组的每一张卡都有相同的厂商MAC前缀。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2016-10-25 06:46:47

我要做的第一件事就是改变

代码语言:javascript
复制
ATTR{address}=="12:34:56:78:9A:AB"

代码语言:javascript
复制
ATTR{address}=="12:34:56:*"

/etc/udev/rules.d/70-persistent-net.rules中(假设它在您的RaspPi上相同的位置)。

我没有测试它,但这是通常的匹配方式。

如果它有效,只需将该文件复制到每个新的RaspPi。

票数 1
EN

Unix & Linux用户

发布于 2016-10-25 01:35:12

我不认为命名该设备会有帮助,因为您已经注意到,如果设备是wan0还是wan1是从mac地址中删除的,这将是一个决定性的因素。

我唯一能想到的办法就是超级肮脏..。拥有两个网络配置副本&使用udev规则将所需的网络配置复制到适当的位置。(这是可行的,但超级肮脏.)

也许有人可以想出更好的解决方案,但是如果您选择这样的解决方案,方法是在udev规则中匹配设备,在udev规则的末尾有+RUN=/usr/local/bin/bashscript.sh (确保锁定权限)。

我唯一的问题是,我不明白用一个网卡作为wlan1会有什么问题。

我相信你的问题的答案不是从wlan1变成wlan0,而是想出为什么你需要.

下面是一个使用bash脚本的udev规则示例:

代码语言:javascript
复制
ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010|0110|0111|0114|0116|0401|0403|0405|0407|0410", ACTION=="remove", RUN+="/usr/local/bin/secdev_lock.sh"

(拔下安全密匙时锁上笔记本电脑屏幕)

更新:

用于调试可用的卡组件:

代码语言:javascript
复制
SUBSYSTEM=="net", ACTION=="add", RUN+="/usr/local/bin/addnic.sh"

在addnic.sh中;

代码语言:javascript
复制
#!/bin/bash

env > /home/user/udev_$RANDOM.txt

我相信你会在里面找到所有的相关信息

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/318670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档