作者

QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118

参考

linux网卡命名规则
Linux重命名网卡名称
Linux网卡命名enp3s0说明
Linux Ubuntu 修改网卡名字
Predictable Network Interface Names
systemd/src/udev/udev-builtin-net_id.c
redhat修改网卡名称
linux修改网卡名称(一般修改为eth0)(redHat7)
centos7/redhat7更改网卡名称为eth0
Linux系统修改网卡名称(eth1修改为eth0)

ubuntu

$ sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
$ sudo apt-get install grub2-common
$ sudo update-grub
$ sudo vim /etc/network/interfaces

另外一种需要编辑/etc/udev/rules.d/70-persistent-net.rules,例如,ATTR{address}=="bc:30:5b:9c:ae:79" 表示MAC地址,KERNEL=="eth*" 是原网卡名,NAME="eth0" 更改网卡名。

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="bc:30:5b:b1:cd:be", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

systemd,

/* retrieve on-board index number and label from firmware */
static int dev_pci_onboard(sd_device *dev, struct netnames *names) {unsigned long idx, dev_port = 0;const char *attr, *port_name = NULL;size_t l;char *s;int r;/* ACPI _DSM — device specific method for naming a PCI or PCI Express device */if (sd_device_get_sysattr_value(names->pcidev, "acpi_index", &attr) < 0) {/* SMBIOS type 41 — Onboard Devices Extended Information */r = sd_device_get_sysattr_value(names->pcidev, "index", &attr);if (r < 0)return r;}r = safe_atolu(attr, &idx);if (r < 0)return r;if (idx == 0 && !naming_scheme_has(NAMING_ZERO_ACPI_INDEX))return -EINVAL;/* Some BIOSes report rubbish indexes that are excessively high (2^24-1 is an index VMware likes to* report for example). Let's define a cut-off where we don't consider the index reliable anymore. We* pick some arbitrary cut-off, which is somewhere beyond the realistic number of physical network* interface a system might have. Ideally the kernel would already filter his crap for us, but it* doesn't currently. */if (idx > ONBOARD_INDEX_MAX)return -ENOENT;/* kernel provided port index for multiple ports on a single PCI function */if (sd_device_get_sysattr_value(dev, "dev_port", &attr) >= 0)dev_port = strtoul(attr, NULL, 10);/* kernel provided front panel port name for multiple port PCI device */(void) sd_device_get_sysattr_value(dev, "phys_port_name", &port_name);s = names->pci_onboard;l = sizeof(names->pci_onboard);l = strpcpyf(&s, l, "o%lu", idx);if (port_name)l = strpcpyf(&s, l, "n%s", port_name);else if (dev_port > 0)l = strpcpyf(&s, l, "d%lu", dev_port);if (l == 0)names->pci_onboard[0] = '\0';if (sd_device_get_sysattr_value(names->pcidev, "label", &names->pci_onboard_label) < 0)names->pci_onboard_label = NULL;return 0;
}

嵌入式平台

开机打印,

[    1.062029] macb ff0b0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0b0000 irq 30 (1e:44:19:4f:f0:07)
[    1.071658] Atheros 8031 ethernet ff0b0000.ethernet-ffffffff:01: attached PHY driver [Atheros 8031 ethernet] (mii_bus:phy_addr=ff0b0000.ethernet-ffffffff:01, irq=POLL)
[    1.087025] macb ff0d0000.ethernet: Not enabling partial store and forward
[    1.094189] libphy: MACB_mii_bus: probed
[    1.169628] macb ff0d0000.ethernet eth1: Cadence GEM rev 0x50070106 at 0xff0d0000 irq 31 (52:76:2c:f7:02:65)
[    1.179262] Xilinx ZynqMP PS PCS/PMA PHY ff0d0000.ethernet-ffffffff:01: attached PHY driver [Xilinx ZynqMP PS PCS/PMA PHY] (mii_bus:phy_addr=ff0d0000.ethernet-ffffffff:01, irq=POLL)
[    1.195810] macb ff0e0000.ethernet: Not enabling partial store and forward
[    1.202964] libphy: MACB_mii_bus: probed
[    1.277627] macb ff0e0000.ethernet eth2: Cadence GEM rev 0x50070106 at 0xff0e0000 irq 32 (be:79:46:c8:71:fd)
[    1.287261] Xilinx ZynqMP PS PCS/PMA PHY ff0e0000.ethernet-ffffffff:01: attached PHY driver [Xilinx ZynqMP PS PCS/PMA PHY] (mii_bus:phy_addr=ff0e0000.ethernet-ffffffff:01, irq=POLL)

这里的mii_bus:phy_addr=ff0e0000.ethernet-ffffffff:01,是下面打印的,

void phy_attached_info(struct phy_device *phydev)
{phy_attached_print(phydev, NULL);
}
EXPORT_SYMBOL(phy_attached_info);#define ATTACHED_FMT "attached PHY driver [%s] (mii_bus:phy_addr=%s, irq=%s)"
void phy_attached_print(struct phy_device *phydev, const char *fmt, ...)
{const char *drv_name = phydev->drv ? phydev->drv->name : "unbound";char *irq_str;char irq_num[8];switch(phydev->irq) {case PHY_POLL:irq_str = "POLL";break;case PHY_IGNORE_INTERRUPT:irq_str = "IGNORE";break;default:snprintf(irq_num, sizeof(irq_num), "%d", phydev->irq);irq_str = irq_num;break;}if (!fmt) {dev_info(&phydev->mdio.dev, ATTACHED_FMT "\n",drv_name, phydev_name(phydev),irq_str);} else {va_list ap;dev_info(&phydev->mdio.dev, ATTACHED_FMT,drv_name, phydev_name(phydev),irq_str);va_start(ap, fmt);vprintk(fmt, ap);va_end(ap);}
}
EXPORT_SYMBOL(phy_attached_print);

