更改USB 网卡名称

在code/kernel-6.1/drivers/net/usb/usbnet.c文件中更
有几处地都可以改

最好在添加下面一行。但是要注意同时只能用一个usb网卡,多个不知道会怎么样
strcpy(dev->name,“eth1”); //第三处添加

usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
{struct usbnet			*dev;struct net_device		*net;struct usb_host_interface	*interface;const struct driver_info	*info;struct usb_device		*xdev;int				status;const char			*name;struct usb_driver 	*driver = to_usb_driver(udev->dev.driver);/* usbnet already took usb runtime pm, so have to enable the feature* for usb interface, otherwise usb_autopm_get_interface may return* failure if RUNTIME_PM is enabled.*/if (!driver->supports_autosuspend) {driver->supports_autosuspend = 1;pm_runtime_enable(&udev->dev);}name = udev->dev.driver->name;info = (const struct driver_info *) prod->driver_info;if (!info) {dev_dbg (&udev->dev, "blacklisted by %s\n", name);return -ENODEV;}xdev = interface_to_usbdev (udev);interface = udev->cur_altsetting;status = -ENOMEM;// set up our own recordsnet = alloc_etherdev(sizeof(*dev));if (!net)goto out;/* netdev_printk() needs this so do it as early as possible */SET_NETDEV_DEV(net, &udev->dev);dev = netdev_priv(net);dev->udev = xdev;dev->intf = udev;dev->driver_info = info;dev->driver_name = name;dev->rx_speed = SPEED_UNSET;dev->tx_speed = SPEED_UNSET;net->tstats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats);if (!net->tstats)goto out0;dev->msg_enable = netif_msg_init (msg_level, NETIF_MSG_DRV| NETIF_MSG_PROBE | NETIF_MSG_LINK);init_waitqueue_head(&dev->wait);skb_queue_head_init (&dev->rxq);skb_queue_head_init (&dev->txq);skb_queue_head_init (&dev->done);skb_queue_head_init(&dev->rxq_pause);tasklet_setup(&dev->bh, usbnet_bh_tasklet);INIT_WORK (&dev->kevent, usbnet_deferred_kevent);init_usb_anchor(&dev->deferred);timer_setup(&dev->delay, usbnet_bh, 0);mutex_init (&dev->phy_mutex);mutex_init(&dev->interrupt_mutex);dev->interrupt_count = 0;dev->net = net;strscpy(net->name, "usb%d", sizeof(net->name)); 			//第一次处eth_hw_addr_set(net, node_id);/* rx and tx sides can use different message sizes;* bind() should set rx_urb_size in that case.*/dev->hard_mtu = net->mtu + net->hard_header_len;net->min_mtu = 0;net->max_mtu = ETH_MAX_MTU;net->netdev_ops = &usbnet_netdev_ops;net->watchdog_timeo = TX_TIMEOUT_JIFFIES;net->ethtool_ops = &usbnet_ethtool_ops;// allow device-specific bind/init procedures// NOTE net->name still not usable ...if (info->bind) {status = info->bind (dev, udev);if (status < 0)goto out1;// heuristic:  "usb%d" for links we know are two-host,// else "eth%d" when there's reasonable doubt.  userspace// can rename the link if it knows better.if ((dev->driver_info->flags & FLAG_ETHER) != 0 &&((dev->driver_info->flags & FLAG_POINTTOPOINT) == 0 ||(net->dev_addr [0] & 0x02) == 0))strscpy(net->name, "eth%d", sizeof(net->name)); 			//第二处 /* WLAN devices should always be named "wlan%d" */if ((dev->driver_info->flags & FLAG_WLAN) != 0)strscpy(net->name, "wlan%d", sizeof(net->name));/* WWAN devices should always be named "wwan%d" */if ((dev->driver_info->flags & FLAG_WWAN) != 0)strscpy(net->name, "wwan%d", sizeof(net->name));/* devices that cannot do ARP */if ((dev->driver_info->flags & FLAG_NOARP) != 0)net->flags |= IFF_NOARP;/* maybe the remote can't receive an Ethernet MTU */if (net->mtu > (dev->hard_mtu - net->hard_header_len))net->mtu = dev->hard_mtu - net->hard_header_len;} else if (!info->in || !info->out)status = usbnet_get_endpoints (dev, udev);else {u8 ep_addrs[3] = {info->in + USB_DIR_IN, info->out + USB_DIR_OUT, 0};dev->in = usb_rcvbulkpipe (xdev, info->in);dev->out = usb_sndbulkpipe (xdev, info->out);if (!(info->flags & FLAG_NO_SETINT))status = usb_set_interface (xdev,interface->desc.bInterfaceNumber,interface->desc.bAlternateSetting);elsestatus = 0;if (status == 0 && !usb_check_bulk_endpoints(udev, ep_addrs))status = -EINVAL;}if (status >= 0 && dev->status)status = init_status (dev, udev);if (status < 0)goto out3;if (!dev->rx_urb_size)dev->rx_urb_size = dev->hard_mtu;dev->maxpacket = usb_maxpacket(dev->udev, dev->out);if (dev->maxpacket == 0) {/* that is a broken device */status = -ENODEV;goto out4;}/* let userspace know we have a random address */if (ether_addr_equal(net->dev_addr, node_id))net->addr_assign_type = NET_ADDR_RANDOM;if ((dev->driver_info->flags & FLAG_WLAN) != 0)SET_NETDEV_DEVTYPE(net, &wlan_type);if ((dev->driver_info->flags & FLAG_WWAN) != 0)SET_NETDEV_DEVTYPE(net, &wwan_type);/* initialize max rx_qlen and tx_qlen */usbnet_update_max_qlen(dev);if (dev->can_dma_sg && !(info->flags & FLAG_SEND_ZLP) &&!(info->flags & FLAG_MULTI_PACKET)) {dev->padding_pkt = kzalloc(1, GFP_KERNEL);if (!dev->padding_pkt) {status = -ENOMEM;goto out4;}}status = register_netdev (net);strcpy(dev->name,"eth1"); 							//第三处添加if (status)goto out5;netif_info(dev, probe, dev->net,"register '%s' at usb-%s-%s, %s, %pM\n",udev->dev.driver->name,xdev->bus->bus_name, xdev->devpath,dev->driver_info->description,net->dev_addr);// ok, it's ready to go.usb_set_intfdata (udev, dev);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/453888.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度解析机器学习的四大核心功能:分类、回归、聚类与降维

深度解析机器学习的四大核心功能&#xff1a;分类、回归、聚类与降维 前言分类&#xff08;Classification&#xff09;&#xff1a;预测离散标签的艺术关键算法与代码示例逻辑回归支持向量机&#xff08;SVM&#xff09; 回归&#xff08;Regression&#xff09;&#xff1a;预…

信息学奥赛复赛复习18-CSP-J2022-01解密-二分答案、二分找边界、二分时间复杂度、二分求最小

PDF文档回复:20241017 1 P8814 [CSP-J 2022] 解密 [题目描述] 给定一个正整数 k&#xff0c;有 k 次询问&#xff0c;每次给定三个正整数 ni,ei,di&#xff0c;求两个正整数 pi,qi&#xff0c;使 nipiqi、eidi(pi−1)(qi−1)1 [输入格式] 第一行一个正整数 k&#xff0c;表…

Docker 入门 - 拉取/创建镜像 + 运行和管理容器

写在前面&#xff1a; 本篇简单介绍一下如何入手 Docker&#xff0c;从 创建/拉取 镜像&#xff0c;再到运行和管理容器&#xff0c;还包括导出容器等操作。这里先贴一下官方的文档地址&#xff1a; Docker DocsDocker Documentation is the official Docker library of reso…

在Windows系统中,cmd 查看 MongoDB 相关信息

MongoDB是一种流行的NoSQL数据库&#xff0c;广泛应用于各种现代应用程序中。 1 查看MongoDB的版本号 要查看MongoDB的版本号&#xff0c;可以使用mongo命令连接到MongoDB&#xff0c;然后执行db.version()。 mongo连接到数据库后&#xff0c;执行以下命令&#xff0c;输出M…

java如何部署web后端服务

java如何部署web后端服务 简单记录一下&#xff0c;方便后续使用。 部署流程 1.web打包 2.关掉需要升级的运行中的服务 /microservice/hedgingcustomer-0.0.1-SNAPSHOT/conf/bin/ 执行脚本 sh shutdown.sh 3.解压文件 返回到/microservice 将升级包上传到该路径&#x…

10款超好用的文档加密软件|2024企业常用文档加密软件排行榜!

在当今的数字化时代&#xff0c;企业的数据安全已经成为了一项至关重要的任务。为了确保企业核心信息资产的安全性和完整性&#xff0c;越来越多的企业开始采用文档加密软件。以下是2024年企业常用的10款超好用的文档加密软件排行榜。 1. Ping32文档加密软件 Ping32是一款功能…

重磅发布,Wireshark 4.4.1 修复多个漏洞,性能新升级

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 中午好&#xff0c;我的网工朋友 Wireshark 一直以其强大的数据包捕获和分析功能而闻名。作为网络工程师、安全分析师和开发者的重要工具&#x…

Java项目-基于spingboot框架的校友社交系统系统项目实战(附源码+文档)

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 开发运行环境 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/…

中石化万总经理一行莅临点赋科技公司考察调研

近日&#xff0c;中石化万总经理一行莅临点赋科技公司&#xff0c;进行了坦诚而富有成效的交流&#xff0c;双方在轻松而又热烈的氛围中&#xff0c;逐步达成了初步合作意向。 在参观过程中&#xff0c;点赋科技董事长崔梦姣详细介绍了公司的发展历程、核心技术以及未来的发展规…

IDEA下lombok安装及找不到get,set的问题的解决方法

在IDEA中使用Lombok,但是在编译时&#xff0c;提示找不到set()和get()方法&#xff0c;明明在javabean中使用了Data注解&#xff0c;但是编译器就是找不到。 Idea下安装Lombok(需要二步) 第一步&#xff1a; pom.xml中加入lombok依赖包 1 2 3 4 5 6 7 <!-- https://mvnre…

【真题笔记】09-12年系统架构设计师要点总结

【真题笔记】09-12年系统架构设计师要点总结 41 视图DSSA&#xff08;特定领域架构&#xff09;集成系统数据库管理设计模式操作符运算符综合布线备份数据库集成工作流技术软件质量保证需求管理需求开发结构化方法企业战略数据模型事务数据库主题数据库系统设计原型开发静态分析…

SAP B1 账套锁定解决方案

背景 忘记账套密码时&#xff0c;随着尝试密码失败的次数变多&#xff0c;可能会出现账套锁定并报错的情况&#xff0c;如下图&#xff1a; 本文给出一个解决方案&#xff0c;供参考。 解决方案 效果&#xff1a;无法直接找回密码&#xff0c;或重置密码&#xff0c;但是可以…

代码随想录-环形链表II

题目与解析 题目链接:环形链表II 本题两个关键点&#xff0c;1、确定有环 2、确定环的入口位置 提供两种解法&#xff0c;第一种是我借助了一个辅助的列表来记录指针&#xff0c;空间复杂度O(n)比较无脑 第二种是Carl哥的双指针法&#xff0c;又是套圈问题&#xff0c;…

「毅硕|生信教程」 micromamba:mamba的C++实现,超越conda

1 Micromamba 简介 大家是否有这样的经历&#xff0c;使用conda/anaconda进行环境配置的是否速度非常慢&#xff0c;进度经常卡在“Collecting package metadata”上。甚至有时候需要安装的软件比较多&#xff0c;或者需要用到conda-forge这个最大的channel&#xff0c;conda能…

Windows环境下Qt Creator调试模式下qDebug输出中文乱码问题

尝试修改系统的区域设置的方法&#xff1a; 可以修复问题。但会出现其它问题&#xff1a; 比如某些软件打不开&#xff0c;或者一些软件界面的中文显示乱码&#xff01; 暂时没有找到其它更好的办法。

渗透基础-rcube_webmail版本探测

简介 本文介绍了开源产品RoundCube webmail邮件系统的版本探测思路&#xff0c;并用go语言实现工具化、自动化探测。 正文 0x01 探测思路研究 探测系统版本&#xff0c;最理想的方法就是系统主页html代码中有特定的字符串&#xff0c;比如特定版本对应的hash在主页的html代…

【开源免费】基于SpringBoot+Vue.JS母婴商城系统 (JAVA毕业设计)

本文项目编号 T 030 &#xff0c;文末自助获取源码 \color{red}{T030&#xff0c;文末自助获取源码} T030&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

OpenCV高级图形用户界面(11)检查是否有键盘事件发生而不阻塞当前线程函数pollKey()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 轮询已按下的键。 函数 pollKey 无等待地轮询键盘事件。它返回已按下的键的代码或如果没有键自上次调用以来被按下则返回 -1。若要等待按键被按…

【Ansiable】ansible的模块和主机清单

目录 一、介绍一些运维自动化工具 二、Ansible 概述/简介 三、Ansible 工作机制 3.1 内部工作机制 3.2 外部工作机制 四、Ansible 执行流程 五、Ansblie 安装以及日常操作模块***** 5.1 ansible 环境安装部署 5.2 ansible 命令行模块 5.2.1 command 模块 5.2.2 shel…

大数据-177 Elasticsearch Query DSL - 聚合分析 指标聚合 桶聚合

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…