RK3588修改eth0和eth1,对调这两个网卡设备的名称

2023-09-18 16:25:10

1、以太网卡的名称一般是ethX(X可以是0,1,2,3…),一般我们的设备只有一个网卡,并且一般也不会改变它的网卡名称,所以不需要关注此问题,但是有一些设备有两三个网卡,有时候我们需要eth0是指定的硬件网卡设备,此时我们就需要人为干预一下,修改一下网卡的名称,使其满足我们的使用场景。
2、在rk平台,假如你的两个网卡都是使用的gmac口,例如gmac0和gmac1口,此时只需要在dts适当调整一下位置,让gmac1放在dts比较靠前的位置,在gmac0之前,让gmac1端的网卡先被注册,即可对调eth0和eth1网卡设备;

3、如果你的网卡设备一个是接的gmac0,一个是其他的接口,比如pcie的网卡,那么2的方法就不管用了。
此时需要去到驱动端去修改。
例如我这里,主控平台是rk3588,kerne版本是5.1,gmac0端的网卡注册成了eth0,对应pcie网卡只能注册成eth1了,
我这里由于设备使用要求,要把pcie网卡命名成eth0,才能满足要求,此时就需要把gmac端对应的网卡命名成eth1。
修改如下:在注册网卡设备之前使用strcpy去修改,例如我这里, 分别找到gmac端和pcie端网卡注册的地方,在网卡注册之前去修改好它的设备名称:

gmac端网卡注册的地方(网卡设置注册接口:register_netdev):

+++ b/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -5198,12 +5198,15 @@ int stmmac_dvr_probe(struct device *device,
                goto error_phy_setup;
        }

+       printk("czd: _%s_ %d 1111 ndev->name is %s\n", __func__, __LINE__, ndev->name);
+        strcpy(ndev->name, "eth1"); //rename eth0 to eth1 by caizd
        ret = register_netdev(ndev);
        if (ret) {
                dev_err(priv->device, "%s: ERROR %i registering the device\n",
                        __func__, ret);
                goto error_netdev_register;
        }
+       printk("czd: _%s_ %d 2222 ndev->name is %s\n", __func__, __LINE__, ndev->name);

pcie端网卡注册的地方:

+++ b/kernel/drivers/net/ethernet/realtek/r8125/r8125_n.c
@@ -14065,12 +14066,15 @@ rtl8125_init_one(struct pci_dev *pdev,
         }

         rtl8125_tally_counter_clear(tp);
-
+       printk("czd: _%s_ %d 1 pdev-name is %s\n", __func__, __LINE__, dev->name);
         pci_set_drvdata(pdev, dev);
+        strcpy(dev->name, "eth0"); //add by caizd
+       printk("czd: _%s_ %d 2 pdev-name is %s\n", __func__, __LINE__, dev->name);
         rc = register_netdev(dev);
         if (rc)
                 goto err_out;
更多推荐

解锁网络世界的利器:代理IP与Socks5代理

随着跨界电商、爬虫、网络安全和游戏等领域的不断发展,网络工程师们正面临着越来越多的挑战和机会。在这个信息爆炸的时代,如何更有效地访问、保护和探索网络资源成为了网络工程师们的首要任务。本文将重点介绍代理IP和Socks5代理,它们是网络世界的利器,为网络工程师提供了强大的工具来应对各种技术挑战。代理IP的妙用代理IP是一

海外代理IP是什么?如何使用?

一、海外代理IP是什么?首先,代理服务器是在用户和互联网之间提供网关的系统或路由器。它是一个服务器,被称为“中介”,因为它位于最终用户和他们在线访问的网页之间。海外IP代理是就是指从海外地区获取的IP地址,用于将互联网连接路由通过位于不同国家或地区的服务器。这种代理服务允许用户隐藏其真实的地理位置,并获得访问其他国家或

HTTP Tunnel与后门攻击

