Linux RTL8111/RTL8168 不能联网 / 最新版驱动下载安装

注: 机翻,未校对。


如何让 Realtek RTL8111/RTL8168 在 Linux 下工作

这篇文章于 2016 年 8 月在我原来的博客上发布。尽管如今 Linux 下的 RTL8111/RTL8168 网络接口的情况变得越来越稳定,但它们仍然会导致数据包丢失或网络连接不稳定等问题。

通过这个简短的指南,展示如何安装 r8168 而不是 r8169 驱动程序。如今,大多数 Linux 发行版都默认使用 r8169 驱动程序。r8168 驱动程序有时更稳定,但由于许可证限制,默认情况下未启用。本指南介绍了安装 r8168 驱动程序的两种方法。

要求

本指南假定有一个有效的网络连接。仅当无法下载包含实际 RTL8111/RTL8168 和 r8169 驱动程序的软件包时,才需要额外的网络适配器(例如,因为已经遇到大量数据包丢失 / 连接中断)。另一种方法是从另一台计算机单独下载每个软件包(r8168 驱动程序和依赖项),然后使用 U 盘传输它。但是使用 USB 以太网适配器绝对是更方便的方式。

自动方式(仅适用于 Debian 和 Ubuntu)

Debian 几年前将 r8168 驱动程序添加到他们的非自由存储库中。话虽如此,如果还没有在 Debian 安装中启用非自由存储库,那么现在就必须这样做。如果使用的是最新的 Debian 版本(在撰写本文时,最新的版本是 bookworm),必须像这样调整 /etc/apt/sources.list 文件:

deb http://deb.debian.org/debian/bookworm main contrib non-free

对于 Ubuntu,它们的非自由存储库称为 universe。在 Ubuntu 22.04 中,它很可能已经启用。可以检查 /etc/apt/sources.list,如果 * 缺少 universe* 存储库,请调整文件,使其包含如下内容:

deb http://archive.ubuntu.com/ubuntu/jammy main restricted universe

启用 non-free / universe 存储库后,可以刷新软件包列表并安装 r8168 驱动程序,如下所示:

~$ sudo apt update && sudo apt install r8168-dkms

驱动程序是针对正在运行的 Linux 内核编译的。这些软件包利用 DKMS 来执行此操作。DKMS 确保在安装 Linux 内核更新时始终重建驱动程序。根据 CPU,编译可能需要几分钟时间。编译 / 安装完成后,重新启动计算机。现在应该能够按预期使用网络接口,而不会出现任何网络问题或包丢失。还可以在命令行上检查正在使用的驱动程序:

~$ lspci -v | grep -A8 Ethernet | grep -A8 Realtek
[...]
Kernel driver in use: r8168

手动方式(适用于所有分发,不推荐)

手动方式有点复杂,我绝对不再推荐这样做。但是,如果 Linux 发行版没有以一种或另一种方式提供 r8168 驱动程序,可能会被迫走这条路。这样做的一个巨大缺点是,每次更新内核时,都必须自行重新编译驱动程序。所以请记住这一点。否则,在内核更新和系统重新启动后,网卡很可能无法工作。

为了自行编译 r8168 驱动程序,必须安装内核头文件和编译实用程序,如 gcc、make 和 configure。对于 Debian 和 Ubuntu 系统,可以像这样安装所有依赖项:

~$ sudo apt update && sudo apt install build-essentials linux-headers-$(uname -r)

下一步是下载驱动程序。Realtek 的官方主页似乎不再提供驱动程序(作者可能没找到,官方可用,下文提供)。因此,必须在 GitHub 上使用 mtorromeo 提供的镜像。你可以像这样使用 wget 直接下载驱动程序(请务必先在 GitHub 上查看最新版本):

~$ wget https://github.com/mtorromeo/r8168/archive/refs/tags/8.052.01.tar.gz

必须确保将来启动机器时不会加载 r8169 驱动程序。以下命令可确保这一点:

~$ sudo sh -c 'echo blacklist r8169 >> /etc/modprobe.d/blockr8169.conf'

接下来,可以提取以前下载的驱动程序存档:

~$ tar xfvz r8168-8.052.01.tar.gz

通过提取驱动程序存档,有一个具有相同名称方案的新文件夹,可以将其更改为:

~$ cd r8168-8.052.01
  • 注意:该数字可能会更改,具体取决于将来的驱动程序版本。因此,如果需要,请不要忘记更改版本号。*

现在在正确的目录中,终于可以开始编译驱动程序了。为此,只需输入以下命令:

~/r8168-8.052.01$ sudo ./autorun.sh

然后,应该会看到如下所示的输出:

Check old driver and unload it.
rmmod r8168
Build the module and install
At main.c:222:
- SSL error:02001002:system library:fopen:No such file or directory: bss_file.c:175
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: bss_file.c:178
sign-file: certs/signing_key.pem: No such file or directory
Backup r8169.ko
rename r8169.ko to r8169.bak
DEPMOD 4.4.0-31-generic
load module r8168
Updating initramfs. Please wait.
update-initramfs: Generating /boot/initrd.img-4.4.0-31-generic
Completed.

