Linux Ubuntu20.04安装RTL8156网卡驱动开启巨型帧

本文档详细记录了在Ubuntu20.04系统上安装RTL8156BG驱动的过程,包括从Realtek官网下载驱动,使用常规编译和DKMS安装方法,并最终成功开启巨型帧。在安装过程中遇到问题,如ethtool显示不正确,通过修改udev规则和重新加载模块解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做工业相机方面的东西,接口为千兆以太网,并且需要打开巨型帧进行信息传输。

而我的老笔记本电脑只支持百兆以太网,所以买了一个支持巨型帧的USB3.0转RJ45,其内部网卡为RTL8156BG,费劲周折,终于成功安装驱动并使用巨型帧传输工业相机图像。

目录

1 下载驱动

2 安装驱动

2.1常规编译方法

2.2 DKMS安装

2.2.1 安装DKMS

2.2.2 构建DKMS编译环境

2.2.3 DKMS编译

2.3 查看巨型帧maxmtu

3 参考链接

*************************** Ubuntu20.04+内核5.13.0-48-generic***********************************

1 下载驱动

最好从官网直接下载新版,较新的几个版本应该都是可以的。

Realtek USB FE / GBE / 2.5G / Gaming Ethernet Family Controller Software - REALTEK

2 安装驱动

最好先采用以下方法安装,不要升级内核kernel!有时可能会报找不到header的错误!

2.1常规编译方法

解压下载的压缩包,进入文件夹,进行编译和安装。

make
make install

2.2 DKMS安装

2.2.1 安装DKMS

需要确保系统里安装了DKMS,在ubuntu系统下可以用一下命令进行安装:

sudo apt-get install dkms

2.2.2 构建DKMS编译环境

使用以下命令打开系统文件最高权限。

sudo nautilus

在文件夹 /usr/src/ 下新建文件夹 r8152-2.16.1 ,将驱动文件都解压复制到这里。

再创建 /usr/src/r8152-2.16.1/dkms.conf

PACKAGE_NAMEPACKAGE_VERSION文件夹的命名是一致的。其内容如下:

PACKAGE_NAME="r8152"
PACKAGE_VERSION="2.16.1"
BUILT_MODULE_NAME[0]="$PACKAGE_NAME"
DEST_MODULE_LOCATION[0]="/updates/dkms"
AUTOINSTALL="YES"
REMAKE_INITRD="YES"
CLEAN="rm src/@PKGNAME@.ko src/*.o || true"

注意:

  • 用DKMS安装是直接对内核kernel搞事情,应该更稳。
  • 文件关系:

        /usr/src/r8152-2.16.1/
        ├── dkms.conf
        ├── r8152.c
        └── Makefile

  • dkms编译对文件夹名称有要求!

2.2.3 DKMS编译

sudo dkms add -m r8152 -v 2.16.1
sudo dkms build -m r8152 -v 2.16.1
sudo dkms install -m r8152 -v 2.16.1
sudo depmod -a
sudo modprobe r8152

2.3 查看巨型帧maxmtu

安装完成后,用以下命令查看一下,显示maxmtu>1504应该就是安装成功了。

ip -d link list

 我使用以上两种方法都安装了,但是查看巨型帧的时候,还是1504,很崩溃,终于找到了原因。

用一下命令时,突然发现不对劲。

ethtool -i enx0826ae31ad1b

搞好之前这里是 cdc_ncm,觉得不对劲,就查了好一会儿这玩意,没什么用。终于,输入以下指令后,再次查看,对劲了!

cp 50-usb-realtek-net.rules /usr/lib/udev/rules.d/
modprobe r8152
sudo systemctl status systemd-modules-load.service

2.4 开启巨型帧

sudo ifconfig enx0826ae31ad1b mtu 9000

 3 参考链接

Ubuntu Linux 下安装 R8156B 2.5G 网卡 - 掘金

RTL8156 Linux 开启巨型帧 - 知乎

Ubuntu20.04 如何降低内核版本_JSYRD的博客-CSDN博客_ubuntu内核降级

<think>嗯,用户问的是巨型的概念、工作原理以及在网络通信中的作用。首先我需要回忆一下巨型的基本定义。记得标准以太网的最大传输单元(MTU)通常是1500字节,而巨型指的是超过这个大小的,比如9000字节。这个应该没错吧?不过要确认一下不同标准是否有差异,比如有些可能支持更大的MTU。 接下来,用户可能想知道巨型如何工作。这里需要解释MTU的作用,以及增大MTU后对数据传输的影响。比如,更大的意味着每个可以携带更多数据,减少的数量,从而降低处理开销,提高吞吐量。但要注意的是,网络中的所有设备,包括交换机、路由器、网卡等都必须支持巨型,否则会导致分片或丢包。这部分需要结合用户提供的引用内容,比如引用[1]提到启用巨型需要所有网络设备支持,引用[3]也提到主机和KVM客户机之间的桥接需要设置MTU为9000,说明端到端的配置必要性。 然后,关于作用,除了提高吞吐量和降低CPU占用,可能还有减少延迟的效果?不过实际上,巨型可能会因为处理大而增加单的处理时间,但总体来看,由于减少了的数量,整体效率提升。不过需要确认这一点是否正确,可能需要查阅资料。根据用户提供的引用,引用[1]和[3]都涉及到千兆网络和存储通信中使用巨型,说明其在高带宽需求场景下的应用。 用户提供的引用中,引用[2]提到测试用的10G网卡,这可能和高速网络环境下的巨型使用相关。这时候使用巨型可以更好地利用高带宽,减少协议开销。这部分可以作为应用场景的例子。 另外,可能需要注意巨型的缺点,比如兼容性问题,因为不是所有网络设备都支持,如果中间有设备不支持,会导致分片传输,反而影响性能。此外,较大的在传输错误时重传的成本更高,但因为现代网络可靠性较高,这个影响可能较小。 最后,生成相关问题的时候,要考虑用户可能的后续疑问,比如如何配置、优缺点比较、适用场景等。比如用户可能想知道具体怎么检测是否支持巨型,或者在不同操作系统中的设置方法,比如Linux中使用ifconfig或ip命令设置MTU,如引用[3]中提到的例子。</think>### 巨型的概念与作用 #### 1. **巨型的定义** 巨型(Jumbo Frame)指**超过标准以太网大小(1500字节)**的数据,通常将MTU(最大传输单元)设置为9000字节。它通过减少数据分片次数提升网络效率[^1]。 #### 2. **工作原理** - **MTU扩展**:传统以太网的MTU为1500字节,巨型将其扩展至9000字节。 $$ \text{单数据量提升} = \frac{\text{巨型MTU}}{\text{标准MTU}} = \frac{9000}{1500} = 6\ \text{倍} $$ - **减少协议开销**:每个的头部(如以太网头、IP头、TCP头)固定占用约40-60字节。巨型通过分摊头部开销,提高有效数据占比[^3]。 #### 3. **网络通信中的作用** - **提升吞吐量**:减少数据分片次数,降低协议处理延迟,适用于大文件传输、视频流等高带宽场景[^2]。 - **降低CPU负载**:减少中断次数,减轻终端设备的处理压力。 - **优化存储网络**:在iSCSI、NFS等存储协议中,巨型能显著提升传输效率[^3]。 #### 4. **使用条件** 需**全网设备支持巨型**,包括交换机、路由器、网卡等。若设备MTU不匹配,可能导致丢包或分片[^1]。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可见一班

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值