后门攻击是指利用隐藏在系统中的漏洞或者特殊设计,以获取未授权的访问权限或者绕过安全控制的攻击方式。通过后门攻击,攻击者可以在受感染的系统上进行非法操作、窃取敏感信息或者控制系统。后门攻击可以采用多种形式,其目的都是为了绕过安全机制并获取非法访问权限。主要形式的后门攻击有以下几种:软件后门:攻击者在软件中嵌入恶意代码或漏

预防API漏洞简述

随着对网络应用程序和数字平台的日益依赖,应用程序编程接口(API)的使用变得越来越流行。如果你不熟悉这个术语,API允许应用程序相互通信,它们在现代软件开发中发挥着至关重要的作用。然而,API使用量的增加也导致了API违规数量的增加。当未经授权的个人或系统访问API及其包含的数据时,就会发生这些违规行为。受害者可以证明

基于安卓Java试题库在线考试系统uniapp 微信小程序

本文首先分析了题库app应用程序的需求,从系统开发环境、系统目标、设计流程、功能设计等几个方面对系统进行了系统设计。开发出本题库app,主要实现了学生、教师、测试卷、试题、考试等。总体设计主要包括系统功能设计、该系统里充分综合应用Mysql数据库、JAVA等相关知识。网页界面的构成,具备简单易懂、便捷等特征。设计过程中

什么是Vue的keep-alive组件?有什么作用

Vue的<keep-alive>组件:优化性能和缓存组件Vue.js是一款流行的JavaScript框架,用于构建现代化的前端应用程序。在Vue中,有一个强大的组件叫做<keep-alive>,它用于缓存和重用组件,从而提高应用程序的性能。本文将深入介绍Vue的<keep-alive>组件,解释它的作用和如何使用它。什

Java面试八股文宝典:初识数据结构-数组的应用扩展之HashMap

前言除了基本的数组,还有其他高级的数据结构,用于更复杂的数据存储和检索需求。其中,HashMap是Java集合框架中的一部分,用于存储键值对(key-valuepairs)。HashMap允许我们通过键来快速查找和检索值,类似于字典或关联数组的概念。HashMap在实际编程中广泛应用于各种场景,包括缓存、数据库索引、数

Kafka实时数据即席查询应用与实践

Kafka中的实时数据是以Topic的概念进行分类存储,而Topic的数据是有一定时效性的,比如保存24小时、36小时、48小时等。而在定位一些实时数据的Case时,如果没有对实时数据进行历史归档,在排查问题时,没有日志追述,会很难定位是哪个环节的问题。一、背景Kafka中的实时数据是以Topic的概念进行分类存储,而

WBS中的控制账户解释

定义控制账户(ControlAccount,简称(CA)是项目管理中用来控制成本和进度的一种方法。控制账户通常是WBS(工作分解结构)的中间层级,用来对下一级的任务进行控制和管理。特点和作用特点控制账户是对WBS中工作包或工作包集合的进一步分解。控制账户是对某一范围内工作、成本和进度的控制点。控制账户可以是项目的基本组

如何解决 503 Service Temporarily Unavailable?

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🐅🐾猫头虎建议程序员必备技术栈一览表📖:🛠️全栈技术FullStack:📚MERN/MEAN/MEVNStack|🌐Jamstack|🌍GraphQL|🔁RESTfulAPI|⚡WebSockets|🔄CI/CD|🌐Git&Versio

一篇让你使用vue-cli搭建SPA项目

目录一.Vue-CLi二.SAP项目三.为什么使用vue-cli搭建SPA项目四.SPA项目的搭建4.1.检查4.2.安装4.3.构建4.4.启动4.5.导入​编辑五.路由及嵌套使用5.1.路由5.2.嵌套好啦今天到这了,希望能帮到你!!!一.Vue-CLiVueCLI是一个基于Vue.js快速开发单页应用的脚手架工具

热文推荐