我正在尝试找到一种方法将我的 Ralink 接口的名称更改为通常的 wlan0。
我使用的应用程序正在寻找这个接口,但是由于我们将 wifi 适配器从英特尔更改为 ralink,因此我们错过了 wlan0,因为 Ralink 使用 ra0。
在所有论坛和博客上,我都看到需要在 /etc/sysconfig/network-scripts/ifcfg-ra0 中更改该设置。遗憾的是,Ubuntu 没有 /etc/sysconfig 文件夹。
答案1
设备名称由内核创建,但您可以向 udev 添加规则,以便将接口重命名为所需的设备。
首先备份你的配置文件
sudo cp /etc/udev/rules.d/70-persistent-net.rules /tmp/70-persistent-net.rules
如果出现问题,您可以使用以下命令恢复到原始状态:
sudo cp /tmp/70-persistent-net.rules /etc/udev/rules.d/70-persistent-net.rules
编辑 udev 规则目录中的文件 70-persistent-net.rules:
sudo nano /etc/udev/rules.d/70-persistent-net.rules
找到与您的持久网络设备相对应的行,如下所示:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="ra*", NAME="ra0"
将名称值更改为想要的名称,这样您将得到如下一行:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="ra*", NAME="wlan0"
然后重新启动计算机并检查是否有正确的接口名称。
答案2
设备名称由内核设置,并由 udev 重命名为人类可读的值。udev 将运行 /lib/udev/rules/ 中的 75-persistent-net-generator.rules 脚本,该脚本将在 /etc/udev/rules.d/ 中生成规则文件 70-persistent-net.rules
此生成器脚本将为内核识别的每个网络适配器向 70-persistent-net.rules 文件添加新规则。当您更换网卡(规则为 eth0)时,旧卡不会从规则中删除,但会添加新卡(eth1)。
在我的情况下,网络适配器不断变化。硬盘被复制并放置在另一台具有完全相同设置的计算机上,但 MAC 地址每次都会不同。但是计算机中的位置 (PCIe) 每次都会相同。我做了以下事情:
我通过从 udev 中删除规则生成器来关闭它,但为了备份目的将其移动:
sudo mv /lib/udev/rules.d/75-persistent-net-generator.rules /home/user/backup/
规则将不再生成。然后我编辑了 udev 规则:
sudo nano /etc/udev/rules.d/70-persistent-net.rules
我删除了生成器设置的规则并将其替换为:
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:1c.0", NAME="eth0"
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:1c.1", NAME="eth1"
ACTION=="add", SUBSYSTEM=="net", ATTR{type}==”1”, KERNEL=="ra*", NAME="wlan0"
现在我的PCIe总线上的两张网卡分别名为eth0和eth1,当我更换它们时,它们将保持不变。
最后一行将回答我的问题。内核传递的具有 ra* 名称的适配器将重命名为 wlan0。在 /etc/network/interfaces 中,我可以调用“iface wlan0 inet dhcp”!
对我来说,这是一个可行的解决方案。我可以复制这个硬盘并将其放入另一台具有相同设置的机器中。而且它有效!现在我可以