CentOS7内置Realtek网卡驱动r8169降级r8168

前几天装了几台服务器测试,在使用的过程中发现,每次重启系统,登录界面会弹出网卡提示 “r8169 0000:02:00 eth0 Invalid ocp reg 17758!”

CentOS7内置Realtek网卡驱动r8169降级r8168

系统版本:

CentOS7内置Realtek网卡驱动r8169降级r8168

经过测试发现:

1、开机前将eth0/eth1网口插上网线,系统启动后识别到eth0/eth1网口有网线连接,此时系统登录界面不会提示网卡信息。

2、如果开机前eth0/eth1没连网线,此时登录界面会弹出网卡提示,此时给eth0/eth1插上网线识别成功后,提示消失。紧接着拔掉eth0/eth1网线,也不会再弹出提示。

3、主板上还插了一个Intel的千兆四口PCI-E网卡,这个网卡倒是没有提示。

总结:当网卡配置为ONBOOT=yes,板载的两个网卡开机界面会提示,Intel网卡不提示。配置ONBOOT=no时,开机不启动网卡,也不会出现提示。

经过几天的折腾,发现是网卡驱动问题。

一、查看网卡驱动

查看系统当前所有网卡信息:

lspci |grep net

发现板载的2个网卡都是Realtek的网卡,版本是RTL8111/8168/8411

CentOS7内置Realtek网卡驱动r8169降级r8168

查看当前eth0使用网卡驱动版本:

ethtool -i eth0

发现系统当前使用的网卡驱动是r8169,(这个驱动版本应该是centos7默认安装的版本)

CentOS7内置Realtek网卡驱动r8169降级r8168

到这里怀疑是网卡驱动版本不匹配导致的,网上查了一下发现关于r8169和r8168的描述还挺多,大部分都是网络不通,网卡启动失败等。

既然版本不一样,那就让它一样呗,开搞。

二、更新网卡驱动

先去Realtek官网下载对应版本的网卡驱动:

https://www.realtek.com/zh/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software

发现最新版本更新到8.050.03了,才113kb,直接下载

CentOS7内置Realtek网卡驱动r8169降级r8168

解压安装:

tar -jxvf r8168-8.050.03.tar.bz2
cd r8168-8.050.03
#解压后有一个README文件,发现已经写好脚本了,直接执行脚本安装,简单
./autorun.sh

果然,事情不会那么顺利,这里发现无法直接编译通过。报了三处错误,如下图所示:

CentOS7内置Realtek网卡驱动r8169降级r8168

2.1编译错误处理

2.1.1、’ether_addr_copy’重定义

根据报错提示的文件及行数,编辑文件:r8168.h,找到53行。

CentOS7内置Realtek网卡驱动r8169降级r8168

这里需要修改第52行内容,根据系统内核版本修改,我这个是3.10.0

#if LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0)

改为:

#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
2.1.2、初始值设定项里有未知的字段’ndo_change_mtu’

先查看系统内核:

cat /usr/src/kernels/3.10.0-1160.el7.x86_64/include/linux/netdevice.h |grep ndo_change_mtu

CentOS7内置Realtek网卡驱动r8169降级r8168

发现有这个字段:ndo_change_mtu_rh74 ,修改r8168_n.c文件的第26768行,把ndo_change_mtu修改为ndo_change_mtu_rh74

.ndo_change_mtu     = rtl8168_change_mtu,

改为

.ndo_change_mtu_rh74     = rtl8168_change_mtu,

CentOS7内置Realtek网卡驱动r8169降级r8168
2.1.3、’struct net_device’没有名为’last_rx’的成员

这个错误,直接注释掉即可,修改r8168_n.c文件的第29487行,将改行注释掉

CentOS7内置Realtek网卡驱动r8169降级r8168

修改完成后,继续编译:

CentOS7内置Realtek网卡驱动r8169降级r8168

没有报错,查看网卡驱动版本:

CentOS7内置Realtek网卡驱动r8169降级r8168

改过来了,重启后,发现系统加载的还是r8169,查了资料发现,Centos7版本替换驱动文件后,需要执行 dracut --force命令来更新initrd/initramfs,以防止加载旧版本的驱动。

CentOS7内置Realtek网卡驱动r8169降级r8168

执行完后,重启系统。查看网卡驱动信息:

CentOS7内置Realtek网卡驱动r8169降级r8168

