Linux网卡重命名规则
作者
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_device
的id
没设,获取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网卡重命名规则相关推荐
- Linux 网卡重命名
生成系统引导文件 vim /etc/default/grub GRUB_CMDLINE_LINUX行末添加:net.ifnames=0 biosdevname=0 使上面的更改生效 grub2-mkc ...
- CentOS多网卡重命名配置
CentOS多网卡重命名配置 在CentOS7中我安装了3块网卡,但是名字是enoxxxxx的格式,让我这个有强迫症的***座很是不爽,以下是我配置网卡并且重命名为ethx的详细步骤 前提工作要做好: ...
- Linux 批量重命名工具 rename 的使用
Linux 批量重命名工具 rename 的使用 安装 如果还没有安装,先执行安装命令 sudo apt-get install rename 用法 安装后,我们执行rename --help 命令来 ...
- 戴尔服务器修改网卡名称,Centos 7 中网卡重命名及网乱序解决方案
1. udev 网卡规则加载顺序 1.1 udev 配置文件 路径 作用 /lib/udev/rules.d 包含 udev 默认配置文件(不要修改) /etc/udev/rules.d/*.rule ...
- Linux shell - 重命名文件和文件夹(mv)
linux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹. 例子:将目录A重命名为B mv A B 例子:将/a目录移动到/b下,并重命名为c mv /a /b/c 转载于:htt ...
- linux下重命名文件
linux下重命名文件有两种方式: 1.较简单的处理命令:mv mv 原文件名 新文件名 如:mv myFile newName 将MyFile重命名为newName. 2.linux提供了一个重命名 ...
- 五种方法实现Linux批量重命名文件
Linux批量重命名文件会涉及到改变一个字母.改变一些相连字母.改变某些位置的字母.在最前面加上某些字母.或者改变字母的大小写.完成这里五个方法基本上就会解决了Linux批量重命名的工作. 1.我想把 ...
- linux文件重命名命令
linux下重命名文件有两种方式: 1.较简单的处理命令:mv mv 原文件名 新文件名 如:mv myFile newName 将MyFile重命名为newName. 2.linux提供了一个重命名 ...
- linux 如何重命名
linux 如何重命名 大家可以先看一下当前的这个目录 目前是zxing-cpp 接下来,我们需要做的就是使用这个命令就可以 mv zxing-cpp zxing 这个时候就可以看到已经修改成功了
最新文章
- 300万知乎多标签文本分类任务经验分享(附源码)
- 放眼2018年,我们对虚拟现实产品有五大疑问
- Android 屏幕自动旋转-Sensor属性
- 聚类之isodata算法
- [导入]C#向Sql Server中插入记录时单引号的处理
- Tomcat - 你该知道的Tomcat生产环境部署
- 链表的基本操作 java_JAVA实现单链表的基本操作
- UVA 11210 Chinese Mahjong
- Qt工作笔记-使用QGraphicsItem加载图片并实现碰撞
- linux 安装源码网卡包,【linux命令】Linux通过yum 或者源码编译安装vnstat查看网卡流量...
- 【maven】Mac的仓库拷贝到Windows的离线环境下无法引入问题
- redhat 6.8 配置 centos6 163 的 yum 源
- VUE项目启动:You may use special comments to disable some warnings
- Raspberry Pi 构建一个飞机观察器
- 使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)——初识WiX
- DTU是什么,什么是工业4G DTU?
- Android 6.0 AppOps 简介
- HN2015集训 永远亭的竹笋采摘
- matlab飞机飞行
- python中的时间处理模块(二):datetime模块之timedelta类详解
热门文章
- 2021年塔式起重机司机模拟考试题及塔式起重机司机作业考试题库
- 【探花交友】用户登录总结
- OpenHarmony成长计划学生挑战赛解读
- Spring Boot配置文件---约定大于配置
- 手机端html5网页音乐播放,js实现移动端H5页面音乐播放,兼容微信 safari浏览器...
- Chrome | BookMarks
- 由网易云音乐跑步FM功能引申出的一些产品设计思路相关的粗浅看法
- TSFS终端存储文件系统边缘计算技术构架
- Node后台邮件服务器
- 【附源码】Java计算机毕业设计计算机配件价格查询微信小程序(程序+LW+部署)