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)

大家都在看

  • 认识2020年的苹果设计奖获奖者

    苹果设计奖表彰那些在苹果平台上反映最佳设计、创新和技术的开发者的创造性艺术和技术成就。 塑钢3DShapr3D Zrt. 运行CAD软件通常需要一台具有相当处理能力的台式电脑。Sh…

    Linux 2023年6月7日
    079
  • 笔记:linux 总结

    1.开始 Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和…

    Linux 2023年6月14日
    0108
  • DDR4 SDRAM -时序参数小册子

    如前所述,大神的原文链接如下:https://www.systemverilog.io/ddr4-timing-parameters-cheatsheet 参数 功能 ACTIVA…

    Linux 2023年6月7日
    0107
  • 给亨亨猫软件配置系统代理下载国外视频

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    0101
  • 【git】git将本地代码上传远程仓库

    环境要求: windows平台可以直接下载安装git.exe(安装选中加入),右键文件使用git bash按以下命令输入 Ubuntu平台下执行sudo apt install g…

    Linux 2023年6月13日
    0115
  • PIM-DM 组播路由协议仿真

    目的 理解PIM-DM 的应用场景 掌握PIM-DM 的基本配置 理解PIM-DM 中剪枝和嫁接的原理 理解PIM-DM 中的Assert 机制 原理 Source-Specifi…

    Linux 2023年6月8日
    0107
  • docker安装redis

    安装镜像 docker pull redis:7.0 下载配置文件 wget http://download.redis.io/redis-stable/redis.conf 修改…

    Linux 2023年6月7日
    0129
  • redis中key和value的存储大小限制

    String类型:一个String类型的value最大可以存储512M List类型:list的元素个数最多为2^32-1个,也就是4294967295个。 Set类型:元素个数最…

    Linux 2023年5月28日
    0140
  • Unity Profiler的使用

    选中Development Build、Autoconnect Profiler和Script Debugging三个选项,如下图所示。 点击Build And Run按钮,将会编…

    Linux 2023年6月7日
    099
  • 面试之Java String 编码相关

    另有一篇我的字符编码本质入门的文章见这里:https://www.cnblogs.com/uncleguo/p/16008551.html 实话说,作为一个多年Java老年程序员,…

    Linux 2023年6月13日
    0122
  • fake-useragent库自动生成User-Agent

    安装方法 pip(3) install fake-useragent 使用方法如下: import requests from fake_useragent import User…

    Linux 2023年6月13日
    0120
  • 服务器部署 Vue 和 Django 项目的全记录

    本篇记录我在一个全新服务器上部署 Vue 和 Django 前后端项目的全过程,内容包括服务器初始配置、安装 Django 虚拟环境、python web 服务器 uWSGI 和反…

    Linux 2023年6月7日
    0123
  • 每天一个 HTTP 状态码 102

    102 Processing 是用于 WebDAV 请求的一种状态码… 102 Processing 102 Processing 是用于 WebDAV协议 请求的状态…

    Linux 2023年6月7日
    0115
  • 记一次centos挂载ceph存储的坑

    生产有两台服务器,准备用来跑工作流,执行的资源的是放在ceph存储集群中,第一步挂载ceph 执行命令: mount -t ceph xxx:xxx -o name=admin,s…

    Linux 2023年5月27日
    0105
  • ingress-nginx 部署使用

    安装部署 nginx-ingress-controller 输入下面网址:选择版本 https://github.com/kubernetes/ingress-nginx/blob…

    Linux 2023年6月14日
    0100
  • Redis-firewall使用命令

    Redis-firewall使用命令 一、iptables防火墙 1、基本操作 查看防火墙状态 service iptables status 停止防火墙 service ipta…

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