加载的是r8168,这样,即使eth0/eth1不插网线,开机界面也不会提示网卡信息了。

Original: https://www.cnblogs.com/xujiecnblogs/p/16725022.html
Author: xujie333
Title: CentOS7内置Realtek网卡驱动r8169降级r8168

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/574030/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【转】京东评价系统海量数据存储设计

    概述 京东的商品评论目前已达到数十亿条,每天提供的服务调用也有数十亿次,而这些数据每年还在成倍增长,而数据存储是其中最重要的部分之一,接下来就介绍下京东评论系统的数据存储是如何设计…

    Linux 2023年6月16日
    0126
  • 模板化的封装,降低业务代码开发

    复杂的问题,往往需要简单的逻辑; 一、业务背景 业务开发是一件复杂且耗时的工程,所以最近几年出了一个很火的概念叫做”低代码”开发,简单的说就是开发人员通过简…

    Linux 2023年6月14日
    090
  • linux与windows的批处理应用

    本文主要记录一下,不同服务器部署springboot项目时,用到的批处理命令 linux,针对maven-assembly-plugin打的tar.gz包的springboot项目…

    Linux 2023年6月14日
    089
  • 自定义Naive UI的数据表格Data Table中按钮Button图标

    { title: "Action", key: "actions", render(row) { return h( NButton, { …

    Linux 2023年6月8日
    0106
  • centos系统和Ubuntu系统命令区别以及常见操作

    一.前言 二.系统环境 三.命令区别 3.1 使用习惯和命令区别 3.2 服务管理的区别 3.3 软件包信息区别 四.Ubuntu系统常见操作 4.1 Ubuntu系统apt和ap…

    Linux 2023年6月7日
    0227
  • [数据库]ACID、CAP、BASE特性

    SQL与noSQL 对比项 关系型SQL 非关系型SQL 关系表 数据集(键值/JSON文档/哈希表/其它) 结构化、提前定义表结构 动态调整模式,非结构化 纵向扩展,提高处理能力…

    Linux 2023年6月13日
    085
  • 渐变色搭配网站(模仿)

    html;gutter:true; 渐变色</p> <pre><code> * { margin: 0; } body { display: f…

    Linux 2023年6月13日
    086
  • SQL错题集

    查找最晚入职员工的所有信息 查找入职员工时间排名倒数第三的员工所有信息 获取所有部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary 从ti…

    Linux 2023年6月14日
    093
  • JAVA设计模式-适配器模式

    JAVA设计模式-适配器模式 介绍 适配器模式是一种结构型模式,它主要解决接口之间的兼容问题。当我们需要使用某个类的接口时,但是这个类的接口目前并不符合我们使用需求,不能直接使用,…

    Linux 2023年6月6日
    0103
  • 杨辉三角的变形—牛客网

    杨辉三角的变形_牛客题霸_牛客网 (nowcoder.com) #include using namespace std; int main() { //这个树的偶数规律为 -1 …

    Linux 2023年6月13日
    0119
  • shell相关知识2

    <li class="tool-item tool-active is-like tool-clicked"><a href="ja…

    Linux 2023年5月28日
    077
  • docker 常用批量操作

    显示所有镜像的tag docker images |awk ‘{print $1":"$2}’ 删除所有镜像 docker images |awk ‘{prin…

    Linux 2023年6月6日
    097
  • 小白上手Linux系统安装jdk教程

    Eg:将上传后的jdk,解压到/home/lzh/jdk目录下,命令如下: tar -zxvf ./ jdk 版本号 -C /home/lzh/jdk/ 注意末尾必须加&#8221…

    Linux 2023年5月27日
    082
  • echarts属性的设置大全(完整大全)

    1. &#x5168;&#x56FE;&#x9ED8;&#x8BA4;&#x80CC;&#x666F;&#xA0; &amp…

    Linux 2023年6月13日
    066
  • Makefile

    target … : prerequisites … command … … target可以是一个object file(目标文件),也可以是一个执行文件,还可以…

    Linux 2023年6月7日
    089
  • 大数据——克隆主机并配置集群

    利用VMware的克隆功能,克隆出 hadoop102、 hadoop103、 hadoop104三台主机 克隆完成后,记得修改文件( root用户下) vim /etc/sysc…

    Linux 2023年6月8日
    0237
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球