udev修改网卡name的patch

本文介绍了网卡名称的生成规则,特别关注了udev系统中如何根据特定参数如vendorid来生成网卡名称。通过分析补丁文件揭示了网卡名称的具体构成元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网卡的name一般是在udev中命名的,这个patch 为https://github.com/systemd/systemd/pull/5933/files
从这个patch中可以看到网卡name有一定的规则,其中vendor id 一般占四个字符
具体的规则如下:
  *   [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]
  *                                         — USB port number chain
  *   v<slot>                               - VIO slot number (IBM PowerVM)
+ *   a<vendor><model>i<instance>           — Platform bus ACPI instance id
下面的code中可以看到网卡规则合成网卡name
+        /* Platform devices are named after ACPI table match, and instance id
+         * eg. "/sys/devices/platform/HISI00C2:00");
+         * The Vendor (3 or 4 char), followed by hexdecimal model number : instance id.
+         */
+        if (sscanf(syspath, pattern, vendor, &model, &instance, ðid) != 4)

例如这里的vendor id就是从sys文件系统中会的,例如这里的/sys/devices/platform/HISI00C2:00");

 

### RedHat 5.5 中 Udev 进行网卡命名 在 RedHat 5.5 中,Udev 是用于管理设备节点和处理热插拔事件的子系统。对于网卡命名,在该版本中可以通过编辑特定文件来实现自定义网卡名称。 #### 修改 `/etc/udev/rules.d/` 下的相关规则文件 为了确保网卡能够按照预期的方式被命名,可以在 `/etc/udev/rules.d/` 目录下创建一个新的规则文件或修改现有的规则文件。通常情况下会新建一个名为 `70-persistent-net.rules` 的文件[^1]: ```bash SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="ethX" ``` 上述命令中的 `ATTR{address}` 应替换为实际 MAC 地址,而 `NAME` 则是要赋予的新名字(如 eth0、eth1)。这允许管理员通过指定硬件地址来固定分配给定接口的名字。 #### 配置网络脚本 除了设置 udev 规则外,还需要调整位于 `/etc/sysconfig/network-scripts/ifcfg-*` 文件内的参数以匹配新的网卡名称。例如: ```bash DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 HWADDR=XX:XX:XX:XX:XX:XX TYPE=Ethernet USERCTL=no PEERDNS=yes NM_CONTROLLED=no ``` 这里的关键字段是 `DEVICE` 和 `HWADDR` ,它们分别指定了逻辑设备名以及对应的MAC地址[^2]。 #### 更新内核模块加载顺序 (可选) 有时可能需要调整内核启动过程中加载驱动程序的时间点,以便正确识别并初始化所有网络适配器。可以考虑编辑 `/etc/modprobe.conf` 或者相应位置下的其他配置文件来控制这一点。 完成以上更改之后重启计算机让改动生效,并验证新设定是否按计划工作正常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值