其中phydev_name来源于mii_bus注册的名字,而ffffffff就是platform_deviceid没设,获取aliases id给这个变量即可。

static inline const char *phydev_name(const struct phy_device *phydev)
{return dev_name(&phydev->mdio.dev);
}static int macb_mii_init(struct macb *bp)
{...bp->mii_bus->name = "MACB_mii_bus";if (bp->int_pcs) {bp->mii_bus->read = &zynqmp_ps_pcs_read;bp->mii_bus->write = &zynqmp_ps_pcs_write;} else {bp->mii_bus->read = &macb_mdio_read;bp->mii_bus->write = &macb_mdio_write;}snprintf(bp->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x",bp->pdev->name, bp->pdev->id);bp->mii_bus->priv = bp;bp->mii_bus->parent = &bp->dev->dev;
...
}struct platform_device {const char *name;int       id;bool     id_auto;struct device   dev;u32     num_resources;struct resource   *resource;const struct platform_device_id   *id_entry;char *driver_override; /* Driver name to force a match *//* MFD cell pointer */struct mfd_cell *mfd_cell;/* arch specific additions */struct pdev_archdata    archdata;
};

Linux网卡重命名规则相关推荐

  1. Linux 网卡重命名

    生成系统引导文件 vim /etc/default/grub GRUB_CMDLINE_LINUX行末添加:net.ifnames=0 biosdevname=0 使上面的更改生效 grub2-mkc ...

  2. CentOS多网卡重命名配置

    CentOS多网卡重命名配置 在CentOS7中我安装了3块网卡,但是名字是enoxxxxx的格式,让我这个有强迫症的***座很是不爽,以下是我配置网卡并且重命名为ethx的详细步骤 前提工作要做好: ...

  3. Linux 批量重命名工具 rename 的使用

    Linux 批量重命名工具 rename 的使用 安装 如果还没有安装,先执行安装命令 sudo apt-get install rename 用法 安装后,我们执行rename --help 命令来 ...

  4. 戴尔服务器修改网卡名称,Centos 7 中网卡重命名及网乱序解决方案

    1. udev 网卡规则加载顺序 1.1 udev 配置文件 路径 作用 /lib/udev/rules.d 包含 udev 默认配置文件(不要修改) /etc/udev/rules.d/*.rule ...

  5. Linux shell - 重命名文件和文件夹(mv)

    linux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹. 例子:将目录A重命名为B mv A B 例子:将/a目录移动到/b下,并重命名为c mv /a /b/c 转载于:htt ...

  6. linux下重命名文件

    linux下重命名文件有两种方式: 1.较简单的处理命令:mv mv 原文件名 新文件名 如:mv myFile newName 将MyFile重命名为newName. 2.linux提供了一个重命名 ...

  7. 五种方法实现Linux批量重命名文件

    Linux批量重命名文件会涉及到改变一个字母.改变一些相连字母.改变某些位置的字母.在最前面加上某些字母.或者改变字母的大小写.完成这里五个方法基本上就会解决了Linux批量重命名的工作. 1.我想把 ...

  8. linux文件重命名命令

    linux下重命名文件有两种方式: 1.较简单的处理命令:mv mv 原文件名 新文件名 如:mv myFile newName 将MyFile重命名为newName. 2.linux提供了一个重命名 ...

  9. linux 如何重命名

    linux 如何重命名 大家可以先看一下当前的这个目录 目前是zxing-cpp 接下来,我们需要做的就是使用这个命令就可以 mv zxing-cpp zxing 这个时候就可以看到已经修改成功了

最新文章

  1. 300万知乎多标签文本分类任务经验分享(附源码)
  2. 放眼2018年,我们对虚拟现实产品有五大疑问
  3. Android 屏幕自动旋转-Sensor属性
  4. 聚类之isodata算法
  5. [导入]C#向Sql Server中插入记录时单引号的处理
  6. Tomcat - 你该知道的Tomcat生产环境部署
  7. 链表的基本操作 java_JAVA实现单链表的基本操作
  8. UVA 11210 Chinese Mahjong
  9. Qt工作笔记-使用QGraphicsItem加载图片并实现碰撞
  10. linux 安装源码网卡包,【linux命令】Linux通过yum 或者源码编译安装vnstat查看网卡流量...
  11. 【maven】Mac的仓库拷贝到Windows的离线环境下无法引入问题
  12. redhat 6.8 配置 centos6 163 的 yum 源
  13. VUE项目启动:You may use special comments to disable some warnings
  14. Raspberry Pi 构建一个飞机观察器
  15. 使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)——初识WiX
  16. DTU是什么,什么是工业4G DTU?
  17. Android 6.0 AppOps 简介
  18. HN2015集训 永远亭的竹笋采摘
  19. matlab飞机飞行
  20. python中的时间处理模块(二):datetime模块之timedelta类详解

热门文章

  1. 2021年塔式起重机司机模拟考试题及塔式起重机司机作业考试题库
  2. 【探花交友】用户登录总结
  3. OpenHarmony成长计划学生挑战赛解读
  4. Spring Boot配置文件---约定大于配置
  5. 手机端html5网页音乐播放,js实现移动端H5页面音乐播放,兼容微信 safari浏览器...
  6. Chrome | BookMarks
  7. 由网易云音乐跑步FM功能引申出的一些产品设计思路相关的粗浅看法
  8. TSFS终端存储文件系统边缘计算技术构架
  9. Node后台邮件服务器
  10. 【附源码】Java计算机毕业设计计算机配件价格查询微信小程序(程序+LW+部署)