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)

大家都在看

  • maven安装及导入本地jar包

    一、maven的安装方法 1.去maven官网下载适合的版本 下载地址: 官方下载地址 2.下载后解压到任意目录 3.配置系统环境变量 M2_HOME ,值为maven解压后的目录…

    Linux 2023年6月14日
    0137
  • 2020年12月-第01阶段-前端基础-HTML CSS 项目阶段(一)

    品优购项目(一) 目标: 能会引入ico图标 能简单看懂网站优化的三大标签 能使用字体图标 ( 重点 ) 能说出我们css属性书写顺序 1. 品优购项目介绍 项目名称:品优购 项目…

    Linux 2023年6月8日
    0125
  • docker 部署etcd

    原文链接:https://www.zhoubotong.site/post/77.html安装docker-compose这里就不介绍了,直接进入正题:创建etcd数据目录(根据需…

    Linux 2023年6月6日
    0121
  • Linux常用文件权限命令详解

    pwd pwd命令用于获取当前工作目录的绝对路径。 使用示例: pwd 效果如下图: cd cd命令用于切换工作目录。 使用示例: cd &#x4E07;&#x73…

    Linux 2023年5月27日
    0119
  • Linux内核驱动–硬件访问I/O【转】

    寄存器与内存 寄存器和内存之间有什么区别? [En] What is the difference between registers and memory? 寄存器和RAM的主要…

    Linux 2023年5月27日
    081
  • Java基础系列–02_运算符和程序的语句

    运算符:(1)算术运算符:+,-,*,/,%,++,–(加、减、乘、除、取余、自增,自减)++和–的注意事项:a:他们的作用是自增或者自减b:使用1.单独使…

    Linux 2023年6月7日
    0101
  • 一文带你全面了解什么是颠覆时代的Web3.0未来互联网

    前言 大家还记得前段时间Meta公司,也就是FaceBook改名后的那家,CEO扎克伯格发的那张元宇宙自拍吗? 他没想到的是,随手的一张自拍却引来了群嘲,20年前的像素感,粗糙的人…

    Linux 2023年6月7日
    0116
  • Nginx笔记

    实现负载均衡 这里采用的是权重 进入配置文件目录cd /usr/local/nginx/conf/ //实际根据自己的目录来 编辑vim nginx.conf 这段代码上方加入自定…

    Linux 2023年6月14日
    0110
  • Sharding-jdbc + Seata + Nacos整合

    前置条件 先了解Sharding-jdbc、Seata、Nacos这三样东西各自的作用以及单独使用时的配置。 如果已经做过Seata + Nacos的整合的,直接看最后的 Seat…

    Linux 2023年6月7日
    0112
  • 离线版centos8环境部署迁移监控操作笔记

    嗨咯,前两天总结记录了离线版centos8下docker的部署笔记,今天正好是2021年的最后一天,今天正好坐在本次出差回家的列车上,车上没有上面事做,索性不如把本次离线版cent…

    Linux 2023年6月14日
    0112
  • Mybatis源码解读-SpringBoot中配置加载和Mapper的生成

    本文 mybatis-spring-boot探讨在springboot工程中mybatis相关对象的注册与加载。 建议先了解mybatis在spring中的使用和springboo…

    Linux 2023年6月7日
    0125
  • 正则匹配中文

    [\u4e00-\u9fa5]+ 在线正则调试工具 posted @2022-09-14 17:21 自在拉基 阅读(17 ) 评论() 编辑 Original: https://…

    Linux 2023年6月8日
    0107
  • ThinkPHP5 远程命令执行漏洞

    一、ThinkPHP介绍 轻量级框架,内部OOP和面向过程代码都存在,是国人自己开发的框架。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,…

    Linux 2023年6月14日
    084
  • Zabbix-企业级监控系统

    Zabbix-企业级监控系统 Zabbix 手册-官网 1.Zabbix简介 Zabbix 是一款监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康和完…

    Linux 2023年6月13日
    084
  • 庐山真面目之十三微服务架构中如何在Docker上使用Redis缓存

    一、介绍 1、开始说明在微服务器架构中,有一个组件是不能少的,那就是缓存组件。其实来说,缓存组件,这个叫法不是完全正确,因为除了缓存功能,它还能完成其他很多功能。我就不隐瞒了,今天…

    Linux 2023年5月28日
    088
  • 06-ElasticSearch搜索结果处理

    * package com.coolman.hotel.test; import com.coolman.hotel.pojo.HotelDoc; import com.faste…

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