现在可以忽略 SSL 错误。驱动程序应已成功编译并安装到系统中。驱动程序已加载,应该可以工作。

若要确保真正使用和加载驱动程序,可以使用与上述相同的命令:

~$ lspci -v | grep -A8 Ethernet | grep -A8 Realtek
[...]
Kernel driver in use: r8168

在我的旧博客上,一位名叫 Tim 的用户也提到了 ethtool,它也有同样的作用,并帮助检查是否使用了正确的驱动程序:

~$ sudo ethtool -i enp1s0
driver: r8168
version: 8.042.00-NAPI
firmware-version:
expansion-rom-version:
bus-info: 0000:07:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
  • 注意:必须将 enp1s0 更改为网卡的设备名称。这可以是 eth0、eth1、enp2s0 等。

    如果提到 r8168,则驱动程序已正确安装,现在应该能够使用网卡,而不会丢失或中断任何包。


via: How to get an Realtek RTL8111/RTL8168 working under Linux TUXBYTE FEB 07, 2024

https://tuxbyte.com/p/how-to-get-an-realtek-rtl8111rtl8168


驱动下载

  • Realtek 官方最新驱动下载

    https://www.realtek.com/Download/List?cate_id=584

  • GitHub - mtorromeo/r8168: Linux device driver for Realtek Ethernet controllers ( unofficial mirror )

    https://github.com/mtorromeo/r8168

  • 其他型号 r 系列老驱动下载 r8168dl/files at master・bfanger/r8168dl・GitHub

    https://github.com/bfanger/r8168dl/tree/master/files


注:来自下文 csdn 博主“小怪物爱吹牛”的安装提示 :…网卡信息还有 8111,但逐个试过之后只有 8168 可以用。

ubuntu20 解决网线不能联网 RTL8111/8168/8411

这种问题一般是驱动没有正确安装。

----RTL8111/8168/8411 是一块比较坑的网卡。

1、 查看网卡信息

lspci |grep Ethernet

在这里插入图片描述
2、 对于高版本的 Ubuntu,能直接使用命令安装驱动。下面的 r8168-dkms 需根据网卡信息修改,上面的网卡信息还有 8111,但逐个试过之后只有 8168 可以用。

sudo apt install r8168-dkms

3、 测试手动能不能加载内核模块,如果 lsmod 能够显示信息,表明模块安装成功。

sudo modprobe r8168
lsmod |grep r8168

如果手动都不能加载 r8168,那就只能手动安装驱动。

a) 官网下载

在这里插入图片描述

b) 解压

tar -jxvf r8168-8.053.00.tar.bz2

c) 编译安装

cd r8168-8.053.00/src
sudo make all
cd ../
sudo ./autorun.sh

4、重启电脑,看 r8168.ko 会不会被自动加载,如果重启后下面的命令没有显示信息,表明网卡内核驱动模块不能被自动加载。

lsmod |grep r8168

5、解决模块不能被自动加载的问题,系统服务的方法更安全

sudo vim /etc/systemd/system/load-r8168.service

添加如下配置

[Unit]  
Description=Load r8168 module at boot  
After=network.target  

[Service]  
Type=oneshot  
ExecStart=/sbin/modprobe r8168  

[Install]  
WantedBy=multi-user.target

执行命令

sudo systemctl enable load-r8168.service

重启电脑,即可自动加载模块 r8168.ko


via:

  • ubuntu20 解决网线不能联网 RTL8111/8168/8411-CSDN 博客 小怪物爱吹牛 于 2024-04-18 16:15:43

    https://blog.csdn.net/naibula/article/details/137924693

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C1W1.Assignment: Logistic Regression

理论课:C1W1.Sentiment Analysis with Logistic Regression 文章目录 前期准备导入包导入数据处理推文文本 Part 1: Logistic regressionPart 1.1: Sigmoid实现 sigmoid 函数Logistic regression: regression and a sigmoid Part 1.2 Cost function and GradientUp…

自动驾驶-端到端分割任务

上采样 bed of nails interpolation transposed convolutions 1. 上采样 (Upsampling) 上采样是一种技术,用于增加数据集中的样本数量或是提高信号的分辨率。在图像处理中,上采样通常指的是增加图像的像素数量,从而使图像变得更大。这可…

【Android安全】Ubuntu 下载、编译 、刷入Android-8.1.0_r1

0. 环境准备 Ubuntu 16.04 LTS(预留至少95GB磁盘空间,实测占94.2GB) Pixel 2 XL 要买欧版的,不要美版的。 欧版能解锁BootLoader、能刷机。 美版IMEI里一般带“v”或者"version",这样不能解锁BootLoader、…

Android之间互传消息之ServerSocket,Android服务端接收Socket发送的TCP

Android之间在在局域网下互传消息,咱就不用走云服务器了吧,让俩安卓设备,自己传呗 方式1 通过在安卓设备上搭建Web服务器接收数据,可参考 Android使用AndServer在安卓设备上搭建服务端(Java)(Kotlin)两种写法 方式2 本文章&…

空安全编程的典范:Java 8中的安全应用指南

