克隆系统+网络接口

use*_*843 10 networking udev mac-address raspberry-pi

我已经制作了我的系统的映像,并将它交给了某人运行。他们已经成功地用映像刷新了他们的系统并正在运行它。

问题如下:

系统通常有 2 个无线适配器。两者都出现在 lsusb 中:

pi@raspberry:~ $ lsusb
Bus 001 Device 004: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Run Code Online (Sandbox Code Playgroud)

我已经/etc/udev/rules.d/70-persistent-net.rules通过它们的 mac 或硬件地址设置了文件中的接口,这在我的系统上运行良好,但在他的系统上,显然(虽然他使用相同类型和型号的硬件)它们是不同的,因此,他的 mac地址不同,所以他的 70-persistent-net.rules 没用,给他带来了问题。

为了将来避免这种情况,有没有一种方法可以设置它,以便它可能查找模型类型,例如:

 EW-7811Un -> wlan0
 SMSC9512 -> wlan1
Run Code Online (Sandbox Code Playgroud)

并设置这些,而不是依靠mac地址?

Ale*_*hev 13

MAC 地址中的前三个八位字节唯一标识设备的制造商。Udev 规则允许您匹配任意数量的带有星号的字符。因此,您可以编写一个通用规则来匹配特定供应商的任何设备:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="74:2f:68*", NAME="wlan0"
Run Code Online (Sandbox Code Playgroud)

或者,您可以停止地址匹配并改用其他参数。在两台计算机上运行以下命令:

sudo udevadm info -a -p /sys/class/net/wlan0
Run Code Online (Sandbox Code Playgroud)

(当然,替换接口的名称),看看你看到了什么共同的价值观;然后在您的规则中使用它们。

编写 udev 规则可能是有关该主题的最佳文档。