文章目录 一、Base64 编码解码1.1 基本的编码和解码1.2 URL 和文件名安全的编码解码器1.3 MIME Base64编码和解码 二、Optional类三、Nashorn JavaScript 一、Base64 编码解码 1.1 基本的编码和解码 Base64 编码: 使用 Base64.getEncoder().encodeToString(origin…

【STM32嵌入式系统设计与开发---拓展】——1_8_寄存器的理解

1、寄存器的理解 (1)MOS管 MOS管是一种场效应晶体管,通过控制栅极电压来调节漏极和源极之间的电流,常用于电子开关和放大器电路中。 MOS管就像是电子开关,可以通过控制一个小电压来打开或关闭一个大电流,常…

小程序-1(项目结构+代码结构+宿主环境+组件)

目录 1.小程序简介 2.小程序的项目结构 小程序的基本组成结构 小程序的页面组成部分 json配置文件的作用 app.json文件 project.config.json文件 sitemap.json文件 页面的.json文件 新建小程序页面 修改项目首页 3.小程序的代码结构 wxml和html的区别 wxss和css的…

数据结构(Java):LinkedList集合Stack集合

1、集合类LinkedList 1.1 什么是LinkedList LinkedList的底层是一个双向链表的结构(故不支持随机访问): 在LinkedList中,定义了first和last,分别指向链表的首节点和尾结点。 每个节点中有一个成员用来存储数据&…

postgresql简单导出数据与手动本地恢复(小型数据库)

问题 需要每天手动备份postgresql。 步骤 导出数据 /opt/homebrew/opt/postgresql16/bin/pg_dump --file/Users/zhangyalin/backup_sql/<IP地址>_pg-2024_07_15_17_30_15-dump.sql --dbname<数据库名> --username<用户名> --host<IP地址> --port54…

Python array的特点及使用

1、Python array的特点及使用 1.1、python array为什么只能接收指定类型数据 array 模块提供了一种叫做 array 的数据结构&#xff0c;它表示一块连续的内存空间&#xff0c;所有的元素必须是相同的类型。这是因为在内存中&#xff0c;数组元素存储在连续的位置上&#xff0c…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 游乐园门票 (200分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; 最新华为O…

数据结构java笔记

线性表 数组 物理地址连续、逻辑地址连续。数组长度是固定的&#xff0c;不能动态增长或缩小&#xff0c;数组中元素的类型相同&#xff08;适合用于元素个数固定&#xff0c;且快速用下标访问&#xff09; ArrayList&#xff08;动态数组&#xff09; 物理地址连续、逻辑地…

【C++练级之路】【Lv.26】类型转换

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 一、C风格类型转换1.1 隐式类型转换1.2 显式类型转换 二、C风格类型转换2.1 static_cast2.2 dynamic_cast2.3…

【C++】—— 初识C++

【C】—— 初识C 一、什么是 C二、C 的发展历史三、C 版本更新四、C 的重要性五、C 在工作领域中的运用六、C 书籍推荐&#xff1a; 一、什么是 C C语言 是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要…

【eNSP模拟实验】单臂路由实现VLAN间通信

实验需求 如下图所示&#xff0c;辅导员办公室需要访问处在不同vlan的学生管理服务器的文件&#xff0c;那么如何实现两台终端相互通信呢&#xff1f;我们可以使用单臂路由的方式来实现。 单臂路由&#xff08;router-on-a-stick&#xff09;是指在路由器的一个接口上通过配置…

小型医疗门诊挂号收费后台系统源码 医院管理系统后台thinkphp内核源码(带微信登录)

源码简介&#xff1a; 好用的小型医疗门诊后台管理系统的源码&#xff0c;就是那种医院管理用的&#xff0c;核心是用thinkphp做的。这个系统源码啊&#xff0c;功能多&#xff0c;用起来也方便。它还支持第三方配置和微信登录。 这玩意儿是基于ThinkPHP搞出来的医疗门诊系统…

AJAX知识点(详解)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

Flowable-流程图标与流程演示

BPMN 2.0是业务流程建模符号2.0的缩写。它由Business Process Management Initiative这个非营利协会创建并不断发展。作为一种标识&#xff0c;BPMN 2.0是使用一些符号来明确业务流程设计流程图的一整套符号规范&#xff0c;它能增进业务建模时的沟通效率。目前BPMN2.0是最新的…

持续集成01--Git版本管理及基础应用实践

前言 本系列文章旨在深入探讨持续集成/持续部署&#xff08;Continuous Integration/Continuous Deployment, CI/CD&#xff09;流程中的各个环节&#xff0c;而本篇将聚焦于Git版本管理及其基本应用。通过本文&#xff0c;读者将了解到Git的基本原理、安装配置、基本命令以及如…

高校动作捕捉与数字人开发实训室方案:助推高校开设虚拟数字人微专业

目前一些学校除了传统的实训室建设之外&#xff0c;部分院校会建设一些“微专业”&#xff0c;专业方向与AIGC以及虚拟数字人有关&#xff0c;通过引进一些虚拟数字人以及全身动作捕捉设备相关的产品和系统工具&#xff0c;进行设计课程方案&#xff0c;比如虚拟人直播&#xf…